コード例 #1
0
ファイル: menu.py プロジェクト: softgot/SnakeMath
    def start(self):
        """ Visar menyvy """
        gv.switch_window = False

        # Ersätt hela fönstret med menyvy.
        screen.erase(gv.whole_screenrect)
        screen.blit("bg_main_menu", gv.whole_screenrect)
        self.show_main(goback_sound = False)        
コード例 #2
0
ファイル: game.py プロジェクト: softgot/SnakeMath
    def update_scorebar(self, score):
        """ Uppdatera poängruta med nytt poäng """

        # Skapa grafikobjekt för poängtext.
        gv.graphics["score"] = gv.menufont_large.render(
            str(score), True, gv.yellow)

        # Ta bort nuvarande poängtext och lägg till ny.
        screen.erase(self.rects["score"])
        screen.blit("score", self.rects["score"])
コード例 #3
0
ファイル: menu.py プロジェクト: softgot/SnakeMath
    def update_cursor(self):
        """ Flytta pekare till ny position """
        ROWGAP = 30 # vertikalt avstånd mellan menyval

        # Bestäm ny pekarpos genom att utgå från pekarpos för första menyval.
        cursorpos = pygame.Rect(self.rects["cursor_on_PLAY"])
        cursorpos.y = cursorpos.y + self.cursor_at * ROWGAP 

        # Dölj föregående pekare och visa ny pekare.
        screen.erase(self.rects["del_cursor"])
        screen.blit("cursor_menu", cursorpos)
コード例 #4
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
    def update_scorebar(self, score):
        """ Uppdatera poängruta med nytt poäng """

        # Skapa grafikobjekt för poängtext.
        gv.graphics["score"] = gv.menufont_large.render(str(score),
                                                        True,
                                                        gv.yellow)

        # Ta bort nuvarande poängtext och lägg till ny.
        screen.erase(self.rects["score"])
        screen.blit("score", self.rects["score"])
コード例 #5
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
    def update_happybar(self):
        """ Uppdatera pekare som visar ormens belåtenhetsnivå """

        # Ta bort aktuell belåtenhetsmätare och lägg till ny.
        screen.erase(self.rects["happybar"])
        screen.blit("happybar_gui", self.rects["happybar"])

        # Beräkna position för pekare och placera ut på mätare.
        # happycursor recten innehåller position för mätare.
        # Genom att använda x position för mätarens västra
        # sida så kan man räkna ut pekarens position på mätaren.
        rect = pygame.Rect(self.rects["happycursor"])
        rect.x = rect.x + self.HAPPYLEVEL_STEP * Snake.happylevel
        screen.blit("happycursor_gui", rect)
コード例 #6
0
ファイル: game.py プロジェクト: softgot/SnakeMath
    def update_happybar(self):
        """ Uppdatera pekare som visar ormens belåtenhetsnivå """

        # Ta bort aktuell belåtenhetsmätare och lägg till ny.
        screen.erase(self.rects["happybar"])
        screen.blit("happybar_gui", self.rects["happybar"])

        # Beräkna position för pekare och placera ut på mätare.
        # happycursor recten innehåller position för mätare.
        # Genom att använda x position för mätarens västra
        # sida så kan man räkna ut pekarens position på mätaren.
        rect = pygame.Rect(self.rects["happycursor"])
        rect.x = rect.x + self.HAPPYLEVEL_STEP * Snake.happylevel
        screen.blit("happycursor_gui", rect)
