我希望主角继续朝着我选择的特定方向移动,直到我按下另一个键。这就是我所做的事情的代码:
for event in pygame.event.get():
if event.type==pygame.KEYDOWN:
if event.key==pygame.K_q:
pygame.quit()
elif event.key==pygame.K_w:
dir="Up"
elif event.key==pygame.K_s:
dir="Down"
elif event.key==pygame.K_d:
dir="Right"
if dir=="Up":
if valid_move((ChY-45)//size, (ChX)//size):
ChY-=15
if dir=="Down":
if valid_move((ChY+45)//size, (ChX)//size):
ChY+=15
if dir=="Right":
if valid_move((ChY)//size, (ChX+45)//size):
ChX+=15
if dir=="Left":
if valid_move((ChY)//size, (ChX-45)//size):
ChX-=15发布于 2022-05-26 12:08:02
这是压痕的问题。您必须在应用程序循环中连续移动Pacman,而不是事件循环:
# application loop
run = True
while run:
# event loop
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.KEYDOWN:
if event.key==pygame.K_q:
run = False
elif event.key==pygame.K_w:
dir="Up"
elif event.key==pygame.K_s:
dir="Down"
elif event.key==pygame.K_d:
dir="Right"
elif event.key==pygame.K_a:
dir="Left"
# INDENTATION
#<--|
if dir=="Up":
if valid_move((ChY-45)//size, (ChX)//size):
ChY-=15
if dir=="Down":
if valid_move((ChY+45)//size, (ChX)//size):
ChY+=15
if dir=="Right":
if valid_move((ChY)//size, (ChX+45)//size):
ChX+=15
if dir=="Left":
if valid_move((ChY)//size, (ChX-45)//size):
ChX-=15
# [...]https://stackoverflow.com/questions/72390189
复制相似问题