Python Pygame运动问题
我一直在Pygame的一个小项目上工作,但我遇到了一个问题。当移动角色时,它似乎会在后面留下痕迹Python Pygame运动问题,python,pygame,Python,Pygame,我一直在Pygame的一个小项目上工作,但我遇到了一个问题。当移动角色时,它似乎会在后面留下痕迹 while 1: movey=0 movex=0 x=0 y=0 while True: for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exi
while 1:
movey=0
movex=0
x=0
y=0
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYDOWN:
if event.key == K_w:
movey = -1
elif event.key == K_s:
movey = +1
elif event.key == K_a:
movex = -1
elif event.key == K_d:
movex = +1
if event.type == KEYUP:
if event.key == K_w:
movey = 0
elif event.key == K_s:
movey = 0
elif event.key == K_a:
movex = 0
elif event.key == K_d:
movex = 0
x=x+movex
y=y+movey
functions_for_game.character(char, display, x, y)
pygame.display.flip()
if __name__=='__main__':
main()
用于游戏的函数。字符(字符,显示,x,y)包含
我指的是“踪迹”。
我为努比什的问题道歉,但我一直无法找到解决办法。
提前感谢 你应该在每一帧都将背景图像显示在屏幕上(有更先进的技术只更新屏幕的“脏”部分,但这是另一个主题) 如果在移动玩家图像的同时重复将其绘制到屏幕上,则旧图像不会从屏幕上“删除”,因此看起来会留下痕迹 您的代码还有一些问题,但主要问题是您没有重新绘制背景图像。它应该看起来像:
while True:
for event in pygame.event.get():
...
...
screen.blit(*your background surface here*)
functions_for_game.character(char, display, x, y)
pygame.display.flip()
while True:
for event in pygame.event.get():
...
...
screen.blit(*your background surface here*)
functions_for_game.character(char, display, x, y)
pygame.display.flip()