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)
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"])
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)
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"])
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)
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
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
def reset(self): """ Töm grafikinnehåll i värld """ global WORLDRECT screen.erase(WORLDRECT)
def clearmenu(self): """ Tar bort text- och bildinnehåll i menyfönster """ screen.erase(self.rects["del_text"])
def erase_score(self): """ Dölj text för antal poäng """ screen.erase(self.rects["score"])
def remove_from_world(self, rect): """ Radera angiven yta från värld (förlängs av Namedialog) """ screen.erase(rect)
def erase_qa(self): """ Ta bort fråga och svarsalternativ från panel """ screen.erase(self.rects["erase_qa"])