【发布时间】:2017-11-15 09:42:23
【问题描述】:
我只是在玩 Pygame,我看不出我做错了什么来使红色圆圈用箭头键移动。我不知道它是否在我的主循环中。我也找不到很多关于精灵或使用 Pygame 循环动画的教程。例如,如果我想制作一个像移动平台一样摆动的正方形,我该怎么做?
import pygame
import time
## event handling varibles
player_x = 0
player_y = 0
x = 250
y = 250
## screen display
display_width = 500
display_height = 500
pygame.init()
game_screen = pygame.display.set_mode((display_width,display_height))
pygame.display.set_caption("test")
# player
def player():
pygame.draw.circle(game_screen,red,(x,y),15)
# colors
white = (255,255,255)
red = (255,0,0)
black = (0,0,0)
### main loop
dead = False
while dead != True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
dead = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
player_x = -1
elif event.key == pygame.K_RIGHT:
player_x = +1
if event.key == pygame.K_UP:
player_y = +1
elif event.key == pygame.K_DOWN:
player_y = -1
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or pygame.K_RIGHT:
player_x = 0
if event.key == pygame.K_UP or pygame.K_DOWN:
player_y = 0
game_screen.fill(black)
player()
pygame.display.update()
x -= player_x
y -= player_y
pygame.quit()
quit()
【问题讨论】:
-
我试图做到这一点,所以当我得到一个 KEYUP 事件时,球会停在它所在的当前位置。我尝试更改这些值,但没有任何区别。
-
嗯,你的缩进都搞砸了。除非事件为 QUIT,否则此代码不会执行任何操作。
-
这也不是正确的语法
event.key == pygame.K_UP or pygame.K_DOWN...我想你的意思是:event.key == pygame.K_UP or vent.key == pygame.K_DOWN