周末带女儿玩了一款"接星星"互动游戏,她回家就让我在手机上做一个。研究了一下App Inventor 2的精灵动画组件(Ball、ImageSprite、Canvas),花了一上午就做出来了。
实现思路
核心只用3个组件:
- 画布(Canvas):游戏舞台
- 球形精灵(Ball):金色星星
- 图像精灵(ImageSprite):移动的篮子
关键代码逻辑
星星下落:设置Ball的Speed=5、Interval=50、Heading=180(向下),球就会自动匀速下坠。
碰撞检测:Ball自带"被碰撞时"事件,当星星碰到篮子自动触发——无需手写任何碰撞算法,引擎内部已实现。
边界处理:"到达边缘时"事件判断星星是否落到底部(边缘数值=-1),如果到底则扣分并重置位置。
手指拖动:画布的"被拖动时"事件控制篮子跟随手指移动。
踩坑提醒
- Z坐标:记得设Basket的Z坐标高于Star,否则星星"穿透"篮子视觉效果很差
- Interval调优:频繁更新(Interval<30)在老设备上会卡顿,建议Speed=5 + Interval=50起步
- 边缘数值:Ball返回的8方向数值(北=1,东北=2...南=-1)要仔细处理,否则反弹方向会乱
总共用了不到20个积木块,一个小游戏就完成了。App Inventor 2对精灵碰撞、移动的封装确实降低了游戏开发门槛,感兴趣的朋友可以试试。