cocos2d-x开发: 场景实体(entity)管理(3)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:03 点击:次
p>
p>1 armature:getAnimation():play( action_const_name )
p>2
p>3 local bounding_box = armature:getBoundingBox()
p>
p>
p>然后就可以很简单的使用AABB或者是OBB进行碰撞检测以及设置AI等这些杂七杂八的东西了. 我们都知道序列帧使用的时候就没有那么方便了,在面对.png和Plist这样的组合的时候,动作的处理需要自己去解析,而Boundingbox也需要根据当前执行的动作做状态监测.好吧,废话说的有点多了,我简单实现了部分骨骼实体的封装,代码如下:
p>
p>
p> 1 local entity = require "src.firework.entity.entity"
p> 2
p> 3 local skeleton_entity = class( "skeleton_entity", entity )
p> 4
p> 5 function skeleton_entity:ctor( armature_const_name )
p> 6 self.skeleton_armature_ = nil
p> 7 self.draw_debug_node_ = nil
p> 8
p> 9 self.skeleton_armature_ = ccs.Armature:create( armature_const_name )
p>10 self.draw_debug_node_ = cc.DrawNode:create()
p>11 self.skeleton_armature_:addChild( self.draw_debug_node_ )
p>12 self:init_callbacks()
p>13 end
p>14
p>15 function skeleton_entity:play( const_action_name )
p>16 self.skeleton_armature_:getAnimation():play( const_action_name )
p>17 end
p>18
p>19 function skeleton_entity:init_callbacks()
p>20 self:register_callback( self.draw_debug_bounding_box, self )
p>21 end
p>22
p>23 function skeleton_entity:set_anchor_point( anchor_point )
p>24 self.skeleton_armature_:setAnchorPoint( anchor_point )
p>25 end
p>26
p>27 function skeleton_entity:get_anchor_point()
p>28 return self.skeleton_armature_:getAnchorPoint()
p>29 end
p>30
p>31 function skeleton_entity:set_position( position )
p>32 self.skeleton_armature_:setPosition( position )
p>33 end
p>34
p>35 function skeleton_entity:get_position()
p>36 return self.skeleton_armature_:getPosition()
p>37 end
p>38
p>39 function skeleton_entity:add_to_node( node )
p>40 node:addChild( self.skeleton_armature_ )
p>41 end
p>42
p>43 function skeleton_entity:remove_from_node()
p>44 self:remove_callback( self.draw_debug_bounding_box, self )
p>45 self.skeleton_armature_:getParent():removeChild( self.skeleton_armature_ )
p>46 end
p>47
p>48 function skeleton_entity:get_bounding_box()
p>49 return self.skeleton_armature_:getBoundingBox()
p>50 end
p>51
p>52 function skeleton_entity:draw_debug_bounding_box( dt )
p>53 local bounding_box = self:get_bounding_box()
p>54 local lb = self.skeleton_armature_:convertToNodeSpace( cc.p( bounding_box.x, bounding_box.y ) )
p>55 local lt = self.skeleton_armature_:convertToNodeSpace( cc.p( bounding_box.x, bounding_box.y + bounding_box.height ) )
相关新闻>>
- Cocos2d-x中 发起http请求
- cocos2d-x-3.3-018-游戏摇杆joystick源码分享
- cocos2dx背景透明处理
- cocos2d-x 3.2 之 别踩白块(第一篇)
- Cocos2d-x回调函数 Lambda表达式
- Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_2
- Cocos2d-x 自定义按钮类控制精灵攻击----之游戏开发《赵云要格斗
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_3
- Cocos2d-x 3.2 大富翁游戏项目开发-第八部分 角色按路径行走
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>
您可能感兴趣的文章
- UIViewController的retainCount(Object C)
- cocos2d-x在mac下配置安卓开发环境
- quick-cocos2d-x教程12:实现文本和密码输入界面
- Cocos2d-x3.0游戏实例之《别救我》第八篇——TiledMap实现关卡编
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之
- symbian UI开发小结(一)
- 五 手游开发神器 cocos2d-x editor 之贴图(TexturePacker)
- Cocos2d-x3.0 文件处理
- cocos2dx V3.2 mac os Xcode6.1 环境配置
- cocos2d-x-3.0 alpha1与C++11练习三:飞镖忍者,如何移动精灵及