コード例 #7
0
ファイル: game.py プロジェクト: softgot/SnakeMath
    def move(self):
        """ Förflytta orm

        Returnera False vid krasch eller vid för låg belåtenhetsnivå.
        I annat fall returnera True. Värdet används i Gameklassen för
        att avgöra om spelet är över eller inte.

        """

        X = 0
        Y = 1
        global STEP
        global WORLDRECT

        # Ändra riktning på orm om svänglista inte är tom.
        if self.turnlist:
            self.direction = self.turnlist.pop(0)

        # Bestäm nytt huvud, huvud utanför värld hamnar på motsatt sida.
        head = pygame.Rect(
            self.head)  # kopiera koordinater för nuvarande huvud
        head.x = (head.x + (self.direction[X] * STEP)) % WORLDRECT.width
        head.y = (head.y + (self.direction[Y] * STEP)) % WORLDRECT.height

        # Lägg till nytt huvud.
        self.head = head
        self.snake.append(head)

        # Ta bort nytt huvud från giltiga matställen och visa huvud.
        self.world.remove_foodspot(self.head)
        screen.erase(head)
        screen.blit("snake", head)

        # Ta bort svans för att simulera rörelse.
        if not self.grow:
            # Borttagen svans blir matplats.
            self.world.add_foodspot(self.tail)

            # Ta bort svans och bestäm ny svans.
            screen.erase(self.snake.popleft())
            self.tail = self.snake[0]  # 1:a elementet = ny svans

        # Förläng orm genom att inte ta bort svans.
        else:
            self.grow -= 1

        return self.nocollision() and Snake.happylevel >= 0
コード例 #8
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
    def move(self):
        """ Förflytta orm

        Returnera False vid krasch eller vid för låg belåtenhetsnivå.
        I annat fall returnera True. Värdet används i Gameklassen för
        att avgöra om spelet är över eller inte.

        """
        
        X = 0
        Y = 1
        global STEP
        global WORLDRECT

        # Ändra riktning på orm om svänglista inte är tom.
        if self.turnlist:
            self.direction = self.turnlist.pop(0)

        # Bestäm nytt huvud, huvud utanför värld hamnar på motsatt sida.
        head = pygame.Rect(self.head) # kopiera koordinater för nuvarande huvud
        head.x = (head.x + (self.direction[X] * STEP)) % WORLDRECT.width
        head.y = (head.y + (self.direction[Y] * STEP)) % WORLDRECT.height

        # Lägg till nytt huvud.
        self.head = head
        self.snake.append(head)

        # Ta bort nytt huvud från giltiga matställen och visa huvud.
        self.world.remove_foodspot(self.head)
        screen.erase(head)
        screen.blit("snake", head)

        # Ta bort svans för att simulera rörelse.
        if not self.grow:
            # Borttagen svans blir matplats.
            self.world.add_foodspot(self.tail)

            # Ta bort svans och bestäm ny svans.
            screen.erase(self.snake.popleft()) 
            self.tail = self.snake[0] # 1:a elementet = ny svans

        # Förläng orm genom att inte ta bort svans.
        else:
            self.grow -= 1

        return self.nocollision() and Snake.happylevel >= 0
コード例 #9
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
 def reset(self):
     """ Töm grafikinnehåll i värld """
     global WORLDRECT
     screen.erase(WORLDRECT)
コード例 #10
0
ファイル: menu.py プロジェクト: softgot/SnakeMath
 def clearmenu(self):
     """ Tar bort text- och bildinnehåll i menyfönster """
     screen.erase(self.rects["del_text"])
コード例 #11
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
 def erase_score(self):
     """ Dölj text för antal poäng """
     screen.erase(self.rects["score"])    
コード例 #12
0
ファイル: game.py プロジェクト: softgot/SnakeMath
 def remove_from_world(self, rect):
     """ Radera angiven yta från värld (förlängs av Namedialog) """
     screen.erase(rect)
コード例 #13
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
 def erase_qa(self):
     """ Ta bort fråga och svarsalternativ från panel """
     screen.erase(self.rects["erase_qa"])
コード例 #14
0
ファイル: game.py プロジェクト: kristianmorling/SnakeMath
 def remove_from_world(self, rect):
     """ Radera angiven yta från värld (förlängs av Namedialog) """
     screen.erase(rect)
コード例 #15
0
ファイル: game.py プロジェクト: softgot/SnakeMath
 def reset(self):
     """ Töm grafikinnehåll i värld """
     global WORLDRECT
     screen.erase(WORLDRECT)
コード例 #16
0
ファイル: game.py プロジェクト: softgot/SnakeMath
 def erase_qa(self):
     """ Ta bort fråga och svarsalternativ från panel """
     screen.erase(self.rects["erase_qa"])
コード例 #17
0
ファイル: game.py プロジェクト: softgot/SnakeMath
 def erase_score(self):
     """ Dölj text för antal poäng """
     screen.erase(self.rects["score"])