我目前正在使用PyGame模塊與Python進行遊戲。我有兩個班,一個遊戲班和一個汽車班。遊戲類有一個遊戲循環方法,我通過不同的方法循環,其中一個是汽車類中的事件方法。當我運行該程序時,一切正常加載。但是,當我嘗試移動對象時,鍵盤輸入處理緩慢,並且當我將移動鍵發送給垃圾郵件時,某些輸入根本無法識別。爲什麼我的遊戲循環如此緩慢以處理輸入?
我是如何構造遊戲循環的根本錯誤?
遊戲循環的方法去如下:
def game_loop(self):
running = True
self.test_car = car()
while running:
pygame.display.set_caption("Project G")
self.event_handler()
self.screen.blit(self.background, (0,0))
self.test_car.event_handler()
self.test_car.update()
pygame.display.flip()
這是汽車類:
class car(game):
def __init__(self):
super(car, self).__init__()
self.init_x_pos = 100
self.init_y_pos = 100
self.x_speed = 0
self.y_speed = 0
self.load_img = load()
self.car_img = pygame.image.load(self.load_img.car_img)
def event_handler(self):
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_DOWN:
self.y_speed += 1
print "DOWN"
elif event.key == K_UP:
self.y_speed -= 1
print "UP"
elif event.key == K_RIGHT:
self.x_speed += 1
print "RIGHT"
elif event.key == K_LEFT:
self.x_speed -= 1
print "LEFT"
def update(self):
self.screen.blit(self.car_img, (self.init_x_pos + self.x_speed, self.init_y_pos + self.y_speed))
可能相關:http://stackoverflow.com/questions/6348952/handling-keyboard-events-in-python – paddy
@paddy:不。這個問題涉及pygame,它有一個訪問鍵盤的標準方式。另一個問題涉及在終端中按下按鍵。 – icktoofay