基于Kivy构建游戏:角色动画、怪物添加与碰撞检测
1. 角色动画问题及解决
每次触摸屏幕时,会创建一个动画实例,对 Image 小部件的 pos_hint 和 im_num 属性进行动画处理。但首次触摸屏幕后,再次触摸屏幕仅移动角色, im_num 属性不再改变,导致之后显示静态图像。
这是因为 im_num 的初始值为 0,首次触摸屏幕时, im_num 从 0 动画到 7,动画完成后其值变为 7。再次触摸屏幕时, im_num 从 7 动画到 7,没有变化。
解决方法是在 start_char_animation() 函数开始动画前将 im_num 重置为 0,并在动画完成后也将其重置为 0。可利用 Animation 类的 on_complete 事件,绑定回调函数 char_animation_completed() 来实现。
以下是修改后的 Python 代码:
import kivy.app
import kivy.animation
class TestApp(kivy.app.App):
def char_animation_completed(self, *args):
chara
Kivy游戏开发:动画与碰撞检测
超级会员免费看
订阅专栏 解锁全文
988

被折叠的 条评论
为什么被折叠?



