python - Pygame中的自上而下运动/等距运动
问题描述
很抱歉,如果这个问题之前已经被问过,但我到处检查过,但找不到答案。
你如何在pygame中进行自上而下的运动?
如果我只使用矩形,这将很容易,但我将使用单个角色精灵(例如,如果我按 d 让玩家向右走,它会向我显示他向右走的角色精灵并向右移动角色) .
我的意思的示例图像:
解决方案
根据角色前进的方向绘制不同的精灵。
假设dx
/dy
是角色的速度和x
/y
它在屏幕上的位置,
up_sprite = pygame.image.load('up.png')
down_sprite = pygame.image.load('down.png')
left_sprite = pygame.image.load('left.png')
right_sprite = pygame.image.load('right.png')
sprite = down_sprite # to initialize things off with
def your_game_loop():
if dx > 0:
sprite = right_sprite
elif dx < 0:
sprite = left_sprite
elif dy > 0:
sprite = down_sprite
elif dy < 0:
sprite = up_sprite
sprite.blit(screen, (x, y))
推荐阅读
- python - 无法从 anaconda 打开终端(a.tool 错误)
- sqlite - 如何在 windows 10 for delphi 10.3.1 中升级 sqlit3
- alfresco - Alfresco 7.X 中的文件存储在哪里?
- json - 带有 JSON 到 powershell 的 Ansible win_shell,其他方式也可以正常工作
- python - 您如何制作一个在其自身之外模拟按键的程序?(Python)
- python - 将 AxesImage 直方图转换为数组直方图
- javascript - 为什么在进一步使用下一个 .then() 之前我的 Firestore 调用没有解决?
- ibm-cloud - cf 推送到 IBM Cloud 失败:无法安装节点:不正确的约束:>=4.1.0 <5.5.0
- powerbi - Power BI - 根据时间戳之间的时间计算行数
- cypress - 无法在赛普拉斯的 Testrail 中运行测试用例