from: http://bbs.9ria.com/thread-77302-1-1.html
演示程序
http://www.adamatomic.com/canabalt/
http://www.flixel.org/mode/
Flixel横板游戏制作教程(七)—VictoryState(胜利状态)
本教程是接着Flixel横板游戏制作教程(六)—SoundsandMusic(音效与音乐)来做的。
下面是 把敌人都干掉后,转跳到胜利画面。
先看看胜利状态类VictoryState:
package { import org.flixel.FlxG; import org.flixel.FlxState; import org.flixel.FlxText; /** * ... * @author zb */ public class VictoryState extends FlxState { //胜利画面的等待时间计数 private var _time:Number; override public function create():void { _time = 0; //flash 这里是指,从某个颜色开始过度到透明 //参数1:起初显示的颜色 //参数2:过度的时间 FlxG.flash.start(0xffffffff, 1); //添加一个文本 add(new FlxText(100, 50, 100, 'Victory!')); } override public function update():void { //elapsed,该值是指,每一帧所经过的时间 _time += FlxG.elapsed; if (_time>5) { //fade,是指从 透明 过度到 想要的颜色 //参数1:想要过度的颜色 //参数2:经过的时间 //参数3:过度结束后,调用的方法 FlxG.fade.start(0xffffffff, 1, onPlay); } super.update(); } private function onPlay():void { //转跳到 GameState FlxG.state = new GameState; } } }
接来下是 Gamestate :
package { import org.flixel.FlxG; import org.flixel.FlxGroup; import org.flixel.FlxObject; import org.flixel.FlxState; import org.flixel.FlxText; import org.flixel.FlxTileblock; import org.flixel.FlxU; /** * ... * @author zb */ public class GameState extends FlxState { //*********已有的内容**************// //敌人计数器 private var enemyCounter:FlxText; override public function create():void { //*********已有的内容**************// //加入敌人计数器 addEnemyCounter(); } //*********已有的内容**************// override public function update():void { //*********已有的内容**************// //检查敌人数量 checkEnemyCount(); //还是要提醒下,别忘了加上。。。 super.update(); } //*********已有的内容**************// private function addEnemyCounter():void { //加入一个文本,显示敌人的数量 enemyCounter = new FlxText(150, 20, 20, String(ENEMY_COUNT)); //scrollfactory 属性 //表示 该对象 在屏幕移动的时候 //跟着屏幕一起移动的比例,范围 在 0 到 1 这个区间 //0 表示 不与屏幕移动 //1表示 完全跟着屏幕移动 //而之间的范围 从 0 开始,越大,随着屏幕移动的距离越大 //具体同学们可以自行设置参数理解 //x 和 y 分表表示 对水平移动和垂直移动的比例 enemyCounter.scrollFactor.x = 0; enemyCounter.scrollFactor.y = 0; add(enemyCounter); } private function checkEnemyCount():void { //计数值,刷新查看 当前敌人组中 死亡敌人的数量 var count:int = 0; for each (var enemy:Enemy in enemyGroup.members) { if (enemy.dead) { count++; } } //这里刷新 剩余敌人数量的文本 enemyCounter.text = String(ENEMY_COUNT - count); //当 死亡敌人的数量达到 最大敌人数的时候 if (count==ENEMY_COUNT) { //过渡白色 ,结束后转跳 胜利状态 FlxG.fade.start(0xffffffff, 1, onVictroy); } } private function onVictroy():void { //停止音乐 FlxG.music.stop(); FlxG.state = new VictoryState; } } }
相关推荐
在"Flixel横板游戏制作教程(二)— AddingPlayer"中,我们将深入学习如何使用Flixel框架创建一个2D横向滚动的游戏。Flixel是一个开源的ActionScript 3库,特别适合开发2D游戏,它提供了丰富的功能,如精灵动画、...
标题中的“Flixel横板游戏制作教程(一)— HelloFlixel”指的是一个针对初学者的游戏开发系列教程,重点介绍了如何使用Flixel框架创建2D横版游戏。Flixel是一款开源的ActionScript库,适用于Flash平台,但现在也...
在本教程“Flixel横板游戏制作教程(五)— Enemies”中,我们将深入学习如何在使用Flixel框架创建的2D横版游戏中添加敌人。Flixel是一个流行的开源ActionScript 3库,常用于开发2D游戏,尤其适用于Flash平台。尽管...
文档`Flixel横板游戏制作教程(八)—MovingPlatforms(移动平台).doc`提供了详细的步骤和示例代码,帮助开发者理解移动平台的实现过程。通过阅读这份文档,你可以学习到如何编写`MovingPlatform`类的代码,以及...
在本教程中,“Flixel横板游戏制作教程(三)— Adding Weapons”将带领我们探索如何在基于Flixel框架的2D横版游戏中添加武器系统。Flixel是一个用ActionScript 3编写的开源游戏库,适用于Flash平台,但也可以通过...
最后,`Flixel横板游戏制作教程(十一)—JetPack(飞行背包).doc`文档应该详细解释了整个过程,包括代码示例和步骤指南,帮助开发者理解如何集成飞行背包功能。 通过这个教程,开发者不仅可以学习到Flixel框架的...
文档`Flixel横板游戏制作教程(九)—SquashingthePlayer(移动平台).doc`详细解释了如何实现挤压效果,特别是针对移动平台的特殊情况。阅读这份文档将有助于理解如何在Flixel中应用挤压效果,以及如何处理移动平台...
Flixel是啥?一个AS3的2D游戏引擎,主要功能为: •同屏显示更多元素 •通过外部文件和图片创建Tilemap ...本教程是根据一个老版本(版本为 1.27)的教程改写而成的,本教程的Flixel版本为 2.43的。
### Flixel横版游戏制作教程 #### 一、Flixel 游戏框架简介 Flixel是一款基于Adobe Flash的开源2D游戏开发框架,它由Adam “Atomic” Saltsman创建,广泛应用于Flash游戏的开发。Flixel简化了许多常见的游戏开发...
在本教程中,我们将探索如何在使用Flixel框架创建的横版游戏中实现Pickups(拾取道具)功能。Flixel是一个强大的2D游戏开发库,为ActionScript 3和Haxe开发者提供了丰富的功能,使得游戏开发变得更加简单。在这个...
在本教程中,我们将深入探讨如何在Flixel框架中集成音效与音乐,以创建一个生动有趣的横版游戏。Flixel是一个流行的开源ActionScript 3库,它为开发2D游戏提供了丰富的功能,包括图形渲染、碰撞检测以及音频处理。 ...
9. **游戏状态管理**:如何切换和管理游戏的不同状态,如主菜单、游戏进行中、游戏结束等。 10. **优化和性能**:学习如何通过代码优化提高游戏性能,减少内存占用和提高帧率。 通过深入研究"Final Game"部分,...
`Flixel横板游戏制作教程(四)— RandomlyLevels .doc`是一个文档,可能详细介绍了如何创建随机生成的关卡,这是很多游戏增加重玩价值和挑战性的重要手段。学习如何动态生成关卡布局,可以使游戏更具吸引力。 最后...
开发者可以通过重写`create()`方法来执行游戏的初始化工作,而在`update()`方法中更新游戏状态。此外,该类还提供了如`add()`方法来添加游戏对象到舞台。 2. **FlxState**:FlxState类是用于表示游戏的不同状态,...
6. **调试工具**:提供实时的调试视图,帮助开发者在开发过程中检查游戏状态,包括帧率、内存使用情况等。 7. **社区支持**:Flixel有一个活跃的开发者社区,提供许多教程、示例项目和插件,促进了学习和问题解决。...
Flixel是一个强大的开源游戏开发框架,专门针对Adobe Flash平台设计。它以其高效、轻量级和易用性而受到开发者们的青睐。Flixel以其丰富的功能集,为创建2D游戏提供了全面的支持,包括精灵动画、物理系统、音频处理...
**Flash Flixel游戏引擎详解** Flash Flixel是一款强大的开源游戏引擎,专为创建2D像素艺术风格的游戏而设计,让人联想到经典的Game Boy Advance(GBA)游戏。Flixel以其简单易用和丰富的功能集而受到游戏开发者们...
例如,从菜单界面切换到游戏状态。 通过以上介绍,我们可以看到Flixel不仅提供了丰富的基础类库,还拥有简洁明了的状态管理机制,非常适合初学者学习和实践。此外,由于其良好的文档和支持社区,即使是复杂的游戏也...