from: http://bbs.9ria.com/thread-77302-1-1.html
演示程序
http://www.adamatomic.com/canabalt/
http://www.flixel.org/mode/
Flixel横板游戏制作教程(十一)—JetPack(飞行背包)
Flixel横板游戏制作教程(十一)—JetPack(飞行背包)
本教程是接着Flixel横板游戏制作教程(十)—Pickups(拾取道具)来做的。
给角色带一个飞行器,是不是感觉很酷?那我们赶快开始吧~
这里 按 SPACE(空白键)为使用飞行背包。
看到 Player 类:
package { import org.flixel.FlxEmitter; import org.flixel.FlxG; import org.flixel.FlxGroup; import org.flixel.FlxObject; import org.flixel.FlxSprite; /** * ... * @author zb */ public class Player extends FlxSprite { //**********已有的内容************// //飞行背包的 喷气素材 [Embed(source='media/jet.png')] protected var jetImg:Class; //飞行背包的音效 [Embed(source = 'media/jetpack.mp3')] protected var sndJetPack:Class; //飞行背包 粒子发射器 private var jetPack:FlxEmitter; //飞行背包的 气体 消失的时间,变量,计时用,-1为不计时 private var jetPackCountDown:Number = -1; //飞行背包的气体消失时间的初始值,设置为0.5秒 private const COUNT_DOWN:Number = 0.5; //初始化给个初始坐标,当然可以不用参数,不过super的时候一定要加上 public function Player(startX:Number=100,startY:Number=50):void { //**********已有的内容************// //添加飞行背包 addJetPack(); } //重写update 方法,用于控制 public override function update():void { //**********已有的内容************// //按住 Space 键 开始飞行 if (FlxG.keys.pressed('SPACE')) { //播放喷气时的音效 FlxG.play(sndJetPack); //on 这个属性,是指 粒子发射器 是否正在发射粒子。 //这里判断 当 没有发射粒子时 if (!jetPack.on) { //粒子开始发射, //参数1:设置false,这样粒子就不会 一次性全部 发射完,而是一个接一个发射,并且会无限发射 //参数2:设置0.02,每个粒子的发射间隔为 0.02秒 jetPack.start(false, 0.02); } //将player 的 y 轴 加速度 设置为 这个值,方向向上 this.acceleration.y = -JUMP_ACCELERATION; //设置 jetPack 的 x 和 y 坐标, //就是让 发射器 实时跟随者 Player jetPack.x = this.x + this.width * 0.5; jetPack.y = this.y + this.height; //设置为 -1 jetPackCountDown = -1; } //当 放开 space 按键时 if (FlxG.keys.justReleased('SPACE')) { //计数器 设置这个值,也就是0.5秒,即开始计时 jetPackCountDown = COUNT_DOWN; //同时Player 的y轴加速度变为 重力值 this.acceleration.y = GRAVITY_ACCELERATION; } //当计数器 不为 -1时,也就是说 开始计时 if (jetPackCountDown != -1) { //计时器开始计时 //每次 update 都会减去 一个 值 //elapsed 就是 每次 update 经过的时间 jetPackCountDown -= FlxG.elapsed; //当 计时器 减少到 0以下时 if (jetPackCountDown<=0) { //计时器 设置为 -1 jetPackCountDown = -1; //同时将 飞行背包 kill 掉,这样气体就会消失 jetPack.kill(); } } /*** 切记 ***/ //这个语句一定要加上去,只要重写了update,就一定要调用 super的update //否则不会刷新动画。。也不会响应你在这里所设置的控制 super.update(); } //**********已有的内容************// private function addJetPack():void { jetPack = new FlxEmitter(); //创建粒子 //参数1:粒子素材 //参数2:粒子的最大数量 jetPack.createSprites(jetImg, 15); //将粒子发射时的 x 和 y 轴速度 设置为0,让喷射的气体位置不变 jetPack.setXSpeed(0, 0); jetPack.setYSpeed(0, 0); //设置粒子不会旋转 jetPack.setRotation(0, 0); //设置粒子不受重力影响 jetPack.gravity = 0; //记得添加到state 中。。 FlxG.state.add(jetPack); } } }
相关推荐
标题中的“Flixel横板游戏制作教程(一)— HelloFlixel”指的是一个针对初学者的游戏开发系列教程,重点介绍了如何使用Flixel框架创建2D横版游戏。Flixel是一款开源的ActionScript库,适用于Flash平台,但现在也...
在"Flixel横板游戏制作教程(二)— AddingPlayer"中,我们将深入学习如何使用Flixel框架创建一个2D横向滚动的游戏。Flixel是一个开源的ActionScript 3库,特别适合开发2D游戏,它提供了丰富的功能,如精灵动画、...
在本教程中,“Flixel横板游戏制作教程(三)— Adding Weapons”将带领我们探索如何在基于Flixel框架的2D横版游戏中添加武器系统。Flixel是一个用ActionScript 3编写的开源游戏库,适用于Flash平台,但也可以通过...
在本教程“Flixel横板游戏制作教程(五)— Enemies”中,我们将深入学习如何在使用Flixel框架创建的2D横版游戏中添加敌人。Flixel是一个流行的开源ActionScript 3库,常用于开发2D游戏,尤其适用于Flash平台。尽管...
文档`Flixel横板游戏制作教程(八)—MovingPlatforms(移动平台).doc`提供了详细的步骤和示例代码,帮助开发者理解移动平台的实现过程。通过阅读这份文档,你可以学习到如何编写`MovingPlatform`类的代码,以及...
Flixel是啥?一个AS3的2D游戏引擎,主要功能为: •同屏显示更多元素 •通过外部文件和图片创建Tilemap ...本教程是根据一个老版本(版本为 1.27)的教程改写而成的,本教程的Flixel版本为 2.43的。
文档`Flixel横板游戏制作教程(九)—SquashingthePlayer(移动平台).doc`详细解释了如何实现挤压效果,特别是针对移动平台的特殊情况。阅读这份文档将有助于理解如何在Flixel中应用挤压效果,以及如何处理移动平台...
总之,本教程通过`Flixel横板游戏制作教程(七)—VictoryState(胜利状态).doc`文档,详细讲解了如何在Flixel环境中创建和管理游戏的不同状态,特别是胜利状态的实现。通过学习这些内容,开发者可以更好地理解和...
### Flixel横版游戏制作教程 #### 一、Flixel 游戏框架简介 Flixel是一款基于Adobe Flash的开源2D游戏开发框架,它由Adam “Atomic” Saltsman创建,广泛应用于Flash游戏的开发。Flixel简化了许多常见的游戏开发...
在本教程中,我们将探索如何在使用Flixel框架创建的横版游戏中实现Pickups(拾取道具)功能。Flixel是一个强大的2D游戏开发库,为ActionScript 3和Haxe开发者提供了丰富的功能,使得游戏开发变得更加简单。在这个...
在本教程中,我们将深入探讨如何在Flixel框架中集成音效与音乐,以创建一个生动有趣的横版游戏。Flixel是一个流行的开源ActionScript 3库,它为开发2D游戏提供了丰富的功能,包括图形渲染、碰撞检测以及音频处理。 ...
标题 "flixel platform game example" 暗示我们讨论的是一个使用Flixel库创建的平台游戏示例。Flixel是一个开源的ActionScript 3(AS3)框架,专门用于开发2D游戏。Flixel提供了丰富的功能,如精灵动画、物理引擎、...
`Flixel横板游戏制作教程(四)— RandomlyLevels .doc`是一个文档,可能详细介绍了如何创建随机生成的关卡,这是很多游戏增加重玩价值和挑战性的重要手段。学习如何动态生成关卡布局,可以使游戏更具吸引力。 最后...
总的来说,Flixel AS3游戏引擎是ActionScript开发者构建2D游戏的强大工具,它提供了全面的游戏开发功能,同时保持了较低的学习曲线,使得小型团队和个人开发者也能制作出高质量的游戏作品。结合其开源社区的支持,...
Flixel是一个强大的开源游戏开发框架,专门针对Adobe Flash平台设计。它以其高效、轻量级和易用性而受到开发者们的青睐。Flixel以其丰富的功能集,为创建2D游戏提供了全面的支持,包括精灵动画、物理系统、音频处理...
**Flash Flixel游戏引擎详解** Flash Flixel是一款强大的开源游戏引擎,专为创建2D像素艺术风格的游戏而设计,让人联想到经典的Game Boy Advance(GBA)游戏。Flixel以其简单易用和丰富的功能集而受到游戏开发者们...
在本教程中,我们将探讨如何使用Flixel游戏引擎来创建一个简单的自上而下的角色扮演游戏(RPG)。Flixel是一款基于ActionScript 3的2D游戏开发框架,以其简单易用和强大的功能而闻名。对于那些希望使用AS3进行游戏开发...