基于Pygame Tile的角色移动速度

感谢您抽时间阅读。 现在我正在做一个基本的瓷砖游戏。 地图是大量的16×16的瓷砖,字符图像也是16×16。 我的角色有它自己的类,它是sprite类的扩展,x和y的位置是按照tile的位置保存的。

要注意我对pygame来说是相当新的。

我的问题是,我计划一次只限制一个角色的角色移动,而我不知道如何使角色快速点击方向键(WASD或方向键) )它只会以一定的速度从瓦片移动到瓦片。 我怎么能用pygame来实现这个呢? (类似于口袋妖怪或NexusTk的游戏移动)。

编辑:我可能应该注意到,我想要它,以便玩家只能结束一个瓷砖的运动。 例如,他无法停止在一块瓷砖之间的中途移动。

谢谢你的时间! 瑞安

Solutions Collecting From Web of "基于Pygame Tile的角色移动速度"

基本上你可能正在寻找的是一个计时器,倒计时的时间,直到移动完成后的下一步行动。 像这样(未经testing,通过正确的input检查来replacew_key_pressed等):

 walk_cooldown = 0 WALK_DELAY = 1 # the time between 2 steps clock = pygame.time.Clock() while(true): # this is your MAIN LOOP, you can put some of this stuff into your player class delta = clock.tick() / 1000.0 walk_cooldown -= delta if walk_cooldown <= 0: if(w_key_pressed): walk_down_one_tile() walk_cooldown = WALK_DELAY if(s_key_pressed): walk_down_one_tile() walk_cooldown = WALK_DELAY # ... the usual stuff, however you do it 

注意移动时, walk_cooldown是如何设置为WALK_DELAY ,并且正在减less每帧的时间。 当walk_cooldown小于或等于0时,您只能移动。