夜雨聆风学习资料网

ARTICLE · 1226913

背景不动,动的是岛:App Inventor 2飞机大战的“流式背景”原理

背景不动,动的是岛:App Inventor 2飞机大战的“流式背景”原理

背景不动,动的是岛:App Inventor 2 飞机大战的"流式背景"原理

做飞机大战,背景怎么动?很多人的第一反应是传统游戏引擎的思路:准备两张背景图,第一张滚出屏幕,第二张补位,循环往复。但在 App Inventor 2 里,这条路恰恰走不通,原因有点反直觉——

AI2 画布上的精灵,根本"出不了屏"。翻开源码 Sprite.java:只要精灵任何一部分越出画布边界,引擎会立刻调用 MoveIntoBounds() 把它拉回边界内,同时触发 EdgeReached 事件。你就算用积木手动把 X/Y 设到画布外,也会被钳回来。

一句话原理

背景图从头到尾没动过。动的是三张"小岛"精灵:它们匀速往下飘、一触底就拉回顶部,无限循环——靠相对运动让你觉得飞机在往前飞。飞机自己几乎钉在屏幕下方,背景持续向下流,大脑就自动解读成"我在前进。

小结:AI2 的卷轴背景不是"滚图",是"回收"。记住这句话。物体出界就重置到入口复用,而不是做一张无限长的图。

技术依据:App Inventor 文档(Drawing and Animation)与 appinventor-sources 开源仓库 Sprite.java / Canvas.java。

相关学习资料