感谢您花时间阅读本文。 现在我正在制作一个非常基本的平铺游戏。地图是大量的16x16图块,字符图像也是16x16。我的角色有自己的类,它是精灵类的扩展,x和y位置是根据磁贴位置保存的。
注意我对pygame相当缺乏经验。
我的问题是,我计划一次将角色移动限制在一个瓦片上,我不知道如何制作它,即使玩家快速击中方向键数十次,(WASD或箭头键)它只会以一定的速度从一个瓷砖移动到另一个瓷砖。我怎么能用pygame实现这个呢? (类似于像口袋妖怪或NexusTk的游戏运动)。一个动作会导致玩家进入一个牌。例如,它们无法在瓷砖之间停止。
感谢您的时间!莱恩
答案 0 :(得分:0)
将角色位置存储为网格坐标。因此,如果他在(2,0),他将被渲染为(32,0)。然后游戏动画他在瓷砖之间移动,但是,他或者在一个或另一个上。在移动状态下,您渲染0到tilewidth之间的(x,y)偏移。
如果时间已经过去/动画完成,听起来你想要每按一次一次动作。所以:
0
和tilewidth
之间绘制偏移量。如果时间少于<= 1秒,offset = (elapsed_ms / 1000.) * tile_w
将在0到16之间缩放。如果在动画状态下发生按键,请忽略它。
Pygame example: using numpy for map array.