Citrus Engine简单Demo
发布时间:2020-12-15 18:00:40 所属栏目:百科 来源:网络整理
导读:Citrus Engine是一个的开源flash平台(platform,也可以说是卷轴类)游戏引擎,它基于Starling Framework添加了各种物理引擎,3D引擎,动画引擎。 Citrus实现了平台游戏的一些基本功能,比如Hero,Anemy,Goal的类似超级玛丽的功能,也实现了Level管理器,Asse
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,width:800,height:50 } ); add(floor); floor = new Platform("floor2",{ x:550,y:150,width:100,height:40 } ); add(floor); var mf:MovingPlatform = new MovingPlatform("mp1",{ x:150,y:500,height:40,startX:150,startY:500,endX:350,endY:200 } ); add(mf); var hero:Hero = new Hero("hero",{ x:500,y:300,width:30,height:50,leftBound:25,rightBound:775 } ); hero.maxVelocity = 1.2; add(hero); var enemy:Enemy = new Enemy("enemy",y:400,width:50,rightBound:775 } ); add(enemy); var goal:Coin = new Coin("goal",{ x:600,y: 110,width: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,...}的方式创建。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |