我正在试用python/pygame
我做了一个简单的播放器类
class Player():
def __init__(self):
self.posx = 10
self.posy = 20
def render (self):
pygame.draw.rect(screen,(255,0,0), (self.posx,self.posy,100,100))
def walk (self):
self.posx += 10
渲染函数:
def render():
player = Player()
player.walk()
player.render()
以及循环:
running = True
while running:
render()
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
我假设这个代码会在每一帧的x位置上增加10个像素。但它会在第一次渲染时将位置更新为20,并保持不变
我试着打印这个值,它确实打印了行走和渲染中的每一帧,这样循环就可以正常工作了,为什么位置得不到更新呢
在对
render
的每次调用中,您都在重新创建实例这应该更有效:
编辑:
正如timgeb在现在被删除的帖子中指出的那样,render方法是完全不需要的。我把它留给了OP,让他更清楚地理解他最初的代码风格
相关问题 更多 >
编程相关推荐