我是靠谱客的博主 生动故事,最近开发中收集的这篇文章主要介绍cocos2d-X 节点(CCArmature.h)API cocos2d-X 节点(CCArmature.h)API,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
本文来自http://blog.csdn.net/runaying ,引用必须注明出处!
cocos2d-X 节点(CCArmature.h)API
温馨提醒:为了大家能更好学习,强烈推荐大家看看本人的这篇博客 Cocos2d-X权威指南笔记
设置 动画,管理 bone
// 设置 动画,管理 bone
#ifndef __CCARMATURE_H__
#define __CCARMATURE_H__
#include "utils/CCArmatureDefine.h"
#include "CCBone.h"
#include "display/CCBatchNode.h"
#include "animation/CCArmatureAnimation.h"
#include "utils/CCSpriteFrameCacheHelper.h"
#include "utils/CCArmatureDataManager.h"
class b2Body;
struct cpBody;
NS_CC_EXT_ARMATURE_BEGIN
CC_DEPRECATED_ATTRIBUTE typedef ProcessBase CCProcessBase;
CC_DEPRECATED_ATTRIBUTE typedef BaseData CCBaseData;
CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
CC_DEPRECATED_ATTRIBUTE typedef SpriteDisplayData CCSpriteDisplayData;
CC_DEPRECATED_ATTRIBUTE typedef ArmatureDisplayData CCArmatureDisplayData;
CC_DEPRECATED_ATTRIBUTE typedef ParticleDisplayData CCParticleDisplayData;
CC_DEPRECATED_ATTRIBUTE typedef BoneData CCBoneData;
CC_DEPRECATED_ATTRIBUTE typedef FrameData CCFrameData;
CC_DEPRECATED_ATTRIBUTE typedef MovementBoneData CCMovementBoneData;
CC_DEPRECATED_ATTRIBUTE typedef MovementData CCMovementData;
CC_DEPRECATED_ATTRIBUTE typedef AnimationData CCAnimationData;
CC_DEPRECATED_ATTRIBUTE typedef ContourData CCContourData;
CC_DEPRECATED_ATTRIBUTE typedef TextureData CCTextureData;
CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
CC_DEPRECATED_ATTRIBUTE typedef DisplayData CCDisplayData;
CC_DEPRECATED_ATTRIBUTE typedef DisplayFactory CCDisplayFactory;
CC_DEPRECATED_ATTRIBUTE typedef BatchNode CCBatchNode;
CC_DEPRECATED_ATTRIBUTE typedef DecorativeDisplay CCDecorativeDisplay;
CC_DEPRECATED_ATTRIBUTE typedef DisplayManager CCDisplayManager;
CC_DEPRECATED_ATTRIBUTE typedef ColliderBody CCColliderBody;
CC_DEPRECATED_ATTRIBUTE typedef ColliderDetector CCColliderDetector;
CC_DEPRECATED_ATTRIBUTE typedef SpriteFrameCacheHelper CCSpriteFrameCacheHelper;
CC_DEPRECATED_ATTRIBUTE typedef TweenFunction CCTweenFunction;
CC_DEPRECATED_ATTRIBUTE typedef ArmatureData CCArmatureData;
CC_DEPRECATED_ATTRIBUTE typedef Bone CCBone;
CC_DEPRECATED_ATTRIBUTE typedef ArmatureAnimation CCArmatureAnimation;
CC_DEPRECATED_ATTRIBUTE typedef Armature CCArmature;
CC_DEPRECATED_ATTRIBUTE typedef ArmatureDataManager CCArmatureDataManager;
class
Armature : public NodeRGBA, public BlendProtocol
{
public:
/**
* 分配并初始化一个 armature (衔铁).
* @return 一个初始化的被标记为自动释放的 armature (衔铁)
*/
static Armature *create();
/**
* 分配一个 armature (衔铁) 并使用 ArmatureDataManager 里面的名为 ArmatureData 的数据来初始化
armature (衔铁)
*
* @param
name
armature (衔铁)将使用这个名称查找 ArmatureData 来初始化它
* @return 一个初始化的被标记为自动释放的 armature (衔铁)
*/
static Armature *create(const char *name);
static Armature *create(const char *name, Bone *parentBone);
public:
Armature();
/**
* @js NA
* @lua NA
*/
~Armature(void);
/**
* 初始化一个空的 armature (衔铁)
*/
virtual bool init();
/**
* 使用制定的 name 初始化一个 armature (衔铁)
* @param name Armature name
*/
virtual bool init(const char *name);
virtual bool init(const char *name, Bone *parentBone);
/**
* Add a Bone to this Armature,
*
* @param bone
你希望添加到 armature (衔铁) 的 Bone(骨架)
* @param parentName
你希望添加到的 parent Bone's 名字 . 如果它是 NULL, 那么就把 armature (衔铁)设置为他的 parent
*/
virtual void addBone(Bone *bone, const char *parentName);
/**
* Get 指定名称对应的 bone
*
* @param name 你希望得到 bone's 名字
*/
virtual Bone *getBone(const char *name) const;
/**
* 使用指定的 parent 名字 改变 bone's 的 parent
*
* @param bone 你希望改变 parent 的 bone
* @param parentName 新的 parent's 名字
*/
virtual void changeBoneParent(Bone *bone, const char *parentName);
/**
* 移除指定名字对应的 bone. 如果递归,它也将递归删除它的 child Bone.
*
* @param bone 你希望移除的 bone
* @param recursion 判断是否递归删除 bone's child
*/
virtual void removeBone(Bone *bone, bool recursion);
/**
* Get Armature's bone 字典
// 衔铁
* @return Armature's bone dictionary
*/
Dictionary *getBoneDic();
/**
* 这个 boundingBox 每一次都将计算所有的 bones' boundingBox
*/
virtual Rect getBoundingBox() const;
Bone *getBoneAtPoint(float x, float y);
// overrides
/**
* @js NA
* @lua NA
*/
virtual void visit() override;
virtual void update(float dt) override;
virtual void draw() override;
virtual const AffineTransform& getNodeToParentTransform() const override;
inline void setBlendFunc(const BlendFunc &blendFunc) override { _blendFunc = blendFunc; }
inline const BlendFunc &getBlendFunc(void) const override{ return _blendFunc; }
/**
* 设置 contentsize 并计算锚点
*/
virtual void updateOffsetPoint();
virtual void setAnimation(ArmatureAnimation *animation);
virtual ArmatureAnimation *getAnimation();
virtual bool getArmatureTransformDirty();
#if ENABLE_PHYSICS_BOX2D_DETECT
virtual b2Fixture *getShapeList();
#elif ENABLE_PHYSICS_CHIPMUNK_DETECT
virtual cpShape *getShapeList();
#endif
protected:
/*
* 用来创建内部的 Bone
*/
Bone *createBone(const char *boneName );
//! 更新混合功能
void updateBlendType(BlendType blendType);
CC_SYNTHESIZE(ArmatureData *, _armatureData, ArmatureData);
CC_SYNTHESIZE(BatchNode *, _batchNode, BatchNode);
CC_SYNTHESIZE(std::string, _name, Name);
CC_SYNTHESIZE(TextureAtlas *, _atlas, TextureAtlas);
CC_SYNTHESIZE(Bone *, _parentBone, ParentBone);
CC_SYNTHESIZE(float, _version, Version);
protected:
mutable bool _armatureTransformDirty;
Dictionary *_boneDic;
//!
bones 字典,
包括所有 armature (衔铁)的 bones, 无论他是直接的 bone or 间接的 bone. I它和 m_pChindren 是不同的.
Array *_topBoneList;
BlendFunc _blendFunc;
//! 它需要继承 CCTextureProtocol
Point _offsetPoint;
ArmatureAnimation *_animation;
#if ENABLE_PHYSICS_BOX2D_DETECT
CC_PROPERTY(b2Body *, _body, Body);
#elif ENABLE_PHYSICS_CHIPMUNK_DETECT
CC_PROPERTY(cpBody *, _body, Body);
#endif
};
NS_CC_EXT_ARMATURE_END
#endif /*__CCARMATURE_H__*/
最后
以上就是生动故事为你收集整理的cocos2d-X 节点(CCArmature.h)API cocos2d-X 节点(CCArmature.h)API的全部内容,希望文章能够帮你解决cocos2d-X 节点(CCArmature.h)API cocos2d-X 节点(CCArmature.h)API所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复