`

Flixel 横板游戏制作教程(一)— HelloFlixel ...

 
阅读更多

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

 

演示程序

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

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

 

Flixel 横板游戏制作教程(一)— HelloFlixel

lixel是啥?一个AS3的2D游戏引擎。简介就这么点了,具体的可以去官方网站看看(flixel.org),或者百度谷歌下都可以看到一些相关的介绍,论坛上也有(http://bbs.9ria.com/viewthread.php?tid=59579&highlight=flixel),不过貌似图片挂了,废话不多说,开始教程部分了。
本教程是根据一个老版本(版本为 1.27)的教程改写而成的,老版本的教程可以在这里看到:http://bbs.9ria.com/viewthread.php?tid=66570&highlight=flixel本教程的版本为 2.43,官方已经更新到2.5了,请大家注意。
首先,建立游戏的主类。

 

 

package 
{
        import org.flixel.FlxG;
        import org.flixel.FlxGame;
        
        /**
         * 这里注释不用理会了
         * @author zb
         */
        [SWF(width="640", height="480", backgroundColor="#000000")]
        public class FlixelGame extends FlxGame 
        {
                public function FlixelGame():void 
                {
                        //参数1:游戏屏幕的原始宽度,参数2:游戏屏幕的原始高度
                        //参数3:第一个游戏状态,也就是最初显示的画面。
                        //参数4:缩放,将原始宽度高度缩放。
                        super(320, 240, MenuState, 2);
                        
                        //想显示鼠标的话就用下面这句
                        //FlxG.mouse.show();
                }
        }
        
}

 

 

下面看看 MenuState 类:

 

 

package 
{
        import org.flixel.FlxG;
        import org.flixel.FlxSprite;
        import org.flixel.FlxState;
        
        /**
         * ...
         * @author zb
         */
        public class MenuState extends FlxState 
        {
                //这里是嵌入的图片资源,基本上flixel的资源都这么做吧。
                //对于flash来开发的话,其实这么做也行了。
                [Embed(source='media/title.png')]
                protected var menuImg:Class;
                public function MenuState():void 
                {
                        //这里别写了
                }
                
                //重写create方法,相当于构造方法
                //但是注意,对于所有的 State,最好用重写该方法来进行初始化
                override public function create():void 
                {
                        //这里加入了一个 sprite,并且使用菜单图片
                        //FlxSprite的参数
                        //参数1:该sprite的X坐标
                        //参数2:该sprite的Y坐标
                        //参数3:该sprite的背景图片的类
                        add(new FlxSprite(0, 0, menuImg));
                }
                
                //update,画面更新渲染的方法,类似于Enter_Frame时调用的方法
                //一些控制操作也是放在这里进行的,比如按键
                override public function update():void 
                {
                        //这里使用了按下 X 键,然后转跳到 下一个 状态
                        if (FlxG.keys.justPressed('X')) 
                        {
                                //转跳是这么做的,Gamestate 就是我们的游戏状态了
                                //FlxG 提供了一些该引擎的游戏控制方面的方法,可以看看API查看具体功能
                                FlxG.state = new GameState();
                        }
                        super.update();
                }
        }
        
}

 接下来是游戏状态类 GameState:

 

package 
{
        import org.flixel.FlxState;
        import org.flixel.FlxText;
        
        /**
         * ...
         * @author zb
         */
        public class GameState extends FlxState 
        {
                override public function create():void 
                {
                        //加入了一个 文本
                        add(new FlxText(50, 100, 200, 'Hello Flixel !!'));
                }
        }
        
}

 接下来运行看看效果吧~

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics