diff --git a/spine-c/include/spine/RegionAttachment.h b/spine-c/include/spine/RegionAttachment.h index 1046ba3f5..42d267441 100644 --- a/spine-c/include/spine/RegionAttachment.h +++ b/spine-c/include/spine/RegionAttachment.h @@ -43,14 +43,19 @@ typedef struct RegionAttachment RegionAttachment; struct RegionAttachment { Attachment super; float x, y, scaleX, scaleY, rotation, width, height; - AtlasRegion* region; + + void* texture; + float regionOffsetX, regionOffsetY; // Unrotated pixels stripped from upper left. + float regionWidth, regionHeight; // Unrotated, stripped size. + float regionOriginalWidth, regionOriginalHeight; // Unrotated, unstripped size. + float offset[8]; float vertices[8]; float uvs[8]; }; RegionAttachment* RegionAttachment_create (const char* name); - +void RegionAttachment_setUVs (RegionAttachment* self, float u, float v, float u2, float v2, int/*bool*/rotate); void RegionAttachment_updateOffset (RegionAttachment* self); void RegionAttachment_updateVertices (RegionAttachment* self, Slot* slot); diff --git a/spine-c/src/spine/Animation.c b/spine-c/src/spine/Animation.c index b3d0a1150..b7cfe48ae 100644 --- a/spine-c/src/spine/Animation.c +++ b/spine-c/src/spine/Animation.c @@ -44,6 +44,7 @@ void Animation_dispose (Animation* self) { for (i = 0; i < self->timelineCount; ++i) Timeline_dispose(self->timelines[i]); FREE(self->timelines); + FREE(self->name); FREE(self); } diff --git a/spine-c/src/spine/Atlas.c b/spine-c/src/spine/Atlas.c index 5d6b63db9..32529a1c0 100644 --- a/spine-c/src/spine/Atlas.c +++ b/spine-c/src/spine/Atlas.c @@ -238,8 +238,13 @@ Atlas* Atlas_readAtlas (const char* begin, int length, const char* dir) { region->u = region->x / (float)page->width; region->v = region->y / (float)page->height; - region->u2 = (region->x + region->width) / (float)page->width; - region->v2 = (region->y + region->height) / (float)page->height; + if (region->rotate) { + region->u2 = (region->x + region->height) / (float)page->width; + region->v2 = (region->y + region->width) / (float)page->height; + } else { + region->u2 = (region->x + region->width) / (float)page->width; + region->v2 = (region->y + region->height) / (float)page->height; + } int count; if (!(count = readTuple(end, tuple))) return abortAtlas(self); diff --git a/spine-c/src/spine/AtlasAttachmentLoader.c b/spine-c/src/spine/AtlasAttachmentLoader.c index 2000e384e..f481aeceb 100644 --- a/spine-c/src/spine/AtlasAttachmentLoader.c +++ b/spine-c/src/spine/AtlasAttachmentLoader.c @@ -40,7 +40,14 @@ Attachment* _AtlasAttachmentLoader_newAttachment (AttachmentLoader* loader, Skin return 0; } RegionAttachment* attachment = RegionAttachment_create(name); - attachment->region = region; + attachment->texture = region->page->texture; + RegionAttachment_setUVs(attachment, region->u, region->v, region->u2, region->v2, region->rotate); + attachment->regionOffsetX = region->offsetX; + attachment->regionOffsetY = region->offsetY; + attachment->regionWidth = region->width; + attachment->regionHeight = region->height; + attachment->regionOriginalWidth = region->originalWidth; + attachment->regionOriginalHeight = region->originalHeight; return SUPER(attachment); } default: diff --git a/spine-c/src/spine/RegionAttachment.c b/spine-c/src/spine/RegionAttachment.c index d6ac6f448..de87a464f 100644 --- a/spine-c/src/spine/RegionAttachment.c +++ b/spine-c/src/spine/RegionAttachment.c @@ -39,26 +39,35 @@ RegionAttachment* RegionAttachment_create (const char* name) { return self; } -void RegionAttachment_updateOffset (RegionAttachment* self) { - float localX2 = self->width / 2; - float localY2 = self->height / 2; - float localX = -localX2; - float localY = -localY2; - if (self->region->rotate) { - localX += self->region->offsetX / self->region->originalWidth * self->height; - localY += self->region->offsetY / self->region->originalHeight * self->width; - localX2 -= (self->region->originalWidth - self->region->offsetX - self->region->height) / self->region->originalWidth * self->width; - localY2 -= (self->region->originalHeight - self->region->offsetY - self->region->width) / self->region->originalHeight * self->height; +void RegionAttachment_setUVs (RegionAttachment* self, float u, float v, float u2, float v2, int/*bool*/rotate) { + if (rotate) { + self->uvs[VERTEX_X2] = u; + self->uvs[VERTEX_Y2] = v2; + self->uvs[VERTEX_X3] = u; + self->uvs[VERTEX_Y3] = v; + self->uvs[VERTEX_X4] = u2; + self->uvs[VERTEX_Y4] = v; + self->uvs[VERTEX_X1] = u2; + self->uvs[VERTEX_Y1] = v2; } else { - localX += self->region->offsetX / self->region->originalWidth * self->width; - localY += self->region->offsetY / self->region->originalHeight * self->height; - localX2 -= (self->region->originalWidth - self->region->offsetX - self->region->width) / self->region->originalWidth * self->width; - localY2 -= (self->region->originalHeight - self->region->offsetY - self->region->height) / self->region->originalHeight * self->height; + self->uvs[VERTEX_X1] = u; + self->uvs[VERTEX_Y1] = v2; + self->uvs[VERTEX_X2] = u; + self->uvs[VERTEX_Y2] = v; + self->uvs[VERTEX_X3] = u2; + self->uvs[VERTEX_Y3] = v; + self->uvs[VERTEX_X4] = u2; + self->uvs[VERTEX_Y4] = v2; } - localX *= self->scaleX; - localY *= self->scaleY; - localX2 *= self->scaleX; - localY2 *= self->scaleY; +} + +void RegionAttachment_updateOffset (RegionAttachment* self) { + float regionScaleX = self->width / self->regionOriginalWidth * self->scaleX; + float regionScaleY = self->height / self->regionOriginalHeight * self->scaleX; + float localX = -self->width / 2 * self->scaleX + self->regionOffsetX * regionScaleX; + float localY = -self->height / 2 * self->scaleX + self->regionOffsetY * regionScaleY; + float localX2 = localX + self->regionWidth * regionScaleX; + float localY2 = localY + self->regionHeight * regionScaleY; float radians = (float)(self->rotation * 3.1415926535897932385 / 180); float cosine = cosf(radians); float sine = sinf(radians); diff --git a/spine-cocos2d-iphone/src/spine/spine-cocos2d-iphone.m b/spine-cocos2d-iphone/src/spine/spine-cocos2d-iphone.m index f301b8cb3..a5434568a 100644 --- a/spine-cocos2d-iphone/src/spine/spine-cocos2d-iphone.m +++ b/spine-cocos2d-iphone/src/spine/spine-cocos2d-iphone.m @@ -83,25 +83,14 @@ void RegionAttachment_updateQuad (RegionAttachment* self, Slot* slot, ccV3F_C4B_ quad->br.vertices.x = self->vertices[VERTEX_X4]; quad->br.vertices.y = self->vertices[VERTEX_Y4]; - if (self->region->rotate) { - quad->tl.texCoords.u = self->region->u; - quad->tl.texCoords.v = self->region->v2; - quad->tr.texCoords.u = self->region->u; - quad->tr.texCoords.v = self->region->v; - quad->br.texCoords.u = self->region->u2; - quad->br.texCoords.v = self->region->v; - quad->bl.texCoords.u = self->region->u2; - quad->bl.texCoords.v = self->region->v2; - } else { - quad->bl.texCoords.u = self->region->u; - quad->bl.texCoords.v = self->region->v2; - quad->tl.texCoords.u = self->region->u; - quad->tl.texCoords.v = self->region->v; - quad->tr.texCoords.u = self->region->u2; - quad->tr.texCoords.v = self->region->v; - quad->br.texCoords.u = self->region->u2; - quad->br.texCoords.v = self->region->v2; - } + quad->bl.texCoords.u = self->uvs[VERTEX_X1]; + quad->bl.texCoords.v = self->uvs[VERTEX_Y1]; + quad->tl.texCoords.u = self->uvs[VERTEX_X2]; + quad->tl.texCoords.v = self->uvs[VERTEX_Y2]; + quad->tr.texCoords.u = self->uvs[VERTEX_X3]; + quad->tr.texCoords.v = self->uvs[VERTEX_Y3]; + quad->br.texCoords.u = self->uvs[VERTEX_X4]; + quad->br.texCoords.v = self->uvs[VERTEX_Y4]; } #ifdef __cplusplus @@ -205,7 +194,7 @@ void RegionAttachment_updateQuad (RegionAttachment* self, Slot* slot, ccV3F_C4B_ } - (void) update:(ccTime)deltaTime { - Skeleton_update(skeleton, deltaTime); + Skeleton_update(skeleton, deltaTime * timeScale); AnimationState_update(state, deltaTime * timeScale); AnimationState_apply(state, skeleton); Skeleton_updateWorldTransform(skeleton); @@ -231,7 +220,7 @@ void RegionAttachment_updateQuad (RegionAttachment* self, Slot* slot, ccV3F_C4B_ Slot* slot = skeleton->slots[i]; if (!slot->attachment || slot->attachment->type != ATTACHMENT_REGION) continue; RegionAttachment* attachment = (RegionAttachment*)slot->attachment; - CCTextureAtlas* regionTextureAtlas = (CCTextureAtlas*)attachment->region->page->texture; + CCTextureAtlas* regionTextureAtlas = (CCTextureAtlas*)attachment->texture; if (regionTextureAtlas != textureAtlas) { if (textureAtlas) { [textureAtlas drawQuads]; diff --git a/spine-cocos2dx/example/Resources/common/goblins.json b/spine-cocos2dx/example/Resources/common/goblins.json index f1dcc96a0..95313ebe6 100644 --- a/spine-cocos2dx/example/Resources/common/goblins.json +++ b/spine-cocos2dx/example/Resources/common/goblins.json @@ -3,26 +3,26 @@ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, { "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 }, - { "name": "left lower leg", "parent": "left upper leg", "length": 49.89, "x": 56.34, "y": 0.98, "rotation": -16.65 }, - { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 58.94, "y": -7.61, "rotation": 102.43 }, + { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 }, { "name": "right upper leg", "parent": "hip", "length": 42.45, "x": -20.07, "y": -6.83, "rotation": -97.49 }, - { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 42.99, "y": -0.61, "rotation": -14.34 }, - { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 }, { "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 93.92 }, - { "name": "neck", "parent": "torso", "length": 18.38, "x": 81.67, "y": -6.34, "rotation": -1.51 }, - { "name": "head", "parent": "neck", "length": 68.28, "x": 20.93, "y": 11.59, "rotation": -13.92 }, - { "name": "right shoulder", "parent": "torso", "length": 37.24, "x": 76.02, "y": 18.14, "rotation": 133.88 }, - { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 37.6, "y": 0.31, "rotation": 36.32 }, - { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }, + { "name": "left lower leg", "parent": "left upper leg", "length": 49.89, "x": 56.34, "y": 0.98, "rotation": -16.65 }, { "name": "left shoulder", "parent": "torso", "length": 35.43, "x": 74.04, "y": -20.38, "rotation": -156.96 }, + { "name": "neck", "parent": "torso", "length": 18.38, "x": 81.67, "y": -6.34, "rotation": -1.51 }, + { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 42.99, "y": -0.61, "rotation": -14.34 }, + { "name": "right shoulder", "parent": "torso", "length": 37.24, "x": 76.02, "y": 18.14, "rotation": 133.88 }, + { "name": "head", "parent": "neck", "length": 68.28, "x": 20.93, "y": 11.59, "rotation": -13.92 }, { "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 37.85, "y": -2.34, "rotation": 28.16 }, + { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 58.94, "y": -7.61, "rotation": 102.43 }, + { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 37.6, "y": 0.31, "rotation": 36.32 }, + { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 }, { "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 }, - { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 } + { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 } ], "slots": [ { "name": "left shoulder", "bone": "left shoulder", "attachment": "left shoulder" }, { "name": "left arm", "bone": "left arm", "attachment": "left arm" }, - { "name": "left hand item", "bone": "left hand", "attachment": "spear" }, + { "name": "left hand item", "bone": "left hand", "attachment": "dagger" }, { "name": "left hand", "bone": "left hand", "attachment": "left hand" }, { "name": "left foot", "bone": "left foot", "attachment": "left foot" }, { "name": "left lower leg", "bone": "left lower leg", "attachment": "left lower leg" }, @@ -45,11 +45,11 @@ "skins": { "default": { "left hand item": { - "dagger": { "x": 7.88, "y": -23.45, "rotation": 10.47, "width": 26, "height": 108 }, + "dagger": { "x": -35.5, "y": 3.85, "rotation": 10.47, "width": 156, "height": 238 }, "spear": { "x": -4.55, "y": 39.2, "rotation": 13.04, "width": 22, "height": 368 } }, "right hand item": { - "dagger": { "x": 6.51, "y": -24.15, "rotation": -8.06, "width": 26, "height": 108 } + "dagger": { "x": -21.57, "y": 15.8, "rotation": -8.06, "width": 156, "height": 238 } } }, "goblin": { diff --git a/spine-cocos2dx/example/Resources/ipad/goblins.atlas b/spine-cocos2dx/example/Resources/ipad/goblins.atlas index 271742263..ce74602e5 100644 --- a/spine-cocos2dx/example/Resources/ipad/goblins.atlas +++ b/spine-cocos2dx/example/Resources/ipad/goblins.atlas @@ -4,282 +4,282 @@ format: RGBA8888 filter: Linear,Linear repeat: none spear - rotate: false - xy: 2, 142 + rotate: true + xy: 2, 104 size: 22, 368 orig: 22, 368 offset: 0, 0 index: -1 goblingirl/head rotate: false - xy: 26, 429 - size: 103, 81 + xy: 2, 23 + size: 103, 79 orig: 103, 81 - offset: 0, 0 + offset: 0, 2 index: -1 goblin/head rotate: false - xy: 26, 361 - size: 103, 66 + xy: 107, 38 + size: 103, 64 orig: 103, 66 offset: 0, 0 index: -1 goblin/torso - rotate: false - xy: 131, 414 + rotate: true + xy: 212, 34 size: 68, 96 orig: 68, 96 offset: 0, 0 index: -1 -goblingirl/torso +goblin/right-upper-leg + rotate: true + xy: 107, 2 + size: 34, 63 + orig: 34, 63 + offset: 0, 0 + index: -1 +goblin/left-lower-leg + rotate: true + xy: 172, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblingirl/left-lower-leg + rotate: true + xy: 244, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblin/undie-straps rotate: false - xy: 26, 263 - size: 68, 96 - orig: 68, 96 + xy: 2, 2 + size: 55, 19 + orig: 55, 19 offset: 0, 0 index: -1 dagger - rotate: false - xy: 26, 153 + rotate: true + xy: 372, 100 size: 26, 108 - orig: 26, 108 + orig: 156, 238 + offset: 100, 30 + index: -1 +goblingirl/torso + rotate: true + xy: 482, 60 + size: 66, 96 + orig: 68, 96 offset: 0, 0 index: -1 goblin/right-lower-leg - rotate: false - xy: 201, 434 - size: 36, 76 + rotate: true + xy: 580, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblingirl/right-lower-leg - rotate: false - xy: 54, 185 - size: 36, 76 + rotate: true + xy: 658, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblin/left-upper-leg - rotate: false - xy: 96, 286 + rotate: true + xy: 736, 93 size: 33, 73 orig: 33, 73 offset: 0, 0 index: -1 goblin/pelvis - rotate: false - xy: 131, 369 + rotate: true + xy: 310, 40 size: 62, 43 orig: 62, 43 offset: 0, 0 index: -1 -goblingirl/pelvis - rotate: false - xy: 131, 324 - size: 62, 43 - orig: 62, 43 - offset: 0, 0 - index: -1 -goblin/right-foot - rotate: false - xy: 131, 289 - size: 63, 33 - orig: 63, 33 - offset: 0, 0 - index: -1 -goblin/left-lower-leg - rotate: false - xy: 2, 70 - size: 33, 70 - orig: 33, 70 - offset: 0, 0 - index: -1 -goblin/right-upper-leg - rotate: false - xy: 2, 5 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblingirl/left-lower-leg - rotate: false - xy: 195, 342 - size: 33, 70 - orig: 33, 70 +goblin/left-hand + rotate: true + xy: 316, 2 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-upper-leg - rotate: false - xy: 37, 81 + rotate: true + xy: 811, 93 size: 33, 70 orig: 33, 70 offset: 0, 0 index: -1 -goblingirl/right-upper-leg - rotate: false - xy: 38, 16 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblin/eyes-closed - rotate: false - xy: 38, 2 - size: 34, 12 - orig: 34, 12 - offset: 0, 0 - index: -1 -goblin/undies - rotate: false - xy: 54, 154 - size: 36, 29 - orig: 36, 29 - offset: 0, 0 - index: -1 -goblin/right-arm - rotate: false - xy: 72, 102 - size: 23, 50 - orig: 23, 50 - offset: 0, 0 - index: -1 goblin/left-foot rotate: false - xy: 131, 256 + xy: 883, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-arm - rotate: false - xy: 196, 290 - size: 28, 50 - orig: 28, 50 - offset: 0, 0 - index: -1 -goblingirl/left-shoulder - rotate: false - xy: 226, 294 - size: 28, 46 - orig: 28, 46 - offset: 0, 0 - index: -1 -goblin/left-arm - rotate: false - xy: 198, 253 - size: 37, 35 - orig: 37, 35 - offset: 0, 0 - index: -1 goblingirl/left-foot rotate: false - xy: 92, 223 + xy: 950, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-foot +goblin/right-foot rotate: false - xy: 92, 188 + xy: 580, 56 size: 63, 33 orig: 63, 33 offset: 0, 0 index: -1 -goblin/undie-straps +goblingirl/right-foot rotate: false - xy: 92, 167 - size: 55, 19 - orig: 55, 19 + xy: 645, 56 + size: 63, 33 + orig: 63, 33 offset: 0, 0 index: -1 -goblingirl/left-arm +goblingirl/pelvis rotate: false - xy: 159, 219 - size: 37, 35 - orig: 37, 35 + xy: 355, 55 + size: 59, 43 + orig: 62, 43 + offset: 1, 0 + index: -1 +goblingirl/right-upper-leg + rotate: true + xy: 416, 64 + size: 34, 63 + orig: 34, 63 offset: 0, 0 index: -1 goblin/right-shoulder rotate: false - xy: 97, 120 - size: 39, 45 + xy: 359, 11 + size: 39, 42 orig: 39, 45 offset: 0, 0 index: -1 -goblingirl/right-shoulder - rotate: false - xy: 198, 206 - size: 39, 45 - orig: 39, 45 - offset: 0, 0 - index: -1 -goblin/left-hand - rotate: false - xy: 157, 176 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 -goblin/neck - rotate: false - xy: 195, 163 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 goblingirl/undie-straps rotate: false - xy: 97, 99 + xy: 416, 43 size: 55, 19 orig: 55, 19 offset: 0, 0 index: -1 -goblingirl/neck +goblingirl/right-shoulder + rotate: true + xy: 400, 2 + size: 39, 42 + orig: 39, 45 + offset: 0, 0 + index: -1 +goblin/left-arm + rotate: true + xy: 444, 4 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/neck rotate: false - xy: 138, 120 - size: 35, 41 - orig: 35, 41 + xy: 481, 17 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-hand rotate: false - xy: 175, 121 + xy: 519, 18 size: 35, 40 orig: 35, 40 offset: 0, 0 index: -1 -goblin/left-shoulder +goblingirl/right-arm rotate: false - xy: 212, 117 + xy: 556, 8 + size: 22, 50 + orig: 28, 50 + offset: 3, 0 + index: -1 +goblingirl/neck + rotate: false + xy: 580, 13 + size: 33, 41 + orig: 35, 41 + offset: 0, 0 + index: -1 +goblin/left-shoulder + rotate: true + xy: 615, 25 size: 29, 44 orig: 29, 44 offset: 0, 0 index: -1 -goblingirl/eyes-closed +goblingirl/left-shoulder + rotate: true + xy: 661, 26 + size: 28, 45 + orig: 28, 46 + offset: 0, 1 + index: -1 +goblingirl/left-arm rotate: false - xy: 154, 97 - size: 37, 21 - orig: 37, 21 + xy: 710, 54 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/right-arm + rotate: false + xy: 708, 2 + size: 23, 50 + orig: 23, 50 offset: 0, 0 index: -1 goblin/right-hand rotate: false - xy: 193, 78 + xy: 749, 54 size: 36, 37 orig: 36, 37 offset: 0, 0 index: -1 goblingirl/right-hand rotate: false - xy: 74, 39 - size: 36, 37 + xy: 733, 15 + size: 35, 37 orig: 36, 37 - offset: 0, 0 + offset: 1, 0 index: -1 -goblingirl/undies +goblin/undies rotate: false - xy: 74, 8 + xy: 787, 62 size: 36, 29 orig: 36, 29 offset: 0, 0 index: -1 +goblingirl/undies + rotate: false + xy: 825, 62 + size: 36, 29 + orig: 36, 29 + offset: 0, 0 + index: -1 +goblingirl/eyes-closed + rotate: false + xy: 59, 6 + size: 37, 15 + orig: 37, 21 + offset: 0, 0 + index: -1 +goblin/eyes-closed + rotate: true + xy: 770, 18 + size: 34, 12 + orig: 34, 12 + offset: 0, 0 + index: -1 diff --git a/spine-cocos2dx/example/Resources/ipad/goblins.png b/spine-cocos2dx/example/Resources/ipad/goblins.png index 863b29467..1d6f59e37 100644 Binary files a/spine-cocos2dx/example/Resources/ipad/goblins.png and b/spine-cocos2dx/example/Resources/ipad/goblins.png differ diff --git a/spine-cocos2dx/example/Resources/ipadhd/goblins.atlas b/spine-cocos2dx/example/Resources/ipadhd/goblins.atlas index 271742263..ce74602e5 100644 --- a/spine-cocos2dx/example/Resources/ipadhd/goblins.atlas +++ b/spine-cocos2dx/example/Resources/ipadhd/goblins.atlas @@ -4,282 +4,282 @@ format: RGBA8888 filter: Linear,Linear repeat: none spear - rotate: false - xy: 2, 142 + rotate: true + xy: 2, 104 size: 22, 368 orig: 22, 368 offset: 0, 0 index: -1 goblingirl/head rotate: false - xy: 26, 429 - size: 103, 81 + xy: 2, 23 + size: 103, 79 orig: 103, 81 - offset: 0, 0 + offset: 0, 2 index: -1 goblin/head rotate: false - xy: 26, 361 - size: 103, 66 + xy: 107, 38 + size: 103, 64 orig: 103, 66 offset: 0, 0 index: -1 goblin/torso - rotate: false - xy: 131, 414 + rotate: true + xy: 212, 34 size: 68, 96 orig: 68, 96 offset: 0, 0 index: -1 -goblingirl/torso +goblin/right-upper-leg + rotate: true + xy: 107, 2 + size: 34, 63 + orig: 34, 63 + offset: 0, 0 + index: -1 +goblin/left-lower-leg + rotate: true + xy: 172, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblingirl/left-lower-leg + rotate: true + xy: 244, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblin/undie-straps rotate: false - xy: 26, 263 - size: 68, 96 - orig: 68, 96 + xy: 2, 2 + size: 55, 19 + orig: 55, 19 offset: 0, 0 index: -1 dagger - rotate: false - xy: 26, 153 + rotate: true + xy: 372, 100 size: 26, 108 - orig: 26, 108 + orig: 156, 238 + offset: 100, 30 + index: -1 +goblingirl/torso + rotate: true + xy: 482, 60 + size: 66, 96 + orig: 68, 96 offset: 0, 0 index: -1 goblin/right-lower-leg - rotate: false - xy: 201, 434 - size: 36, 76 + rotate: true + xy: 580, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblingirl/right-lower-leg - rotate: false - xy: 54, 185 - size: 36, 76 + rotate: true + xy: 658, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblin/left-upper-leg - rotate: false - xy: 96, 286 + rotate: true + xy: 736, 93 size: 33, 73 orig: 33, 73 offset: 0, 0 index: -1 goblin/pelvis - rotate: false - xy: 131, 369 + rotate: true + xy: 310, 40 size: 62, 43 orig: 62, 43 offset: 0, 0 index: -1 -goblingirl/pelvis - rotate: false - xy: 131, 324 - size: 62, 43 - orig: 62, 43 - offset: 0, 0 - index: -1 -goblin/right-foot - rotate: false - xy: 131, 289 - size: 63, 33 - orig: 63, 33 - offset: 0, 0 - index: -1 -goblin/left-lower-leg - rotate: false - xy: 2, 70 - size: 33, 70 - orig: 33, 70 - offset: 0, 0 - index: -1 -goblin/right-upper-leg - rotate: false - xy: 2, 5 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblingirl/left-lower-leg - rotate: false - xy: 195, 342 - size: 33, 70 - orig: 33, 70 +goblin/left-hand + rotate: true + xy: 316, 2 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-upper-leg - rotate: false - xy: 37, 81 + rotate: true + xy: 811, 93 size: 33, 70 orig: 33, 70 offset: 0, 0 index: -1 -goblingirl/right-upper-leg - rotate: false - xy: 38, 16 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblin/eyes-closed - rotate: false - xy: 38, 2 - size: 34, 12 - orig: 34, 12 - offset: 0, 0 - index: -1 -goblin/undies - rotate: false - xy: 54, 154 - size: 36, 29 - orig: 36, 29 - offset: 0, 0 - index: -1 -goblin/right-arm - rotate: false - xy: 72, 102 - size: 23, 50 - orig: 23, 50 - offset: 0, 0 - index: -1 goblin/left-foot rotate: false - xy: 131, 256 + xy: 883, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-arm - rotate: false - xy: 196, 290 - size: 28, 50 - orig: 28, 50 - offset: 0, 0 - index: -1 -goblingirl/left-shoulder - rotate: false - xy: 226, 294 - size: 28, 46 - orig: 28, 46 - offset: 0, 0 - index: -1 -goblin/left-arm - rotate: false - xy: 198, 253 - size: 37, 35 - orig: 37, 35 - offset: 0, 0 - index: -1 goblingirl/left-foot rotate: false - xy: 92, 223 + xy: 950, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-foot +goblin/right-foot rotate: false - xy: 92, 188 + xy: 580, 56 size: 63, 33 orig: 63, 33 offset: 0, 0 index: -1 -goblin/undie-straps +goblingirl/right-foot rotate: false - xy: 92, 167 - size: 55, 19 - orig: 55, 19 + xy: 645, 56 + size: 63, 33 + orig: 63, 33 offset: 0, 0 index: -1 -goblingirl/left-arm +goblingirl/pelvis rotate: false - xy: 159, 219 - size: 37, 35 - orig: 37, 35 + xy: 355, 55 + size: 59, 43 + orig: 62, 43 + offset: 1, 0 + index: -1 +goblingirl/right-upper-leg + rotate: true + xy: 416, 64 + size: 34, 63 + orig: 34, 63 offset: 0, 0 index: -1 goblin/right-shoulder rotate: false - xy: 97, 120 - size: 39, 45 + xy: 359, 11 + size: 39, 42 orig: 39, 45 offset: 0, 0 index: -1 -goblingirl/right-shoulder - rotate: false - xy: 198, 206 - size: 39, 45 - orig: 39, 45 - offset: 0, 0 - index: -1 -goblin/left-hand - rotate: false - xy: 157, 176 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 -goblin/neck - rotate: false - xy: 195, 163 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 goblingirl/undie-straps rotate: false - xy: 97, 99 + xy: 416, 43 size: 55, 19 orig: 55, 19 offset: 0, 0 index: -1 -goblingirl/neck +goblingirl/right-shoulder + rotate: true + xy: 400, 2 + size: 39, 42 + orig: 39, 45 + offset: 0, 0 + index: -1 +goblin/left-arm + rotate: true + xy: 444, 4 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/neck rotate: false - xy: 138, 120 - size: 35, 41 - orig: 35, 41 + xy: 481, 17 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-hand rotate: false - xy: 175, 121 + xy: 519, 18 size: 35, 40 orig: 35, 40 offset: 0, 0 index: -1 -goblin/left-shoulder +goblingirl/right-arm rotate: false - xy: 212, 117 + xy: 556, 8 + size: 22, 50 + orig: 28, 50 + offset: 3, 0 + index: -1 +goblingirl/neck + rotate: false + xy: 580, 13 + size: 33, 41 + orig: 35, 41 + offset: 0, 0 + index: -1 +goblin/left-shoulder + rotate: true + xy: 615, 25 size: 29, 44 orig: 29, 44 offset: 0, 0 index: -1 -goblingirl/eyes-closed +goblingirl/left-shoulder + rotate: true + xy: 661, 26 + size: 28, 45 + orig: 28, 46 + offset: 0, 1 + index: -1 +goblingirl/left-arm rotate: false - xy: 154, 97 - size: 37, 21 - orig: 37, 21 + xy: 710, 54 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/right-arm + rotate: false + xy: 708, 2 + size: 23, 50 + orig: 23, 50 offset: 0, 0 index: -1 goblin/right-hand rotate: false - xy: 193, 78 + xy: 749, 54 size: 36, 37 orig: 36, 37 offset: 0, 0 index: -1 goblingirl/right-hand rotate: false - xy: 74, 39 - size: 36, 37 + xy: 733, 15 + size: 35, 37 orig: 36, 37 - offset: 0, 0 + offset: 1, 0 index: -1 -goblingirl/undies +goblin/undies rotate: false - xy: 74, 8 + xy: 787, 62 size: 36, 29 orig: 36, 29 offset: 0, 0 index: -1 +goblingirl/undies + rotate: false + xy: 825, 62 + size: 36, 29 + orig: 36, 29 + offset: 0, 0 + index: -1 +goblingirl/eyes-closed + rotate: false + xy: 59, 6 + size: 37, 15 + orig: 37, 21 + offset: 0, 0 + index: -1 +goblin/eyes-closed + rotate: true + xy: 770, 18 + size: 34, 12 + orig: 34, 12 + offset: 0, 0 + index: -1 diff --git a/spine-cocos2dx/example/Resources/ipadhd/goblins.png b/spine-cocos2dx/example/Resources/ipadhd/goblins.png index 863b29467..1d6f59e37 100644 Binary files a/spine-cocos2dx/example/Resources/ipadhd/goblins.png and b/spine-cocos2dx/example/Resources/ipadhd/goblins.png differ diff --git a/spine-cocos2dx/example/Resources/iphone-retina/goblins.atlas b/spine-cocos2dx/example/Resources/iphone-retina/goblins.atlas index 271742263..ce74602e5 100644 --- a/spine-cocos2dx/example/Resources/iphone-retina/goblins.atlas +++ b/spine-cocos2dx/example/Resources/iphone-retina/goblins.atlas @@ -4,282 +4,282 @@ format: RGBA8888 filter: Linear,Linear repeat: none spear - rotate: false - xy: 2, 142 + rotate: true + xy: 2, 104 size: 22, 368 orig: 22, 368 offset: 0, 0 index: -1 goblingirl/head rotate: false - xy: 26, 429 - size: 103, 81 + xy: 2, 23 + size: 103, 79 orig: 103, 81 - offset: 0, 0 + offset: 0, 2 index: -1 goblin/head rotate: false - xy: 26, 361 - size: 103, 66 + xy: 107, 38 + size: 103, 64 orig: 103, 66 offset: 0, 0 index: -1 goblin/torso - rotate: false - xy: 131, 414 + rotate: true + xy: 212, 34 size: 68, 96 orig: 68, 96 offset: 0, 0 index: -1 -goblingirl/torso +goblin/right-upper-leg + rotate: true + xy: 107, 2 + size: 34, 63 + orig: 34, 63 + offset: 0, 0 + index: -1 +goblin/left-lower-leg + rotate: true + xy: 172, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblingirl/left-lower-leg + rotate: true + xy: 244, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblin/undie-straps rotate: false - xy: 26, 263 - size: 68, 96 - orig: 68, 96 + xy: 2, 2 + size: 55, 19 + orig: 55, 19 offset: 0, 0 index: -1 dagger - rotate: false - xy: 26, 153 + rotate: true + xy: 372, 100 size: 26, 108 - orig: 26, 108 + orig: 156, 238 + offset: 100, 30 + index: -1 +goblingirl/torso + rotate: true + xy: 482, 60 + size: 66, 96 + orig: 68, 96 offset: 0, 0 index: -1 goblin/right-lower-leg - rotate: false - xy: 201, 434 - size: 36, 76 + rotate: true + xy: 580, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblingirl/right-lower-leg - rotate: false - xy: 54, 185 - size: 36, 76 + rotate: true + xy: 658, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblin/left-upper-leg - rotate: false - xy: 96, 286 + rotate: true + xy: 736, 93 size: 33, 73 orig: 33, 73 offset: 0, 0 index: -1 goblin/pelvis - rotate: false - xy: 131, 369 + rotate: true + xy: 310, 40 size: 62, 43 orig: 62, 43 offset: 0, 0 index: -1 -goblingirl/pelvis - rotate: false - xy: 131, 324 - size: 62, 43 - orig: 62, 43 - offset: 0, 0 - index: -1 -goblin/right-foot - rotate: false - xy: 131, 289 - size: 63, 33 - orig: 63, 33 - offset: 0, 0 - index: -1 -goblin/left-lower-leg - rotate: false - xy: 2, 70 - size: 33, 70 - orig: 33, 70 - offset: 0, 0 - index: -1 -goblin/right-upper-leg - rotate: false - xy: 2, 5 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblingirl/left-lower-leg - rotate: false - xy: 195, 342 - size: 33, 70 - orig: 33, 70 +goblin/left-hand + rotate: true + xy: 316, 2 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-upper-leg - rotate: false - xy: 37, 81 + rotate: true + xy: 811, 93 size: 33, 70 orig: 33, 70 offset: 0, 0 index: -1 -goblingirl/right-upper-leg - rotate: false - xy: 38, 16 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblin/eyes-closed - rotate: false - xy: 38, 2 - size: 34, 12 - orig: 34, 12 - offset: 0, 0 - index: -1 -goblin/undies - rotate: false - xy: 54, 154 - size: 36, 29 - orig: 36, 29 - offset: 0, 0 - index: -1 -goblin/right-arm - rotate: false - xy: 72, 102 - size: 23, 50 - orig: 23, 50 - offset: 0, 0 - index: -1 goblin/left-foot rotate: false - xy: 131, 256 + xy: 883, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-arm - rotate: false - xy: 196, 290 - size: 28, 50 - orig: 28, 50 - offset: 0, 0 - index: -1 -goblingirl/left-shoulder - rotate: false - xy: 226, 294 - size: 28, 46 - orig: 28, 46 - offset: 0, 0 - index: -1 -goblin/left-arm - rotate: false - xy: 198, 253 - size: 37, 35 - orig: 37, 35 - offset: 0, 0 - index: -1 goblingirl/left-foot rotate: false - xy: 92, 223 + xy: 950, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-foot +goblin/right-foot rotate: false - xy: 92, 188 + xy: 580, 56 size: 63, 33 orig: 63, 33 offset: 0, 0 index: -1 -goblin/undie-straps +goblingirl/right-foot rotate: false - xy: 92, 167 - size: 55, 19 - orig: 55, 19 + xy: 645, 56 + size: 63, 33 + orig: 63, 33 offset: 0, 0 index: -1 -goblingirl/left-arm +goblingirl/pelvis rotate: false - xy: 159, 219 - size: 37, 35 - orig: 37, 35 + xy: 355, 55 + size: 59, 43 + orig: 62, 43 + offset: 1, 0 + index: -1 +goblingirl/right-upper-leg + rotate: true + xy: 416, 64 + size: 34, 63 + orig: 34, 63 offset: 0, 0 index: -1 goblin/right-shoulder rotate: false - xy: 97, 120 - size: 39, 45 + xy: 359, 11 + size: 39, 42 orig: 39, 45 offset: 0, 0 index: -1 -goblingirl/right-shoulder - rotate: false - xy: 198, 206 - size: 39, 45 - orig: 39, 45 - offset: 0, 0 - index: -1 -goblin/left-hand - rotate: false - xy: 157, 176 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 -goblin/neck - rotate: false - xy: 195, 163 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 goblingirl/undie-straps rotate: false - xy: 97, 99 + xy: 416, 43 size: 55, 19 orig: 55, 19 offset: 0, 0 index: -1 -goblingirl/neck +goblingirl/right-shoulder + rotate: true + xy: 400, 2 + size: 39, 42 + orig: 39, 45 + offset: 0, 0 + index: -1 +goblin/left-arm + rotate: true + xy: 444, 4 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/neck rotate: false - xy: 138, 120 - size: 35, 41 - orig: 35, 41 + xy: 481, 17 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-hand rotate: false - xy: 175, 121 + xy: 519, 18 size: 35, 40 orig: 35, 40 offset: 0, 0 index: -1 -goblin/left-shoulder +goblingirl/right-arm rotate: false - xy: 212, 117 + xy: 556, 8 + size: 22, 50 + orig: 28, 50 + offset: 3, 0 + index: -1 +goblingirl/neck + rotate: false + xy: 580, 13 + size: 33, 41 + orig: 35, 41 + offset: 0, 0 + index: -1 +goblin/left-shoulder + rotate: true + xy: 615, 25 size: 29, 44 orig: 29, 44 offset: 0, 0 index: -1 -goblingirl/eyes-closed +goblingirl/left-shoulder + rotate: true + xy: 661, 26 + size: 28, 45 + orig: 28, 46 + offset: 0, 1 + index: -1 +goblingirl/left-arm rotate: false - xy: 154, 97 - size: 37, 21 - orig: 37, 21 + xy: 710, 54 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/right-arm + rotate: false + xy: 708, 2 + size: 23, 50 + orig: 23, 50 offset: 0, 0 index: -1 goblin/right-hand rotate: false - xy: 193, 78 + xy: 749, 54 size: 36, 37 orig: 36, 37 offset: 0, 0 index: -1 goblingirl/right-hand rotate: false - xy: 74, 39 - size: 36, 37 + xy: 733, 15 + size: 35, 37 orig: 36, 37 - offset: 0, 0 + offset: 1, 0 index: -1 -goblingirl/undies +goblin/undies rotate: false - xy: 74, 8 + xy: 787, 62 size: 36, 29 orig: 36, 29 offset: 0, 0 index: -1 +goblingirl/undies + rotate: false + xy: 825, 62 + size: 36, 29 + orig: 36, 29 + offset: 0, 0 + index: -1 +goblingirl/eyes-closed + rotate: false + xy: 59, 6 + size: 37, 15 + orig: 37, 21 + offset: 0, 0 + index: -1 +goblin/eyes-closed + rotate: true + xy: 770, 18 + size: 34, 12 + orig: 34, 12 + offset: 0, 0 + index: -1 diff --git a/spine-cocos2dx/example/Resources/iphone-retina/goblins.png b/spine-cocos2dx/example/Resources/iphone-retina/goblins.png index 863b29467..1d6f59e37 100644 Binary files a/spine-cocos2dx/example/Resources/iphone-retina/goblins.png and b/spine-cocos2dx/example/Resources/iphone-retina/goblins.png differ diff --git a/spine-cocos2dx/example/Resources/iphone/goblins.atlas b/spine-cocos2dx/example/Resources/iphone/goblins.atlas index 271742263..ce74602e5 100644 --- a/spine-cocos2dx/example/Resources/iphone/goblins.atlas +++ b/spine-cocos2dx/example/Resources/iphone/goblins.atlas @@ -4,282 +4,282 @@ format: RGBA8888 filter: Linear,Linear repeat: none spear - rotate: false - xy: 2, 142 + rotate: true + xy: 2, 104 size: 22, 368 orig: 22, 368 offset: 0, 0 index: -1 goblingirl/head rotate: false - xy: 26, 429 - size: 103, 81 + xy: 2, 23 + size: 103, 79 orig: 103, 81 - offset: 0, 0 + offset: 0, 2 index: -1 goblin/head rotate: false - xy: 26, 361 - size: 103, 66 + xy: 107, 38 + size: 103, 64 orig: 103, 66 offset: 0, 0 index: -1 goblin/torso - rotate: false - xy: 131, 414 + rotate: true + xy: 212, 34 size: 68, 96 orig: 68, 96 offset: 0, 0 index: -1 -goblingirl/torso +goblin/right-upper-leg + rotate: true + xy: 107, 2 + size: 34, 63 + orig: 34, 63 + offset: 0, 0 + index: -1 +goblin/left-lower-leg + rotate: true + xy: 172, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblingirl/left-lower-leg + rotate: true + xy: 244, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblin/undie-straps rotate: false - xy: 26, 263 - size: 68, 96 - orig: 68, 96 + xy: 2, 2 + size: 55, 19 + orig: 55, 19 offset: 0, 0 index: -1 dagger - rotate: false - xy: 26, 153 + rotate: true + xy: 372, 100 size: 26, 108 - orig: 26, 108 + orig: 156, 238 + offset: 100, 30 + index: -1 +goblingirl/torso + rotate: true + xy: 482, 60 + size: 66, 96 + orig: 68, 96 offset: 0, 0 index: -1 goblin/right-lower-leg - rotate: false - xy: 201, 434 - size: 36, 76 + rotate: true + xy: 580, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblingirl/right-lower-leg - rotate: false - xy: 54, 185 - size: 36, 76 + rotate: true + xy: 658, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblin/left-upper-leg - rotate: false - xy: 96, 286 + rotate: true + xy: 736, 93 size: 33, 73 orig: 33, 73 offset: 0, 0 index: -1 goblin/pelvis - rotate: false - xy: 131, 369 + rotate: true + xy: 310, 40 size: 62, 43 orig: 62, 43 offset: 0, 0 index: -1 -goblingirl/pelvis - rotate: false - xy: 131, 324 - size: 62, 43 - orig: 62, 43 - offset: 0, 0 - index: -1 -goblin/right-foot - rotate: false - xy: 131, 289 - size: 63, 33 - orig: 63, 33 - offset: 0, 0 - index: -1 -goblin/left-lower-leg - rotate: false - xy: 2, 70 - size: 33, 70 - orig: 33, 70 - offset: 0, 0 - index: -1 -goblin/right-upper-leg - rotate: false - xy: 2, 5 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblingirl/left-lower-leg - rotate: false - xy: 195, 342 - size: 33, 70 - orig: 33, 70 +goblin/left-hand + rotate: true + xy: 316, 2 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-upper-leg - rotate: false - xy: 37, 81 + rotate: true + xy: 811, 93 size: 33, 70 orig: 33, 70 offset: 0, 0 index: -1 -goblingirl/right-upper-leg - rotate: false - xy: 38, 16 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblin/eyes-closed - rotate: false - xy: 38, 2 - size: 34, 12 - orig: 34, 12 - offset: 0, 0 - index: -1 -goblin/undies - rotate: false - xy: 54, 154 - size: 36, 29 - orig: 36, 29 - offset: 0, 0 - index: -1 -goblin/right-arm - rotate: false - xy: 72, 102 - size: 23, 50 - orig: 23, 50 - offset: 0, 0 - index: -1 goblin/left-foot rotate: false - xy: 131, 256 + xy: 883, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-arm - rotate: false - xy: 196, 290 - size: 28, 50 - orig: 28, 50 - offset: 0, 0 - index: -1 -goblingirl/left-shoulder - rotate: false - xy: 226, 294 - size: 28, 46 - orig: 28, 46 - offset: 0, 0 - index: -1 -goblin/left-arm - rotate: false - xy: 198, 253 - size: 37, 35 - orig: 37, 35 - offset: 0, 0 - index: -1 goblingirl/left-foot rotate: false - xy: 92, 223 + xy: 950, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-foot +goblin/right-foot rotate: false - xy: 92, 188 + xy: 580, 56 size: 63, 33 orig: 63, 33 offset: 0, 0 index: -1 -goblin/undie-straps +goblingirl/right-foot rotate: false - xy: 92, 167 - size: 55, 19 - orig: 55, 19 + xy: 645, 56 + size: 63, 33 + orig: 63, 33 offset: 0, 0 index: -1 -goblingirl/left-arm +goblingirl/pelvis rotate: false - xy: 159, 219 - size: 37, 35 - orig: 37, 35 + xy: 355, 55 + size: 59, 43 + orig: 62, 43 + offset: 1, 0 + index: -1 +goblingirl/right-upper-leg + rotate: true + xy: 416, 64 + size: 34, 63 + orig: 34, 63 offset: 0, 0 index: -1 goblin/right-shoulder rotate: false - xy: 97, 120 - size: 39, 45 + xy: 359, 11 + size: 39, 42 orig: 39, 45 offset: 0, 0 index: -1 -goblingirl/right-shoulder - rotate: false - xy: 198, 206 - size: 39, 45 - orig: 39, 45 - offset: 0, 0 - index: -1 -goblin/left-hand - rotate: false - xy: 157, 176 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 -goblin/neck - rotate: false - xy: 195, 163 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 goblingirl/undie-straps rotate: false - xy: 97, 99 + xy: 416, 43 size: 55, 19 orig: 55, 19 offset: 0, 0 index: -1 -goblingirl/neck +goblingirl/right-shoulder + rotate: true + xy: 400, 2 + size: 39, 42 + orig: 39, 45 + offset: 0, 0 + index: -1 +goblin/left-arm + rotate: true + xy: 444, 4 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/neck rotate: false - xy: 138, 120 - size: 35, 41 - orig: 35, 41 + xy: 481, 17 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-hand rotate: false - xy: 175, 121 + xy: 519, 18 size: 35, 40 orig: 35, 40 offset: 0, 0 index: -1 -goblin/left-shoulder +goblingirl/right-arm rotate: false - xy: 212, 117 + xy: 556, 8 + size: 22, 50 + orig: 28, 50 + offset: 3, 0 + index: -1 +goblingirl/neck + rotate: false + xy: 580, 13 + size: 33, 41 + orig: 35, 41 + offset: 0, 0 + index: -1 +goblin/left-shoulder + rotate: true + xy: 615, 25 size: 29, 44 orig: 29, 44 offset: 0, 0 index: -1 -goblingirl/eyes-closed +goblingirl/left-shoulder + rotate: true + xy: 661, 26 + size: 28, 45 + orig: 28, 46 + offset: 0, 1 + index: -1 +goblingirl/left-arm rotate: false - xy: 154, 97 - size: 37, 21 - orig: 37, 21 + xy: 710, 54 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/right-arm + rotate: false + xy: 708, 2 + size: 23, 50 + orig: 23, 50 offset: 0, 0 index: -1 goblin/right-hand rotate: false - xy: 193, 78 + xy: 749, 54 size: 36, 37 orig: 36, 37 offset: 0, 0 index: -1 goblingirl/right-hand rotate: false - xy: 74, 39 - size: 36, 37 + xy: 733, 15 + size: 35, 37 orig: 36, 37 - offset: 0, 0 + offset: 1, 0 index: -1 -goblingirl/undies +goblin/undies rotate: false - xy: 74, 8 + xy: 787, 62 size: 36, 29 orig: 36, 29 offset: 0, 0 index: -1 +goblingirl/undies + rotate: false + xy: 825, 62 + size: 36, 29 + orig: 36, 29 + offset: 0, 0 + index: -1 +goblingirl/eyes-closed + rotate: false + xy: 59, 6 + size: 37, 15 + orig: 37, 21 + offset: 0, 0 + index: -1 +goblin/eyes-closed + rotate: true + xy: 770, 18 + size: 34, 12 + orig: 34, 12 + offset: 0, 0 + index: -1 diff --git a/spine-cocos2dx/example/Resources/iphone/goblins.png b/spine-cocos2dx/example/Resources/iphone/goblins.png index 863b29467..1d6f59e37 100644 Binary files a/spine-cocos2dx/example/Resources/iphone/goblins.png and b/spine-cocos2dx/example/Resources/iphone/goblins.png differ diff --git a/spine-cocos2dx/example/raw/images/bow.png b/spine-cocos2dx/example/raw/images/bow.png deleted file mode 100755 index df8994bce..000000000 Binary files a/spine-cocos2dx/example/raw/images/bow.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/eyes-closed.png b/spine-cocos2dx/example/raw/images/eyes-closed.png deleted file mode 100755 index 60718e101..000000000 Binary files a/spine-cocos2dx/example/raw/images/eyes-closed.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/eyes.png b/spine-cocos2dx/example/raw/images/eyes.png deleted file mode 100755 index 707c91b72..000000000 Binary files a/spine-cocos2dx/example/raw/images/eyes.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/head.png b/spine-cocos2dx/example/raw/images/head.png deleted file mode 100755 index 5a98aa37a..000000000 Binary files a/spine-cocos2dx/example/raw/images/head.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-ankle.png b/spine-cocos2dx/example/raw/images/left-ankle.png deleted file mode 100755 index fcf9a2813..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-ankle.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-arm.png b/spine-cocos2dx/example/raw/images/left-arm.png deleted file mode 100755 index 4447dec8a..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-arm.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-foot.png b/spine-cocos2dx/example/raw/images/left-foot.png deleted file mode 100755 index 9b8768277..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-foot.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-hand.png b/spine-cocos2dx/example/raw/images/left-hand.png deleted file mode 100755 index b95a3523c..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-hand.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-lower-leg.png b/spine-cocos2dx/example/raw/images/left-lower-leg.png deleted file mode 100755 index f316b6500..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-lower-leg.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-pant-bottom.png b/spine-cocos2dx/example/raw/images/left-pant-bottom.png deleted file mode 100755 index 29a05bc4f..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-pant-bottom.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-shoulder.png b/spine-cocos2dx/example/raw/images/left-shoulder.png deleted file mode 100755 index 7fd429dc3..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-shoulder.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/left-upper-leg.png b/spine-cocos2dx/example/raw/images/left-upper-leg.png deleted file mode 100755 index f076d5c91..000000000 Binary files a/spine-cocos2dx/example/raw/images/left-upper-leg.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/neck.png b/spine-cocos2dx/example/raw/images/neck.png deleted file mode 100755 index c7b938863..000000000 Binary files a/spine-cocos2dx/example/raw/images/neck.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/pack.json b/spine-cocos2dx/example/raw/images/pack.json deleted file mode 100755 index 4e702ea9b..000000000 --- a/spine-cocos2dx/example/raw/images/pack.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - pot: true, - paddingX: 2, - paddingY: 2, - duplicatePadding: false, - filterMin: Linear, - filterMag: Linear, -} \ No newline at end of file diff --git a/spine-cocos2dx/example/raw/images/pelvis.png b/spine-cocos2dx/example/raw/images/pelvis.png deleted file mode 100755 index f52c33cdd..000000000 Binary files a/spine-cocos2dx/example/raw/images/pelvis.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-ankle.png b/spine-cocos2dx/example/raw/images/right-ankle.png deleted file mode 100755 index 92fc568cf..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-ankle.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-arm.png b/spine-cocos2dx/example/raw/images/right-arm.png deleted file mode 100755 index cac970f4b..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-arm.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-foot-idle.png b/spine-cocos2dx/example/raw/images/right-foot-idle.png deleted file mode 100755 index aaf609f4e..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-foot-idle.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-foot.png b/spine-cocos2dx/example/raw/images/right-foot.png deleted file mode 100755 index 7a06bf2de..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-foot.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-hand.png b/spine-cocos2dx/example/raw/images/right-hand.png deleted file mode 100755 index 17c62bf4a..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-hand.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-lower-leg.png b/spine-cocos2dx/example/raw/images/right-lower-leg.png deleted file mode 100755 index 1f00e8ec9..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-lower-leg.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-pant-bottom.png b/spine-cocos2dx/example/raw/images/right-pant-bottom.png deleted file mode 100755 index 73309c05d..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-pant-bottom.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-shoulder.png b/spine-cocos2dx/example/raw/images/right-shoulder.png deleted file mode 100755 index 23e9a2fd1..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-shoulder.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/right-upper-leg.png b/spine-cocos2dx/example/raw/images/right-upper-leg.png deleted file mode 100755 index df0b11661..000000000 Binary files a/spine-cocos2dx/example/raw/images/right-upper-leg.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/images/torso.png b/spine-cocos2dx/example/raw/images/torso.png deleted file mode 100755 index d5a318e72..000000000 Binary files a/spine-cocos2dx/example/raw/images/torso.png and /dev/null differ diff --git a/spine-cocos2dx/example/raw/spineboy.spine b/spine-cocos2dx/example/raw/spineboy.spine deleted file mode 100644 index 562b34880..000000000 Binary files a/spine-cocos2dx/example/raw/spineboy.spine and /dev/null differ diff --git a/spine-cocos2dx/example/raw/spineboy.tps b/spine-cocos2dx/example/raw/spineboy.tps deleted file mode 100644 index d5d8c92e8..000000000 --- a/spine-cocos2dx/example/raw/spineboy.tps +++ /dev/null @@ -1,171 +0,0 @@ - - - - fileFormatVersion - 1 - variation - main - verbose - - autoSDSettings - - - scale - 0.5 - extension - /iphone/ - acceptFractionalValues - - maxTextureSize - - width - 2048 - height - 2048 - - - - allowRotation - - quiet - - premultiplyAlpha - - shapeDebug - - dpi - 72 - dataFormat - libgdx - textureFileName - ../Resources/iphone-retina/spineboy.png - flipPVR - - ditherType - NearestNeighbour - backgroundColor - 0 - libGdx - - filtering - - x - Linear - y - Linear - - - shapePadding - 2 - jpgQuality - 80 - pngOptimizationLevel - 0 - textureSubPath - - textureFormat - png - borderPadding - 2 - maxTextureSize - - width - 2048 - height - 2048 - - fixedTextureSize - - width - -1 - height - -1 - - reduceBorderArtifacts - - algorithmSettings - - algorithm - MaxRects - freeSizeMode - Best - sizeConstraints - NPOT - forceSquared - - forceWordAligned - - maxRects - - heuristic - Best - - basic - - sortBy - Best - order - Ascending - - - andEngine - - minFilter - Linear - packageName - Texture - javaFileName - ../Resources/data/spineboy2.java - wrap - - s - Clamp - t - Clamp - - magFilter - MagLinear - - dataFileName - ../Resources/iphone-retina/spineboy.txt - mainExtension - /iphone-retina/ - forceIdenticalLayout - - outputFormat - RGBA8888 - autoAliasEnabled - - trimSpriteNames - - globalSpriteSettings - - scale - 1 - scaleMode - Smooth - innerPadding - 0 - extrude - 0 - trimThreshold - 1 - trimMode - Trim - heuristicMask - - - fileList - - images - - ignoreFileList - - replaceList - - commonDivisorX - 1 - commonDivisorY - 1 - - diff --git a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp index 9b7a0409f..55b43ca4d 100644 --- a/spine-cocos2dx/src/spine/spine-cocos2dx.cpp +++ b/spine-cocos2dx/src/spine/spine-cocos2dx.cpp @@ -87,25 +87,14 @@ void RegionAttachment_updateQuad (RegionAttachment* self, Slot* slot, ccV3F_C4B_ quad->br.vertices.x = self->vertices[VERTEX_X4]; quad->br.vertices.y = self->vertices[VERTEX_Y4]; - if (self->region->rotate) { - quad->tl.texCoords.u = self->region->u; - quad->tl.texCoords.v = self->region->v2; - quad->tr.texCoords.u = self->region->u; - quad->tr.texCoords.v = self->region->v; - quad->br.texCoords.u = self->region->u2; - quad->br.texCoords.v = self->region->v; - quad->bl.texCoords.u = self->region->u2; - quad->bl.texCoords.v = self->region->v2; - } else { - quad->bl.texCoords.u = self->region->u; - quad->bl.texCoords.v = self->region->v2; - quad->tl.texCoords.u = self->region->u; - quad->tl.texCoords.v = self->region->v; - quad->tr.texCoords.u = self->region->u2; - quad->tr.texCoords.v = self->region->v; - quad->br.texCoords.u = self->region->u2; - quad->br.texCoords.v = self->region->v2; - } + quad->bl.texCoords.u = self->uvs[VERTEX_X1]; + quad->bl.texCoords.v = self->uvs[VERTEX_Y1]; + quad->tl.texCoords.u = self->uvs[VERTEX_X2]; + quad->tl.texCoords.v = self->uvs[VERTEX_Y2]; + quad->tr.texCoords.u = self->uvs[VERTEX_X3]; + quad->tr.texCoords.v = self->uvs[VERTEX_Y3]; + quad->br.texCoords.u = self->uvs[VERTEX_X4]; + quad->br.texCoords.v = self->uvs[VERTEX_Y4]; } /**/ @@ -114,6 +103,7 @@ CCSkeleton* CCSkeleton::createWithFile (const char* skeletonDataFile, Atlas* atl SkeletonJson* json = SkeletonJson_create(atlas); json->scale = scale; SkeletonData* skeletonData = SkeletonJson_readSkeletonDataFile(json, skeletonDataFile); + CCAssert(skeletonData, json->error ? json->error : "Error reading skeleton data."); SkeletonJson_dispose(json); CCSkeleton* node = skeletonData ? createWithData(skeletonData) : 0; node->ownsSkeleton = true; @@ -122,10 +112,12 @@ CCSkeleton* CCSkeleton::createWithFile (const char* skeletonDataFile, Atlas* atl CCSkeleton* CCSkeleton::createWithFile (const char* skeletonDataFile, const char* atlasFile, float scale) { Atlas* atlas = Atlas_readAtlasFile(atlasFile); + CCAssert(atlas, "Error reading atlas file."); if (!atlas) return 0; SkeletonJson* json = SkeletonJson_create(atlas); json->scale = scale; SkeletonData* skeletonData = SkeletonJson_readSkeletonDataFile(json, skeletonDataFile); + CCAssert(skeletonData, json->error ? json->error : "Error reading skeleton data file."); SkeletonJson_dispose(json); if (!skeletonData) { Atlas_dispose(atlas); @@ -197,7 +189,7 @@ void CCSkeleton::draw () { Slot* slot = skeleton->slots[i]; if (!slot->attachment || slot->attachment->type != ATTACHMENT_REGION) continue; RegionAttachment* attachment = (RegionAttachment*)slot->attachment; - CCTextureAtlas* regionTextureAtlas = (CCTextureAtlas*)attachment->region->page->texture; + CCTextureAtlas* regionTextureAtlas = (CCTextureAtlas*)attachment->texture; if (regionTextureAtlas != textureAtlas) { if (textureAtlas) { textureAtlas->drawQuads(); diff --git a/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java b/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java index a55307311..3ade078cd 100644 --- a/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java +++ b/spine-libgdx/src/com/esotericsoftware/spine/attachments/RegionAttachment.java @@ -60,8 +60,8 @@ public class RegionAttachment extends Attachment { if (region.rotate) { localX += region.offsetX / region.originalWidth * height; localY += region.offsetY / region.originalHeight * width; - localX2 -= (region.originalWidth - region.offsetX - region.packedHeight) / region.originalWidth * width; - localY2 -= (region.originalHeight - region.offsetY - region.packedWidth) / region.originalHeight * height; + localX2 -= (region.originalWidth - region.offsetX - region.packedHeight) / region.originalWidth * height; + localY2 -= (region.originalHeight - region.offsetY - region.packedWidth) / region.originalHeight * width; } else { localX += region.offsetX / region.originalWidth * width; localY += region.offsetY / region.originalHeight * height; diff --git a/spine-sfml/data/goblins.atlas b/spine-sfml/data/goblins.atlas index 271742263..ce74602e5 100644 --- a/spine-sfml/data/goblins.atlas +++ b/spine-sfml/data/goblins.atlas @@ -4,282 +4,282 @@ format: RGBA8888 filter: Linear,Linear repeat: none spear - rotate: false - xy: 2, 142 + rotate: true + xy: 2, 104 size: 22, 368 orig: 22, 368 offset: 0, 0 index: -1 goblingirl/head rotate: false - xy: 26, 429 - size: 103, 81 + xy: 2, 23 + size: 103, 79 orig: 103, 81 - offset: 0, 0 + offset: 0, 2 index: -1 goblin/head rotate: false - xy: 26, 361 - size: 103, 66 + xy: 107, 38 + size: 103, 64 orig: 103, 66 offset: 0, 0 index: -1 goblin/torso - rotate: false - xy: 131, 414 + rotate: true + xy: 212, 34 size: 68, 96 orig: 68, 96 offset: 0, 0 index: -1 -goblingirl/torso +goblin/right-upper-leg + rotate: true + xy: 107, 2 + size: 34, 63 + orig: 34, 63 + offset: 0, 0 + index: -1 +goblin/left-lower-leg + rotate: true + xy: 172, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblingirl/left-lower-leg + rotate: true + xy: 244, 2 + size: 30, 70 + orig: 33, 70 + offset: 2, 0 + index: -1 +goblin/undie-straps rotate: false - xy: 26, 263 - size: 68, 96 - orig: 68, 96 + xy: 2, 2 + size: 55, 19 + orig: 55, 19 offset: 0, 0 index: -1 dagger - rotate: false - xy: 26, 153 + rotate: true + xy: 372, 100 size: 26, 108 - orig: 26, 108 + orig: 156, 238 + offset: 100, 30 + index: -1 +goblingirl/torso + rotate: true + xy: 482, 60 + size: 66, 96 + orig: 68, 96 offset: 0, 0 index: -1 goblin/right-lower-leg - rotate: false - xy: 201, 434 - size: 36, 76 + rotate: true + xy: 580, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblingirl/right-lower-leg - rotate: false - xy: 54, 185 - size: 36, 76 + rotate: true + xy: 658, 91 + size: 35, 76 orig: 36, 76 - offset: 0, 0 + offset: 1, 0 index: -1 goblin/left-upper-leg - rotate: false - xy: 96, 286 + rotate: true + xy: 736, 93 size: 33, 73 orig: 33, 73 offset: 0, 0 index: -1 goblin/pelvis - rotate: false - xy: 131, 369 + rotate: true + xy: 310, 40 size: 62, 43 orig: 62, 43 offset: 0, 0 index: -1 -goblingirl/pelvis - rotate: false - xy: 131, 324 - size: 62, 43 - orig: 62, 43 - offset: 0, 0 - index: -1 -goblin/right-foot - rotate: false - xy: 131, 289 - size: 63, 33 - orig: 63, 33 - offset: 0, 0 - index: -1 -goblin/left-lower-leg - rotate: false - xy: 2, 70 - size: 33, 70 - orig: 33, 70 - offset: 0, 0 - index: -1 -goblin/right-upper-leg - rotate: false - xy: 2, 5 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblingirl/left-lower-leg - rotate: false - xy: 195, 342 - size: 33, 70 - orig: 33, 70 +goblin/left-hand + rotate: true + xy: 316, 2 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-upper-leg - rotate: false - xy: 37, 81 + rotate: true + xy: 811, 93 size: 33, 70 orig: 33, 70 offset: 0, 0 index: -1 -goblingirl/right-upper-leg - rotate: false - xy: 38, 16 - size: 34, 63 - orig: 34, 63 - offset: 0, 0 - index: -1 -goblin/eyes-closed - rotate: false - xy: 38, 2 - size: 34, 12 - orig: 34, 12 - offset: 0, 0 - index: -1 -goblin/undies - rotate: false - xy: 54, 154 - size: 36, 29 - orig: 36, 29 - offset: 0, 0 - index: -1 -goblin/right-arm - rotate: false - xy: 72, 102 - size: 23, 50 - orig: 23, 50 - offset: 0, 0 - index: -1 goblin/left-foot rotate: false - xy: 131, 256 + xy: 883, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-arm - rotate: false - xy: 196, 290 - size: 28, 50 - orig: 28, 50 - offset: 0, 0 - index: -1 -goblingirl/left-shoulder - rotate: false - xy: 226, 294 - size: 28, 46 - orig: 28, 46 - offset: 0, 0 - index: -1 -goblin/left-arm - rotate: false - xy: 198, 253 - size: 37, 35 - orig: 37, 35 - offset: 0, 0 - index: -1 goblingirl/left-foot rotate: false - xy: 92, 223 + xy: 950, 95 size: 65, 31 orig: 65, 31 offset: 0, 0 index: -1 -goblingirl/right-foot +goblin/right-foot rotate: false - xy: 92, 188 + xy: 580, 56 size: 63, 33 orig: 63, 33 offset: 0, 0 index: -1 -goblin/undie-straps +goblingirl/right-foot rotate: false - xy: 92, 167 - size: 55, 19 - orig: 55, 19 + xy: 645, 56 + size: 63, 33 + orig: 63, 33 offset: 0, 0 index: -1 -goblingirl/left-arm +goblingirl/pelvis rotate: false - xy: 159, 219 - size: 37, 35 - orig: 37, 35 + xy: 355, 55 + size: 59, 43 + orig: 62, 43 + offset: 1, 0 + index: -1 +goblingirl/right-upper-leg + rotate: true + xy: 416, 64 + size: 34, 63 + orig: 34, 63 offset: 0, 0 index: -1 goblin/right-shoulder rotate: false - xy: 97, 120 - size: 39, 45 + xy: 359, 11 + size: 39, 42 orig: 39, 45 offset: 0, 0 index: -1 -goblingirl/right-shoulder - rotate: false - xy: 198, 206 - size: 39, 45 - orig: 39, 45 - offset: 0, 0 - index: -1 -goblin/left-hand - rotate: false - xy: 157, 176 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 -goblin/neck - rotate: false - xy: 195, 163 - size: 36, 41 - orig: 36, 41 - offset: 0, 0 - index: -1 goblingirl/undie-straps rotate: false - xy: 97, 99 + xy: 416, 43 size: 55, 19 orig: 55, 19 offset: 0, 0 index: -1 -goblingirl/neck +goblingirl/right-shoulder + rotate: true + xy: 400, 2 + size: 39, 42 + orig: 39, 45 + offset: 0, 0 + index: -1 +goblin/left-arm + rotate: true + xy: 444, 4 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/neck rotate: false - xy: 138, 120 - size: 35, 41 - orig: 35, 41 + xy: 481, 17 + size: 36, 41 + orig: 36, 41 offset: 0, 0 index: -1 goblingirl/left-hand rotate: false - xy: 175, 121 + xy: 519, 18 size: 35, 40 orig: 35, 40 offset: 0, 0 index: -1 -goblin/left-shoulder +goblingirl/right-arm rotate: false - xy: 212, 117 + xy: 556, 8 + size: 22, 50 + orig: 28, 50 + offset: 3, 0 + index: -1 +goblingirl/neck + rotate: false + xy: 580, 13 + size: 33, 41 + orig: 35, 41 + offset: 0, 0 + index: -1 +goblin/left-shoulder + rotate: true + xy: 615, 25 size: 29, 44 orig: 29, 44 offset: 0, 0 index: -1 -goblingirl/eyes-closed +goblingirl/left-shoulder + rotate: true + xy: 661, 26 + size: 28, 45 + orig: 28, 46 + offset: 0, 1 + index: -1 +goblingirl/left-arm rotate: false - xy: 154, 97 - size: 37, 21 - orig: 37, 21 + xy: 710, 54 + size: 37, 35 + orig: 37, 35 + offset: 0, 0 + index: -1 +goblin/right-arm + rotate: false + xy: 708, 2 + size: 23, 50 + orig: 23, 50 offset: 0, 0 index: -1 goblin/right-hand rotate: false - xy: 193, 78 + xy: 749, 54 size: 36, 37 orig: 36, 37 offset: 0, 0 index: -1 goblingirl/right-hand rotate: false - xy: 74, 39 - size: 36, 37 + xy: 733, 15 + size: 35, 37 orig: 36, 37 - offset: 0, 0 + offset: 1, 0 index: -1 -goblingirl/undies +goblin/undies rotate: false - xy: 74, 8 + xy: 787, 62 size: 36, 29 orig: 36, 29 offset: 0, 0 index: -1 +goblingirl/undies + rotate: false + xy: 825, 62 + size: 36, 29 + orig: 36, 29 + offset: 0, 0 + index: -1 +goblingirl/eyes-closed + rotate: false + xy: 59, 6 + size: 37, 15 + orig: 37, 21 + offset: 0, 0 + index: -1 +goblin/eyes-closed + rotate: true + xy: 770, 18 + size: 34, 12 + orig: 34, 12 + offset: 0, 0 + index: -1 diff --git a/spine-sfml/data/goblins.json b/spine-sfml/data/goblins.json index f1dcc96a0..95313ebe6 100644 --- a/spine-sfml/data/goblins.json +++ b/spine-sfml/data/goblins.json @@ -3,26 +3,26 @@ { "name": "root" }, { "name": "hip", "parent": "root", "x": 0.64, "y": 114.41 }, { "name": "left upper leg", "parent": "hip", "length": 50.39, "x": 14.45, "y": 2.81, "rotation": -89.09 }, - { "name": "left lower leg", "parent": "left upper leg", "length": 49.89, "x": 56.34, "y": 0.98, "rotation": -16.65 }, - { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 58.94, "y": -7.61, "rotation": 102.43 }, + { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 }, { "name": "right upper leg", "parent": "hip", "length": 42.45, "x": -20.07, "y": -6.83, "rotation": -97.49 }, - { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 42.99, "y": -0.61, "rotation": -14.34 }, - { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 }, { "name": "torso", "parent": "hip", "length": 85.82, "x": -6.42, "y": 1.97, "rotation": 93.92 }, - { "name": "neck", "parent": "torso", "length": 18.38, "x": 81.67, "y": -6.34, "rotation": -1.51 }, - { "name": "head", "parent": "neck", "length": 68.28, "x": 20.93, "y": 11.59, "rotation": -13.92 }, - { "name": "right shoulder", "parent": "torso", "length": 37.24, "x": 76.02, "y": 18.14, "rotation": 133.88 }, - { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 37.6, "y": 0.31, "rotation": 36.32 }, - { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 }, + { "name": "left lower leg", "parent": "left upper leg", "length": 49.89, "x": 56.34, "y": 0.98, "rotation": -16.65 }, { "name": "left shoulder", "parent": "torso", "length": 35.43, "x": 74.04, "y": -20.38, "rotation": -156.96 }, + { "name": "neck", "parent": "torso", "length": 18.38, "x": 81.67, "y": -6.34, "rotation": -1.51 }, + { "name": "right lower leg", "parent": "right upper leg", "length": 58.52, "x": 42.99, "y": -0.61, "rotation": -14.34 }, + { "name": "right shoulder", "parent": "torso", "length": 37.24, "x": 76.02, "y": 18.14, "rotation": 133.88 }, + { "name": "head", "parent": "neck", "length": 68.28, "x": 20.93, "y": 11.59, "rotation": -13.92 }, { "name": "left arm", "parent": "left shoulder", "length": 35.62, "x": 37.85, "y": -2.34, "rotation": 28.16 }, + { "name": "left foot", "parent": "left lower leg", "length": 46.5, "x": 58.94, "y": -7.61, "rotation": 102.43 }, + { "name": "right arm", "parent": "right shoulder", "length": 36.74, "x": 37.6, "y": 0.31, "rotation": 36.32 }, + { "name": "right foot", "parent": "right lower leg", "length": 45.45, "x": 64.88, "y": 0.04, "rotation": 110.3 }, { "name": "left hand", "parent": "left arm", "length": 11.52, "x": 35.62, "y": 0.07, "rotation": 2.7 }, - { "name": "pelvis", "parent": "hip", "x": 1.41, "y": -6.57 } + { "name": "right hand", "parent": "right arm", "length": 15.32, "x": 36.9, "y": 0.34, "rotation": 2.35 } ], "slots": [ { "name": "left shoulder", "bone": "left shoulder", "attachment": "left shoulder" }, { "name": "left arm", "bone": "left arm", "attachment": "left arm" }, - { "name": "left hand item", "bone": "left hand", "attachment": "spear" }, + { "name": "left hand item", "bone": "left hand", "attachment": "dagger" }, { "name": "left hand", "bone": "left hand", "attachment": "left hand" }, { "name": "left foot", "bone": "left foot", "attachment": "left foot" }, { "name": "left lower leg", "bone": "left lower leg", "attachment": "left lower leg" }, @@ -45,11 +45,11 @@ "skins": { "default": { "left hand item": { - "dagger": { "x": 7.88, "y": -23.45, "rotation": 10.47, "width": 26, "height": 108 }, + "dagger": { "x": -35.5, "y": 3.85, "rotation": 10.47, "width": 156, "height": 238 }, "spear": { "x": -4.55, "y": 39.2, "rotation": 13.04, "width": 22, "height": 368 } }, "right hand item": { - "dagger": { "x": 6.51, "y": -24.15, "rotation": -8.06, "width": 26, "height": 108 } + "dagger": { "x": -21.57, "y": 15.8, "rotation": -8.06, "width": 156, "height": 238 } } }, "goblin": { diff --git a/spine-sfml/data/goblins.png b/spine-sfml/data/goblins.png index 863b29467..1d6f59e37 100644 Binary files a/spine-sfml/data/goblins.png and b/spine-sfml/data/goblins.png differ diff --git a/spine-sfml/example/main.cpp b/spine-sfml/example/main.cpp index 7e4305a5b..7349d32a6 100644 --- a/spine-sfml/example/main.cpp +++ b/spine-sfml/example/main.cpp @@ -90,6 +90,7 @@ void goblins () { // Load atlas, skeleton, and animations. Atlas* atlas = Atlas_readAtlasFile("../data/goblins.atlas"); SkeletonJson* json = SkeletonJson_create(atlas); + json->scale = 2; SkeletonData *skeletonData = SkeletonJson_readSkeletonDataFile(json, "../data/goblins.json"); Animation* walkAnimation = SkeletonData_findAnimation(skeletonData, "walk"); SkeletonJson_dispose(json); @@ -102,15 +103,15 @@ void goblins () { skeleton->flipY = false; Skeleton_setSkinByName(skeleton, "goblin"); Skeleton_setSlotsToBindPose(skeleton); - Skeleton_setAttachment(skeleton, "left hand item", "dagger"); +// Skeleton_setAttachment(skeleton, "left hand item", "dagger"); skeleton->root->x = 320; - skeleton->root->y = 420; + skeleton->root->y = 590; Skeleton_updateWorldTransform(skeleton); AnimationState_setAnimation(drawable->state, walkAnimation, true); - sf::RenderWindow window(sf::VideoMode(640, 480), "Spine SFML"); + sf::RenderWindow window(sf::VideoMode(640, 640), "Spine SFML"); window.setFramerateLimit(60); sf::Event event; sf::Clock deltaClock; @@ -133,6 +134,6 @@ void goblins () { } int main () { - spineboy(); +// spineboy(); goblins(); } diff --git a/spine-sfml/src/spine/spine-sfml.cpp b/spine-sfml/src/spine/spine-sfml.cpp index c2500bb7a..9b0b473c1 100644 --- a/spine-sfml/src/spine/spine-sfml.cpp +++ b/spine-sfml/src/spine/spine-sfml.cpp @@ -41,7 +41,7 @@ void _AtlasPage_createTexture (AtlasPage* self, const char* path) { self->texture = texture; Vector2u size = texture->getSize(); self->width = size.x; - self->height = size.x; + self->height = size.y; } void _AtlasPage_disposeTexture (AtlasPage* self) { @@ -117,32 +117,19 @@ void SkeletonDrawable::draw (RenderTarget& target, RenderStates states) const { vertices[3].position.x = regionAttachment->vertices[VERTEX_X4]; vertices[3].position.y = regionAttachment->vertices[VERTEX_Y4]; - int u = regionAttachment->region->x; - int u2 = u + regionAttachment->region->width; - int v = regionAttachment->region->y; - int v2 = v + regionAttachment->region->height; - if (regionAttachment->region->rotate) { - vertices[1].texCoords.x = u; - vertices[1].texCoords.y = v2; - vertices[2].texCoords.x = u; - vertices[2].texCoords.y = v; - vertices[3].texCoords.x = u2; - vertices[3].texCoords.y = v; - vertices[0].texCoords.x = u2; - vertices[0].texCoords.y = v2; - } else { - vertices[0].texCoords.x = u; - vertices[0].texCoords.y = v2; - vertices[1].texCoords.x = u; - vertices[1].texCoords.y = v; - vertices[2].texCoords.x = u2; - vertices[2].texCoords.y = v; - vertices[3].texCoords.x = u2; - vertices[3].texCoords.y = v2; - } - // SMFL doesn't handle batching for us, so we'll just force a single texture per skeleton. - states.texture = (Texture*)regionAttachment->region->page->texture; + states.texture = (Texture*)regionAttachment->texture; + + Vector2u size = states.texture->getSize(); + vertices[0].texCoords.x = regionAttachment->uvs[VERTEX_X1] * size.x; + vertices[0].texCoords.y = regionAttachment->uvs[VERTEX_Y1] * size.y; + vertices[1].texCoords.x = regionAttachment->uvs[VERTEX_X2] * size.x; + vertices[1].texCoords.y = regionAttachment->uvs[VERTEX_Y2] * size.y; + vertices[2].texCoords.x = regionAttachment->uvs[VERTEX_X3] * size.x; + vertices[2].texCoords.y = regionAttachment->uvs[VERTEX_Y3] * size.y; + vertices[3].texCoords.x = regionAttachment->uvs[VERTEX_X4] * size.x; + vertices[3].texCoords.y = regionAttachment->uvs[VERTEX_Y4] * size.y; + vertexArray->append(vertices[0]); vertexArray->append(vertices[1]); vertexArray->append(vertices[2]);