拳头角色这一课,咱们其实就干了一件事:
让一张拳头图片“活”过来,变成一个能跟着鼠标走、能打出去、还能判断打没打中的游戏角色。
我们把它的所有“零件”都封装到了 Fist 这个“盒子”里:
初始化(__init__):给这个角色“装好身体”(加载图片),调好“站位”(偏移量让它不挡住鼠标),并且一出生就处于“收拳”状态。
跟鼠标跑(update):这个函数是拳头的“自动导航”,它每时每刻都在执行,让拳头死死跟住鼠标,再通过偏移量让鼠标变成拳头的“准星”,指哪打哪。
出拳(punch):这是拳头的“攻击指令”。它一被调用,就会先确认“拳头是不是收着的”(避免在空中连续出拳),然后猛地“往前伸”一小段,模拟打击感。最妙的是,它还偷偷把拳头的“有效面积”缩小了一圈,让玩家必须打得更准才算命中。
收拳(unpunch):相当于把拳头收回来,为下一次出拳做准备。
简单说,我们不再是让一张图片傻傻地待在那里,而是给图片赋予了“位置”、“状态”和“行为”,这就叫面向对象编程——把东西变成能交互的“角色”。