[英]snake game in pygame doesn't run
import pygame from pygame.locals import * class Snake: def __init__(self, parent_screen): self.parent_screen = parent_screen self.block = pygame.image.load("BLOCK.png") self.x = 100 self.y = 100 def draw(self): self.parent_screen.fill("White") self.parent_screen.blit(self.block, (self.x,self.y)) pygame.display.flip() def move_up(self): self.y -= 10 self.draw() def move_down(self): self.y += 10 self.draw() def move_right(self): self.x += 10 self.draw() def move_left(self): self.x -= 10 self.draw() class game: def __init__(self): pygame.init() self.screen = pygame.display.set_mode((500,500)) self.screen.fill("White") self.snake = Snake(self.screen) self.snake.draw() def run(self): game_on = True while game_on: for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_w: self.snake.move_up() elif event.key == K_s: self.snake.move_down() elif event.key == K_a: self.snake.move_left() elif event.key == K_d: self.snake.move_right() elif event.type == QUIT: game_on = False pygame.display.flip() Game = game() Game.run
必須在應用程序中繪制和更新場景:
class game:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((500,500))
#self.screen.fill("White") # <-- DELETE
self.snake = Snake(self.screen)
#self.snake.draw() # <-- DELETE
def run(self):
game_on = True
while game_on:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_w:
self.snake.move_up()
elif event.key == K_s:
self.snake.move_down()
elif event.key == K_a:
self.snake.move_left()
elif event.key == K_d:
self.snake.move_right()
elif event.type == QUIT:
game_on = False
self.screen.fill("White") # <-- INSERT
self.snake.draw() # <-- INSERT
pygame.display.flip()
Game = game()
Game.run() # <-- ()
典型的 PyGame 應用循環必須:
pygame.time.Clock.tick
限制每秒幀數以限制 CPU 使用率pygame.event.pump()
或pygame.event.get()
來處理事件。blit
所有對象)pygame.display.update()
或pygame.display.flip()
更新顯示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.