`

Flixel横板游戏制作教程(九)—SquashingthePlayer(挤压Player)

 
阅读更多

from: http://bbs.9ria.com/thread-77302-1-1.html

 

演示程序

http://www.adamatomic.com/canabalt/

http://www.flixel.org/mode/

 

Flixel横板游戏制作教程(九)—SquashingthePlayer(挤压Player)

Flixel横板游戏制作教程(九)—SquashingthePlayer(移动平台)
本教程是接着Flixel横板游戏制作教程(八)—MovingPlatforms(移动平台)来做的。
平台挤压player,然后player受到高伤害以至于 挂掉。。
下面开始教程了。
先看到 Player 类:

 

package 
{
        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/asplode.mp3')]
                protected var killSnd:Class;
                
                //*********已有的内容************//
                
                //重写一下 kill方法
                override public function kill():void 
                {
                        //主要是加入一个 播放 挂掉时的音效
                        FlxG.play(killSnd);
                        super.kill();
                }
        }
        
}

 然后是 GameState 类:

package 
{
        import org.flixel.FlxG;
        import org.flixel.FlxGroup;
        import org.flixel.FlxObject;
        import org.flixel.FlxSprite;
        import org.flixel.FlxState;
        import org.flixel.FlxText;
        import org.flixel.FlxTileblock;
        import org.flixel.FlxU;
        
        /**
         * ...
         * @author zb
         */
        public class GameState extends FlxState 
        {
                //**********已有的内容*************//
                
            override public function update():void 
                {
                        //**********已有的内容*************//
                        
                        //使用 overlap 的方法,检测 玩家与平台重叠时
                        //就会将 player 挤压到 挂掉
                        FlxU.overlap(player, levels, squashingthePlayer);
                        
                        
                        //还是要提醒下,别忘了加上。。。
                        super.update();
                }
                
                private function squashingthePlayer(obj1:FlxSprite,obj2:FlxSprite):void
                {
                        //这里让 player 受到 1000点的伤害
                        //player 默认 生命值 为 10点
                        //这样 player 就会被 kill
                        obj1.hurt(1000);
                }
                
                //**********已有的内容*************//
        }
        
}

 

 

  • 大小: 13.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics