- 第1章 简介
- 第2章 步骤1 – 精灵动画
- 第3章 步骤2 – 对象模型
- 第4章 步骤3 – 游戏逻辑与控制
- 第5章 步骤4 – 杂七杂八
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2.4 敌人和导弹
我们的每个敌人都需要带上两个动画,常态和爆炸态。敌人的行动和等级将在下一步骤中讨论。这里接触到的新玩意儿是 ANIMATION_CALLBACK 类型。回调(callback)是指将来会被调用的函数。在这里是指当前动画结束的时刻。我们使用这种类型来表现爆炸:当爆炸动画播放完成之后我们移除精灵(在步骤 3 中会详细讨论具体操作方法)。
当你需要为动画指定两个或者更多的类型时,你可以使用 |
符号来分隔。例如,你的动画可以有这样的类型:ANIMATION_CALLBACK | ANIMATION_ONCE | ANIMATION_VERTICAL,如此这般,动画就会垂直方式播放一次,播放结束时执行回调函数!这对于想在两段循环播放动画之间增加过渡动画来说是很方便的。在这种情况下,你可以通过回调函数改变循环播放的动画(但在这篇教程中我们并不需要)。
var enemies = new Array(3); // There are three kind of enemies in the game
//...
/// List of enemies animations :
// 1st kind of enemy:
enemies[0] = new Array(); // enemies have two animations
enemies[0]["idle"] = new $.gameQuery.Animation({imageURL: "minion_idle.png", numberOfFrame: 5,
delta: 52, rate: 60, type: $.gameQuery.ANIMATION_VERTICAL});
enemies[0]["explode"] = new $.gameQuery.Animation({imageURL: "minion_explode.png", numberOfFrame: 11,
delta: 52, rate: 30, type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK});
// 2nd kind of enemy:
enemies[1] = new Array();
enemies[1]["idle"] = new $.gameQuery.Animation({imageURL: "brainy_idle.png", numberOfFrame: 8,
delta: 42, rate: 60, type:$.gameQuery.ANIMATION_VERTICAL});
enemies[1]["explode"] = new $.gameQuery.Animation({imageURL: "brainy_explode.png", numberOfFrame: 8,
delta: 42, rate: 60, type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK});
// 3rd kind of enemy:
enemies[2] = new Array();
enemies[2]["idle"] = new $.gameQuery.Animation({imageURL: "bossy_idle.png", numberOfFrame: 5,
delta: 100, rate: 60, type: $.gameQuery.ANIMATION_VERTICAL});
enemies[2]["explode"] = new $.gameQuery.Animation({imageURL: "bossy_explode.png", numberOfFrame: 9,
delta: 100, rate: 60, type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK});
// Weapon missile:
missile["player"] = new $.gameQuery.Animation({imageURL: "player_missile.png", numberOfFrame: 6,
delta: 10, rate: 90, type: $.gameQuery.ANIMATION_VERTICAL});
missile["enemies"] = new $.gameQuery.Animation({imageURL: "enemy_missile.png", numberOfFrame: 6,
delta: 15, rate: 90, type: $.gameQuery.ANIMATION_VERTICAL});
missile["playerexplode"] = new $.gameQuery.Animation({imageURL: "player_missile_explode.png",
numberOfFrame: 8, delta: 23, rate: 90,
type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK});
missile["enemiesexplode"] = new $.gameQuery.Animation({imageURL: "enemy_missile_explode.png",
numberOfFrame: 6, delta: 15, rate: 90,
type: $.gameQuery.ANIMATION_VERTICAL | $.gameQuery.ANIMATION_CALLBACK});
这就是敌人以及导弹的动画!在下一步骤里,我们讲解这个游戏的对象模型(object model)。保持更简单的 javascript 和更少的 gameQuery。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论