mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-20 17:26:01 +08:00
[cocos2d-objc] Ensure skeleton/state are updated once before rendering the first frame.
This commit is contained in:
parent
f3247caee3
commit
34e50f74d5
@ -54,6 +54,7 @@ typedef void(^spUpdateWorldTransformsListener)(SkeletonAnimation* node);
|
|||||||
spDisposeListener _disposeListener;
|
spDisposeListener _disposeListener;
|
||||||
spCompleteListener _completeListener;
|
spCompleteListener _completeListener;
|
||||||
spEventListener _eventListener;
|
spEventListener _eventListener;
|
||||||
|
bool _updatedOnce;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
|
+ (id) skeletonWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData;
|
||||||
|
|||||||
@ -104,6 +104,7 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) {
|
|||||||
_state->listener = animationCallback;
|
_state->listener = animationCallback;
|
||||||
|
|
||||||
_spAnimationState* stateInternal = (_spAnimationState*)_state;
|
_spAnimationState* stateInternal = (_spAnimationState*)_state;
|
||||||
|
_updatedOnce = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
|
- (id) initWithData:(spSkeletonData*)skeletonData ownsSkeletonData:(bool)ownsSkeletonData {
|
||||||
@ -156,6 +157,7 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) {
|
|||||||
if (_preUpdateWorldTransformsListener) _preUpdateWorldTransformsListener(self);
|
if (_preUpdateWorldTransformsListener) _preUpdateWorldTransformsListener(self);
|
||||||
spSkeleton_updateWorldTransform(_skeleton);
|
spSkeleton_updateWorldTransform(_skeleton);
|
||||||
if (_postUpdateWorldTransformsListener) _postUpdateWorldTransformsListener(self);
|
if (_postUpdateWorldTransformsListener) _postUpdateWorldTransformsListener(self);
|
||||||
|
_updatedOnce = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setAnimationStateData:(spAnimationStateData*)stateData {
|
- (void) setAnimationStateData:(spAnimationStateData*)stateData {
|
||||||
@ -276,4 +278,9 @@ static _TrackEntryListeners* getListeners (spTrackEntry* entry) {
|
|||||||
getListeners(entry)->eventListener = [listener copy];
|
getListeners(entry)->eventListener = [listener copy];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-(void)draw:(CCRenderer *)renderer transform:(const GLKMatrix4 *)transform {
|
||||||
|
if (!_updatedOnce) [self update:0];
|
||||||
|
[super draw:renderer transform:transform];
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user