我一直在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.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()
函数_游戏.角色(char,display,x,y)包含
^{pr2}$我指的是this。 我为这个愚蠢的问题道歉,但我一直找不到解决办法。 提前谢谢!在
你应该在每一帧都将你的背景图像blit到屏幕上(有更先进的技术只更新屏幕的“脏”部分,但那是另一个主题)。在
如果你在移动你的播放器图像的同时不断地在屏幕上移动,旧的图像不会从屏幕上被“删除”,因此它看起来像是留下了痕迹。在
你的代码还有一些问题,但你的主要问题是你没有重新绘制你的背景图像。它应该看起来像:
相关问题 更多 >
编程相关推荐