早在2013就开始接触cocos2dx游戏框架,觉得的使用框架对于游戏开发者来说有些不方便。我便想在cocos2dx的框架基础之上实现ZEngine库,方便开发者编辑动画,以及着重于对游戏逻辑的处理。
首先游戏角色Actor的定义:
游戏中任何可以交互的东西都可以通过Actor来定义,Actor代表着cocos引擎中的精灵,Actor的属性通过加载xml格式文件来配置,示例如下:
<Actor type=”player”>
<Animate name=”shake” loop=”true”>
<KeyFrame dur=”1.0” imgfile=”shake1.png” imgsrc=”0,0,40,40”/>
<KeyFrame dur=”2.0” imgfile=”shake2.png” imgsrc=”0,0,40,40”/>
<KeyFrame dur=”3.0” imgfile=”shake2.png” imgsrc=”0,0,40,40”/>
</Animate> <Animate name=”walk” loop=”true”>
<KeyFrame dur=”0.2” imgfile=”walk.png” imgsrc=”0,0,40,40”/>
<KeyFrame dur=”0.4” imgfile=”walk.png” imgsrc=”0,0,40,40”/>
<KeyFrame dur=”0.6” imgfile=”walk.png” imgsrc=”0,0,40,40”/>
</Animate> <Script onTick=”onTickHandler” onTouch=”onTouchHandler”/>
</Actor>
该例子中定义了player的动画,以及事件的绑定,事件通过lua脚本来处理。
Actor的子元素有Item,Collide,Animate,Script等。
Item示例如下:
<Item name=”head” pos=”10,30” rotate=”90” scale=”1.0,1.0” anchor=”5,15” zorder=”2” opacity=”255”>
<Animate name=”shake” group=”walk” loop=”true”>
<KeyFrame dur=”1.0” pos=”14,32” imgfile=”head1.png” imgsrc=”0,0,40,40”/>
</Animate>
</Item>