• Citrus Engine简单Demo


    Citrus Engine是一个的开源flash平台(platform,也可以说是卷轴类)游戏引擎,它基于Starling Framework添加了各种物理引擎,3D引擎,动画引擎。

    Citrus实现了平台游戏的一些基本功能,比如Hero,Anemy,Goal的类似超级玛丽的功能,也实现了Level管理器,Assets管理器,Sound管理器等等。


    下面是一个结合Box2d的简单Demo:

    创建一个box2d世界,创建地板,墙壁,Hero,Enemy,和Platform,其中没有加入任何位图。

    使用flashbuilder或者flashdevelop创建SimpleDemo.as

    public class SimpleDemo extends StarlingCitrusEngine
    	{
    		
    		public function SimpleDemo() 
    		{
    			setUpStarling(true);
    			state = new GameState();
    		}
    		
    	}

    这个就是最简单的Citrus的入口类了。GameState类就是游戏的第一个界面(Starling中通常为一个State类)

    public class GameState extends StarlingState 
    	{
    		
    		public function GameState() 
    		{
    			super();
    		}
    		
    		override public function initialize():void {
    			super.initialize();
    			
    			var physics:Box2D = new Box2D("box2d");
    			physics.visible = true;
    			add(physics);
    			
    			var floor:Platform = new Platform("floor", { x:400, y:575, 800, height:50 } );
    			add(floor);
    			
    			floor = new Platform("floor2", { x:550, y:150, 100, height:40 } );
    			add(floor);
    			
    			var mf:MovingPlatform = new MovingPlatform("mp1", { x:150, y:500, 100, height:40, startX:150, startY:500, endX:350, endY:200 } );
    			add(mf);
    			
    			var hero:Hero = new Hero("hero", { x:500, y:300, 30, height:50, leftBound:25, rightBound:775 } );
    			hero.maxVelocity = 1.2;
    			
    			add(hero);
    			
    			var enemy:Enemy = new Enemy("enemy", { x:400, y:400, 50, height:50, leftBound:25, rightBound:775 } );
    			add(enemy);
    			
    			var goal:Coin = new Coin("goal", { x:600, y: 110, 40, height:40 } );
    			goal.onBeginContact.add(function(c:b2Contact):void {
    				trace("win");
    			});
    			add(goal);
    			
    		}
    		
    	}

    这上面首先创建并添加box2d物理世界,然后创建一些platform以免hero直接落入万丈深渊,之后创建hero和enemy,anemy是可以在leftbound和rightbound之间来回移动的,最后还创建了一个Goal, goal表示得分点或者目标地, hero触碰到goal可以有一些事件可以触发,同时goal对象也会消失。其中MovingPlatform是创建一个移动的地板,可以升降,同时也可以左右移动。

    citrus中创建citrus 对象的方式大都是 new Object(name, params) , params参数就用{key:value,...}的方式创建。





  • 相关阅读:
    使用IntelliJ IDEA和Maven管理搭建+Web+Tomcat开发环境
    MVC中使用SignalR打造酷炫实用的即时通讯功能(轉載)
    动软软件 生成 实体类模板(EnterpriseFrameWork框架)
    MVC+Ninject+三层架构+代码生成 总结(一、數據庫)
    MVC+Ninject+三层架构+代码生成 总结(三、實體類)
    1.0EnterpriseFrameWork 框架学习
    Excel操作类
    MVC+Ninject+三层架构+代码生成 总结(二、建項目)
    软件添加注册功能
    MVC+Ninject+三层架构+代码生成 总结(五、Ninject)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3214987.html
Copyright © 2020-2023  润新知