Merge pull request #260 from ricardoquesada/cocos2dx_v32_api_fixes

Fixes for the cocos2d-x v3.2 API
This commit is contained in:
Nathan Sweet 2014-07-31 00:40:28 +02:00
commit 357185a9a6
4 changed files with 92 additions and 22 deletions

View File

@ -89,7 +89,7 @@ SkeletonAnimation* SkeletonAnimation::createWithFile (const std::string& skeleto
}
void SkeletonAnimation::initialize () {
ownsAnimationStateData = true;
_ownsAnimationStateData = true;
_state = spAnimationState_create(spAnimationStateData_create(_skeleton->data));
_state->rendererObject = this;
_state->listener = animationCallback;
@ -114,7 +114,7 @@ SkeletonAnimation::SkeletonAnimation (const std::string& skeletonDataFile, const
}
SkeletonAnimation::~SkeletonAnimation () {
if (ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
if (_ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
spAnimationState_dispose(_state);
}
@ -130,10 +130,10 @@ void SkeletonAnimation::update (float deltaTime) {
void SkeletonAnimation::setAnimationStateData (spAnimationStateData* stateData) {
CCASSERT(stateData, "stateData cannot be null.");
if (ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
if (_ownsAnimationStateData) spAnimationStateData_dispose(_state->data);
spAnimationState_dispose(_state);
ownsAnimationStateData = false;
_ownsAnimationStateData = false;
_state = spAnimationState_create(stateData);
_state->rendererObject = this;
_state->listener = animationCallback;
@ -176,16 +176,16 @@ void SkeletonAnimation::clearTrack (int trackIndex) {
void SkeletonAnimation::onAnimationStateEvent (int trackIndex, spEventType type, spEvent* event, int loopCount) {
switch (type) {
case SP_ANIMATION_START:
if (startListener) startListener(trackIndex);
if (_startListener) _startListener(trackIndex);
break;
case SP_ANIMATION_END:
if (endListener) endListener(trackIndex);
if (_endListener) _endListener(trackIndex);
break;
case SP_ANIMATION_COMPLETE:
if (completeListener) completeListener(trackIndex, loopCount);
if (_completeListener) _completeListener(trackIndex, loopCount);
break;
case SP_ANIMATION_EVENT:
if (eventListener) eventListener(trackIndex, event);
if (_eventListener) _eventListener(trackIndex, event);
break;
}
}
@ -210,19 +210,35 @@ void SkeletonAnimation::onTrackEntryEvent (int trackIndex, spEventType type, spE
}
}
void SkeletonAnimation::setStartListener (spTrackEntry* entry, StartListener listener) {
void SkeletonAnimation::setStartListener (const StartListener& listener) {
_startListener = listener;
}
void SkeletonAnimation::setEndListener (const EndListener& listener) {
_endListener = listener;
}
void SkeletonAnimation::setCompleteListener (const CompleteListener& listener) {
_completeListener = listener;
}
void SkeletonAnimation::setEventListener (const EventListener& listener) {
_eventListener = listener;
}
void SkeletonAnimation::setTrackStartListener (spTrackEntry* entry, const StartListener& listener) {
getListeners(entry)->startListener = listener;
}
void SkeletonAnimation::setEndListener (spTrackEntry* entry, EndListener listener) {
void SkeletonAnimation::setTrackEndListener (spTrackEntry* entry, const EndListener& listener) {
getListeners(entry)->endListener = listener;
}
void SkeletonAnimation::setCompleteListener (spTrackEntry* entry, CompleteListener listener) {
void SkeletonAnimation::setTrackCompleteListener (spTrackEntry* entry, const CompleteListener& listener) {
getListeners(entry)->completeListener = listener;
}
void SkeletonAnimation::setEventListener (spTrackEntry* entry, spine::EventListener listener) {
void SkeletonAnimation::setTrackEventListener (spTrackEntry* entry, const EventListener& listener) {
getListeners(entry)->eventListener = listener;
}

View File

@ -61,21 +61,31 @@ public:
void clearTracks ();
void clearTrack (int trackIndex = 0);
void setStartListener (spTrackEntry* entry, StartListener listener);
void setEndListener (spTrackEntry* entry, EndListener listener);
void setCompleteListener (spTrackEntry* entry, CompleteListener listener);
void setEventListener (spTrackEntry* entry, EventListener listener);
void setStartListener (const StartListener& listener);
void setEndListener (const EndListener& listener);
void setCompleteListener (const CompleteListener& listener);
void setEventListener (const EventListener& listener);
void setTrackStartListener (spTrackEntry* entry, const StartListener& listener);
void setTrackEndListener (spTrackEntry* entry, const EndListener& listener);
void setTrackCompleteListener (spTrackEntry* entry, const CompleteListener& listener);
void setTrackEventListener (spTrackEntry* entry, const EventListener& listener);
void setStartListener (spTrackEntry* entry, const StartListener& listener) CC_DEPRECATED_ATTRIBUTE
{ setTrackStartListener(entry, listener); }
void setEndListener (spTrackEntry* entry, const EndListener& listener) CC_DEPRECATED_ATTRIBUTE
{ setTrackEndListener(entry, listener); }
void setCompleteListener (spTrackEntry* entry, const CompleteListener& listener) CC_DEPRECATED_ATTRIBUTE
{ setTrackCompleteListener(entry, listener); }
void setEventListener (spTrackEntry* entry, const EventListener& listener) CC_DEPRECATED_ATTRIBUTE
{ setTrackEventListener(entry, listener); }
virtual void onAnimationStateEvent (int trackIndex, spEventType type, spEvent* event, int loopCount);
virtual void onTrackEntryEvent (int trackIndex, spEventType type, spEvent* event, int loopCount);
spAnimationState* getState() const;
StartListener startListener;
EndListener endListener;
CompleteListener completeListener;
EventListener eventListener;
protected:
SkeletonAnimation ();
SkeletonAnimation (spSkeletonData* skeletonData);
@ -86,7 +96,12 @@ protected:
spAnimationState* _state;
bool ownsAnimationStateData;
bool _ownsAnimationStateData;
StartListener _startListener;
EndListener _endListener;
CompleteListener _completeListener;
EventListener _eventListener;
private:
typedef SkeletonRenderer super;

View File

@ -347,6 +347,35 @@ bool SkeletonRenderer::setAttachment (const std::string& slotName, const std::st
return spSkeleton_setAttachment(_skeleton, slotName.c_str(), attachmentName.c_str()) ? true : false;
}
void SkeletonRenderer::setTimeScale(float scale)
{
_timeScale = scale;
}
float SkeletonRenderer::getTimeScale() const
{
return _timeScale;
}
void SkeletonRenderer::setDebugSlotsEnabled(bool enabled)
{
_debugSlots = enabled;
}
bool SkeletonRenderer::getDebugSlotsEnabled() const
{
return _debugSlots;
}
void SkeletonRenderer::setDebugBonesEnabled(bool enabled)
{
_debugBones = enabled;
}
bool SkeletonRenderer::getDebugBonesEnabled() const
{
return _debugBones;
}
// --- CCBlendProtocol
const BlendFunc& SkeletonRenderer::getBlendFunc () const {

View File

@ -57,6 +57,16 @@ public:
void setBonesToSetupPose ();
void setSlotsToSetupPose ();
void setTimeScale(float scale);
float getTimeScale() const;
void setDebugSlotsEnabled(bool enabled);
bool getDebugSlotsEnabled() const;
void setDebugBonesEnabled(bool enabled);
bool getDebugBonesEnabled() const;
/* Returns 0 if the bone was not found. */
spBone* findBone (const std::string& boneName) const;
/* Returns 0 if the slot was not found. */