Updated to 3.1 final.

This commit is contained in:
NathanSweet 2014-05-29 20:34:40 +02:00
parent 8736bd6bcb
commit 6e162a2fe7
4 changed files with 14 additions and 14 deletions

View File

@ -52,7 +52,7 @@ bool GoblinsExample::init () {
skeletonNode->setSkin("goblin"); skeletonNode->setSkin("goblin");
Size windowSize = Director::getInstance()->getWinSize(); Size windowSize = Director::getInstance()->getWinSize();
skeletonNode->setPosition(Vector2(windowSize.width / 2, 20)); skeletonNode->setPosition(Vec2(windowSize.width / 2, 20));
addChild(skeletonNode); addChild(skeletonNode);
scheduleUpdate(); scheduleUpdate();

View File

@ -78,7 +78,7 @@ bool SpineboyExample::init () {
// skeletonNode->runAction(RepeatForever::create(Sequence::create(FadeOut::create(1), FadeIn::create(1), DelayTime::create(5), NULL))); // skeletonNode->runAction(RepeatForever::create(Sequence::create(FadeOut::create(1), FadeIn::create(1), DelayTime::create(5), NULL)));
Size windowSize = Director::getInstance()->getWinSize(); Size windowSize = Director::getInstance()->getWinSize();
skeletonNode->setPosition(Vector2(windowSize.width / 2, 20)); skeletonNode->setPosition(Vec2(windowSize.width / 2, 20));
addChild(skeletonNode); addChild(skeletonNode);
scheduleUpdate(); scheduleUpdate();

View File

@ -133,13 +133,13 @@ void SkeletonRenderer::update (float deltaTime) {
spSkeleton_update(skeleton, deltaTime * timeScale); spSkeleton_update(skeleton, deltaTime * timeScale);
} }
void SkeletonRenderer::draw (Renderer* renderer, const Matrix& transform, bool transformUpdated) { void SkeletonRenderer::draw (Renderer* renderer, const Mat4& transform, bool transformUpdated) {
drawCommand.init(_globalZOrder); drawCommand.init(_globalZOrder);
drawCommand.func = CC_CALLBACK_0(SkeletonRenderer::drawSkeleton, this, transform, transformUpdated); drawCommand.func = CC_CALLBACK_0(SkeletonRenderer::drawSkeleton, this, transform, transformUpdated);
renderer->addCommand(&drawCommand); renderer->addCommand(&drawCommand);
} }
void SkeletonRenderer::drawSkeleton (const Matrix &transform, bool transformUpdated) { void SkeletonRenderer::drawSkeleton (const Mat4 &transform, bool transformUpdated) {
getGLProgram()->use(); getGLProgram()->use();
getGLProgram()->setUniformsForBuiltins(transform); getGLProgram()->setUniformsForBuiltins(transform);
GL::bindVAO(0); GL::bindVAO(0);
@ -230,17 +230,17 @@ void SkeletonRenderer::drawSkeleton (const Matrix &transform, bool transformUpda
// Slots. // Slots.
DrawPrimitives::setDrawColor4B(0, 0, 255, 255); DrawPrimitives::setDrawColor4B(0, 0, 255, 255);
glLineWidth(1); glLineWidth(1);
Vector2 points[4]; Vec2 points[4];
V3F_C4B_T2F_Quad quad; V3F_C4B_T2F_Quad quad;
for (int i = 0, n = skeleton->slotCount; i < n; i++) { for (int i = 0, n = skeleton->slotCount; i < n; i++) {
spSlot* slot = skeleton->drawOrder[i]; spSlot* slot = skeleton->drawOrder[i];
if (!slot->attachment || slot->attachment->type != SP_ATTACHMENT_REGION) continue; if (!slot->attachment || slot->attachment->type != SP_ATTACHMENT_REGION) continue;
spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment; spRegionAttachment* attachment = (spRegionAttachment*)slot->attachment;
spRegionAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot->bone, worldVertices); spRegionAttachment_computeWorldVertices(attachment, slot->skeleton->x, slot->skeleton->y, slot->bone, worldVertices);
points[0] = Vector2(worldVertices[0], worldVertices[1]); points[0] = Vec2(worldVertices[0], worldVertices[1]);
points[1] = Vector2(worldVertices[2], worldVertices[3]); points[1] = Vec2(worldVertices[2], worldVertices[3]);
points[2] = Vector2(worldVertices[4], worldVertices[5]); points[2] = Vec2(worldVertices[4], worldVertices[5]);
points[3] = Vector2(worldVertices[6], worldVertices[7]); points[3] = Vec2(worldVertices[6], worldVertices[7]);
DrawPrimitives::drawPoly(points, 4, true); DrawPrimitives::drawPoly(points, 4, true);
} }
} }
@ -252,14 +252,14 @@ void SkeletonRenderer::drawSkeleton (const Matrix &transform, bool transformUpda
spBone *bone = skeleton->bones[i]; spBone *bone = skeleton->bones[i];
float x = bone->data->length * bone->m00 + bone->worldX; float x = bone->data->length * bone->m00 + bone->worldX;
float y = bone->data->length * bone->m10 + bone->worldY; float y = bone->data->length * bone->m10 + bone->worldY;
DrawPrimitives::drawLine(Vector2(bone->worldX, bone->worldY), Vector2(x, y)); DrawPrimitives::drawLine(Vec2(bone->worldX, bone->worldY), Vec2(x, y));
} }
// Bone origins. // Bone origins.
DrawPrimitives::setPointSize(4); DrawPrimitives::setPointSize(4);
DrawPrimitives::setDrawColor4B(0, 0, 255, 255); // Root bone is blue. DrawPrimitives::setDrawColor4B(0, 0, 255, 255); // Root bone is blue.
for (int i = 0, n = skeleton->boneCount; i < n; i++) { for (int i = 0, n = skeleton->boneCount; i < n; i++) {
spBone *bone = skeleton->bones[i]; spBone *bone = skeleton->bones[i];
DrawPrimitives::drawPoint(Vector2(bone->worldX, bone->worldY)); DrawPrimitives::drawPoint(Vec2(bone->worldX, bone->worldY));
if (i == 0) DrawPrimitives::setDrawColor4B(0, 255, 0, 255); if (i == 0) DrawPrimitives::setDrawColor4B(0, 255, 0, 255);
} }
} }
@ -308,7 +308,7 @@ Rect SkeletonRenderer::getBoundingBox () const {
maxY = max(maxY, y); maxY = max(maxY, y);
} }
} }
Vector2 position = getPosition(); Vec2 position = getPosition();
return Rect(position.x + minX, position.y + minY, maxX - minX, maxY - minY); return Rect(position.x + minX, position.y + minY, maxX - minX, maxY - minY);
} }

View File

@ -59,8 +59,8 @@ public:
virtual ~SkeletonRenderer (); virtual ~SkeletonRenderer ();
virtual void update (float deltaTime) override; virtual void update (float deltaTime) override;
virtual void draw (cocos2d::Renderer* renderer, const cocos2d::Matrix& transform, bool transformUpdated) override; virtual void draw (cocos2d::Renderer* renderer, const cocos2d::Mat4& transform, bool transformUpdated) override;
virtual void drawSkeleton (const cocos2d::Matrix& transform, bool transformUpdated); virtual void drawSkeleton (const cocos2d::Mat4& transform, bool transformUpdated);
virtual cocos2d::Rect getBoundingBox () const override; virtual cocos2d::Rect getBoundingBox () const override;
// --- Convenience methods for common Skeleton_* functions. // --- Convenience methods for common Skeleton_* functions.