Merge remote-tracking branch 'upstream/master'

This commit is contained in:
djr 2013-04-24 21:18:17 +01:00
commit f87b8c80b9
128 changed files with 1697 additions and 1677 deletions

6
.gitignore vendored
View File

@ -31,8 +31,6 @@ spine-xna/obj
spine-xna/example/bin
spine-xna/example/obj
spine-unity/Assets/Plugins/Spine/spine-csharp/*
!spine-unity/Assets/Plugins/Spine/spine-csharp/Place spine-csharp here.txt
spine-unity/ProjectSettings
spine-unity/Temp
spine-unity/Library
@ -41,6 +39,8 @@ spine-unity/*.sln
*.pidb
Assembly-*.csproj
Assembly-*.pidb
spine-unity4
spine-unity3
spine-corona/spine-lua/
!spine-corona/spine-lua/Place spine-lua here.txt
@ -48,3 +48,5 @@ spine-corona/spine-lua/
spine-love/spine-lua/
spine-love/love/
!spine-love/spine-lua/Place spine-lua here.txt
spine-starling

View File

@ -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; // Pixels stripped from the bottom left, unrotated.
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);

View File

@ -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);
}

View File

@ -240,8 +240,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;
}
if (!(count = readTuple(end, tuple))) return abortAtlas(self);
if (count == 4) { /* split is optional */

View File

@ -31,18 +31,24 @@ namespace spine {
#endif
Attachment* _AtlasAttachmentLoader_newAttachment (AttachmentLoader* loader, Skin* skin, AttachmentType type, const char* name) {
RegionAttachment* attachment;
AtlasRegion* region;
AtlasAttachmentLoader* self = SUB_CAST(AtlasAttachmentLoader, loader);
switch (type) {
case ATTACHMENT_REGION: {
region = Atlas_findRegion(self->atlas, name);
RegionAttachment* attachment;
AtlasRegion* region = Atlas_findRegion(self->atlas, name);
if (!region) {
_AttachmentLoader_setError(loader, "Region not found: ", name);
return 0;
}
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:
@ -60,4 +66,4 @@ AtlasAttachmentLoader* AtlasAttachmentLoader_create (Atlas* atlas) {
#ifdef __cplusplus
}
#endif
#endif

View File

@ -39,49 +39,46 @@ RegionAttachment* RegionAttachment_create (const char* name) {
return self;
}
void RegionAttachment_updateOffset (RegionAttachment* self) {
float radians;
float cosine;
float sine;
float localXCos;
float localXSin;
float localYCos;
float localYSin;
float localX2Cos;
float localX2Sin;
float localY2Cos;
float localY2Sin;
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;
radians = (float)(self->rotation * 3.1415926535897932385 / 180);
cosine = cosf(radians);
sine = sinf(radians);
localXCos = localX * cosine + self->x;
localXSin = localX * sine;
localYCos = localY * cosine + self->y;
localYSin = localY * sine;
localX2Cos = localX2 * cosine + self->x;
localX2Sin = localX2 * sine;
localY2Cos = localY2 * cosine + self->y;
localY2Sin = localY2 * sine;
}
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);
float localXCos = localX * cosine + self->x;
float localXSin = localX * sine;
float localYCos = localY * cosine + self->y;
float localYSin = localY * sine;
float localX2Cos = localX2 * cosine + self->x;
float localX2Sin = localX2 * sine;
float localY2Cos = localY2 * cosine + self->y;
float localY2Sin = localY2 * sine;
self->offset[VERTEX_X1] = localXCos - localYSin;
self->offset[VERTEX_Y1] = localYCos + localXSin;
self->offset[VERTEX_X2] = localXCos - localY2Sin;
@ -107,4 +104,4 @@ void RegionAttachment_updateVertices (RegionAttachment* self, Slot* slot) {
#ifdef __cplusplus
}
#endif
#endif

View File

@ -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];

View File

@ -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": {

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -1,8 +0,0 @@
{
pot: true,
paddingX: 2,
paddingY: 2,
duplicatePadding: false,
filterMin: Linear,
filterMag: Linear,
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

View File

@ -1,171 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<data version="1.0">
<struct type="Settings">
<key>fileFormatVersion</key>
<int>1</int>
<key>variation</key>
<string>main</string>
<key>verbose</key>
<false/>
<key>autoSDSettings</key>
<array>
<struct type="AutoSDSettings">
<key>scale</key>
<double>0.5</double>
<key>extension</key>
<string>/iphone/</string>
<key>acceptFractionalValues</key>
<false/>
<key>maxTextureSize</key>
<QSize>
<key>width</key>
<int>2048</int>
<key>height</key>
<int>2048</int>
</QSize>
</struct>
</array>
<key>allowRotation</key>
<true/>
<key>quiet</key>
<false/>
<key>premultiplyAlpha</key>
<false/>
<key>shapeDebug</key>
<false/>
<key>dpi</key>
<uint>72</uint>
<key>dataFormat</key>
<string>libgdx</string>
<key>textureFileName</key>
<filename>../Resources/iphone-retina/spineboy.png</filename>
<key>flipPVR</key>
<false/>
<key>ditherType</key>
<enum type="SettingsBase::DitherType">NearestNeighbour</enum>
<key>backgroundColor</key>
<uint>0</uint>
<key>libGdx</key>
<struct type="LibGDX">
<key>filtering</key>
<struct type="LibGDXFiltering">
<key>x</key>
<enum type="LibGDXFiltering::Filtering">Linear</enum>
<key>y</key>
<enum type="LibGDXFiltering::Filtering">Linear</enum>
</struct>
</struct>
<key>shapePadding</key>
<uint>2</uint>
<key>jpgQuality</key>
<uint>80</uint>
<key>pngOptimizationLevel</key>
<uint>0</uint>
<key>textureSubPath</key>
<string></string>
<key>textureFormat</key>
<enum type="SettingsBase::TextureFormat">png</enum>
<key>borderPadding</key>
<uint>2</uint>
<key>maxTextureSize</key>
<QSize>
<key>width</key>
<int>2048</int>
<key>height</key>
<int>2048</int>
</QSize>
<key>fixedTextureSize</key>
<QSize>
<key>width</key>
<int>-1</int>
<key>height</key>
<int>-1</int>
</QSize>
<key>reduceBorderArtifacts</key>
<false/>
<key>algorithmSettings</key>
<struct type="AlgorithmSettings">
<key>algorithm</key>
<enum type="AlgorithmSettings::AlgorithmId">MaxRects</enum>
<key>freeSizeMode</key>
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum>
<key>sizeConstraints</key>
<enum type="AlgorithmSettings::SizeConstraints">NPOT</enum>
<key>forceSquared</key>
<false/>
<key>forceWordAligned</key>
<false/>
<key>maxRects</key>
<struct type="AlgorithmMaxRectsSettings">
<key>heuristic</key>
<enum type="AlgorithmMaxRectsSettings::Heuristic">Best</enum>
</struct>
<key>basic</key>
<struct type="AlgorithmBasicSettings">
<key>sortBy</key>
<enum type="AlgorithmBasicSettings::SortBy">Best</enum>
<key>order</key>
<enum type="AlgorithmBasicSettings::Order">Ascending</enum>
</struct>
</struct>
<key>andEngine</key>
<struct type="AndEngine">
<key>minFilter</key>
<enum type="AndEngine::MinFilter">Linear</enum>
<key>packageName</key>
<string>Texture</string>
<key>javaFileName</key>
<filename>../Resources/data/spineboy2.java</filename>
<key>wrap</key>
<struct type="AndEngineWrap">
<key>s</key>
<enum type="AndEngineWrap::Wrap">Clamp</enum>
<key>t</key>
<enum type="AndEngineWrap::Wrap">Clamp</enum>
</struct>
<key>magFilter</key>
<enum type="AndEngine::MagFilter">MagLinear</enum>
</struct>
<key>dataFileName</key>
<filename>../Resources/iphone-retina/spineboy.txt</filename>
<key>mainExtension</key>
<string>/iphone-retina/</string>
<key>forceIdenticalLayout</key>
<false/>
<key>outputFormat</key>
<enum type="SettingsBase::OutputFormat">RGBA8888</enum>
<key>autoAliasEnabled</key>
<true/>
<key>trimSpriteNames</key>
<false/>
<key>globalSpriteSettings</key>
<struct type="SpriteSettings">
<key>scale</key>
<double>1</double>
<key>scaleMode</key>
<enum type="ScaleMode">Smooth</enum>
<key>innerPadding</key>
<uint>0</uint>
<key>extrude</key>
<uint>0</uint>
<key>trimThreshold</key>
<uint>1</uint>
<key>trimMode</key>
<enum type="SpriteSettings::TrimMode">Trim</enum>
<key>heuristicMask</key>
<false/>
</struct>
<key>fileList</key>
<array>
<filename>images</filename>
</array>
<key>ignoreFileList</key>
<array/>
<key>replaceList</key>
<array/>
<key>commonDivisorX</key>
<uint>1</uint>
<key>commonDivisorY</key>
<uint>1</uint>
</struct>
</data>

View File

@ -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();

View File

@ -98,8 +98,13 @@ namespace Spine {
region.u = x / (float)page.width;
region.v = y / (float)page.height;
region.u2 = (x + width) / (float)page.width;
region.v2 = (y + height) / (float)page.height;
if (region.rotate) {
region.u2 = (x + height) / (float)page.width;
region.v2 = (y + width) / (float)page.height;
} else {
region.u2 = (x + width) / (float)page.width;
region.v2 = (y + height) / (float)page.height;
}
region.x = x;
region.y = y;
region.width = Math.Abs(width);

View File

@ -40,7 +40,14 @@ namespace Spine {
AtlasRegion region = atlas.FindRegion(name);
if (region == null) throw new Exception("Region not found in atlas: " + name + " (" + type + ")");
RegionAttachment attachment = new RegionAttachment(name);
attachment.Region = region;
attachment.Texture = region.page.texture;
attachment.SetUVs(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 attachment;
}
throw new Exception("Unknown attachment type: " + type);

View File

@ -45,45 +45,61 @@ namespace Spine {
public float Width { get; set; }
public float Height { get; set; }
public Object Texture { get; set; }
public float RegionOffsetX { get; set; }
public float RegionOffsetY { get; set; } // Pixels stripped from the bottom left, unrotated.
public float RegionWidth { get; set; }
public float RegionHeight { get; set; } // Unrotated, stripped size.
public float RegionOriginalWidth { get; set; }
public float RegionOriginalHeight { get; set; } // Unrotated, unstripped size.
public float[] Offset { get; private set; }
public float[] Vertices { get; private set; }
public AtlasRegion Region { get; set; }
public float[] UVs { get; private set; }
public RegionAttachment (string name)
: base(name) {
Offset = new float[8];
Vertices = new float[8];
UVs = new float[8];
ScaleX = 1;
ScaleY = 1;
}
public void SetUVs (float u, float v, float u2, float v2, bool rotate) {
float[] uvs = UVs;
if (rotate) {
uvs[X2] = u;
uvs[Y2] = v2;
uvs[X3] = u;
uvs[Y3] = v;
uvs[X4] = u2;
uvs[Y4] = v;
uvs[X1] = u2;
uvs[Y1] = v2;
} else {
uvs[X1] = u;
uvs[Y1] = v2;
uvs[X2] = u;
uvs[Y2] = v;
uvs[X3] = u2;
uvs[Y3] = v;
uvs[X4] = u2;
uvs[Y4] = v2;
}
}
public void UpdateOffset () {
float width = Width;
float height = Height;
float localX2 = width / 2;
float localY2 = height / 2;
float localX = -localX2;
float localY = -localY2;
AtlasRegion region = Region;
if (region != null) {
if (region.rotate) {
localX += region.offsetX / region.originalWidth * height;
localY += region.offsetY / region.originalHeight * width;
localX2 -= (region.originalWidth - region.offsetX - region.height) / region.originalWidth * width;
localY2 -= (region.originalHeight - region.offsetY - region.width) / region.originalHeight * height;
} else {
localX += region.offsetX / region.originalWidth * width;
localY += region.offsetY / region.originalHeight * height;
localX2 -= (region.originalWidth - region.offsetX - region.width) / region.originalWidth * width;
localY2 -= (region.originalHeight - region.offsetY - region.height) / region.originalHeight * height;
}
}
float scaleX = ScaleX;
float scaleY = ScaleY;
localX *= scaleX;
localY *= scaleY;
localX2 *= scaleX;
localY2 *= scaleY;
float regionScaleX = width / RegionOriginalWidth * scaleX;
float regionScaleY = height / RegionOriginalHeight * scaleX;
float localX = -width / 2 * scaleX + RegionOffsetX * regionScaleX;
float localY = -height / 2 * scaleX + RegionOffsetY * regionScaleY;
float localX2 = localX + RegionWidth * regionScaleX;
float localY2 = localY + RegionHeight * regionScaleY;
float radians = Rotation * (float)Math.PI / 180;
float cos = (float)Math.Cos(radians);
float sin = (float)Math.Sin(radians);

View File

@ -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;

View File

@ -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

View File

@ -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": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -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();
}

View File

@ -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]);

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: 89dad76e10ea944ee9f29109535294be
DefaultImporter:
userData:

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: 65ba3309ea8c447678ade95f3fa398da
DefaultImporter:
userData:

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: 3ac78ae082927411cba77d73efde27d4
DefaultImporter:
userData:

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -29,10 +29,11 @@ using UnityEngine;
[CustomEditor(typeof(SkeletonComponent))]
public class SkeletonComponentInspector : Editor {
private SerializedProperty skeletonDataAsset, animationName, loop, timeScale;
private SerializedProperty skeletonDataAsset, animationName, skinName, loop, timeScale;
void OnEnable () {
skeletonDataAsset = serializedObject.FindProperty("skeletonDataAsset");
skinName = serializedObject.FindProperty("skinName");
animationName = serializedObject.FindProperty("animationName");
loop = serializedObject.FindProperty("loop");
timeScale = serializedObject.FindProperty("timeScale");
@ -46,6 +47,24 @@ public class SkeletonComponentInspector : Editor {
EditorGUILayout.PropertyField(skeletonDataAsset);
if (component.skeleton != null) {
// Skin name.
String[] skins = new String[component.skeleton.Data.Skins.Count + 1];
int skinIndex = 0;
for (int i = 0; i < skins.Length - 1; i++) {
String name = component.skeleton.Data.Skins[i].Name;
skins[i] = name;
if (name == skinName.stringValue) skinIndex = i;
}
EditorGUILayout.BeginHorizontal();
EditorGUILayout.LabelField("Skin");
EditorGUIUtility.LookLikeControls();
skinIndex = EditorGUILayout.Popup(skinIndex, skins);
EditorGUIUtility.LookLikeInspector();
EditorGUILayout.EndHorizontal();
skinName.stringValue = skinIndex == 0 ? null : skins[skinIndex];
// Animation name.
String[] animations = new String[component.skeleton.Data.Animations.Count + 1];
animations[0] = "<None>";
@ -53,8 +72,7 @@ public class SkeletonComponentInspector : Editor {
for (int i = 0; i < animations.Length - 1; i++) {
String name = component.skeleton.Data.Animations[i].Name;
animations[i + 1] = name;
if (name == animationName.stringValue)
animationIndex = i + 1;
if (name == animationName.stringValue) animationIndex = i + 1;
}
EditorGUILayout.BeginHorizontal();
@ -75,10 +93,10 @@ public class SkeletonComponentInspector : Editor {
EditorGUILayout.PropertyField(timeScale);
if (!Application.isPlaying) {
if (serializedObject.ApplyModifiedProperties() ||
(Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed")
) {
if (serializedObject.ApplyModifiedProperties() ||
(Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed")
) {
if (!Application.isPlaying) {
component.Clear();
component.Update();
}

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: c6674329008ae4c65a7b7e8f1b2a6523
DefaultImporter:
userData:

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -32,12 +32,14 @@ using Spine;
public class SkeletonComponent : MonoBehaviour {
public SkeletonDataAsset skeletonDataAsset;
public Skeleton skeleton;
public String skinName;
public String animationName;
public bool loop;
public float timeScale = 1;
public Spine.AnimationState state;
private Mesh mesh;
private Vector3[] vertices;
private Color[] colors;
private Vector2[] uvs;
private int[] triangles;
private int quadCount;
@ -80,15 +82,26 @@ public class SkeletonComponent : MonoBehaviour {
Initialize();
// Keep AnimationState in sync with animationName and loop fields.
if (animationName == null && state.Animation != null)
state.ClearAnimation();
else if (state.Animation == null || animationName != state.Animation.Name) {
if (animationName == null || animationName.Length == 0) {
if (state.Animation != null) state.ClearAnimation();
} else if (state.Animation == null || animationName != state.Animation.Name) {
Spine.Animation animation = skeleton.Data.FindAnimation(animationName);
if (animation != null)
state.SetAnimation(animation, loop);
}
state.Loop = loop;
// Keep Skeleton in sync with skinName.
if (skinName == null || skinName.Length == 0) {
if (skeleton.Skin != null) {
skeleton.SetSkin((Skin)null);
skeleton.SetSlotsToBindPose();
}
} else if (skeleton.Skin == null || skinName != skeleton.Skin.Name) {
skeleton.SetSkin(skinName);
skeleton.SetSlotsToBindPose();
}
UpdateAnimation();
// Count quads.
@ -105,12 +118,15 @@ public class SkeletonComponent : MonoBehaviour {
if (quadCount != this.quadCount) {
this.quadCount = quadCount;
vertices = new Vector3[quadCount * 4];
colors = new Color[quadCount * 4];
uvs = new Vector2[quadCount * 4];
triangles = new int[quadCount * 6];
mesh.Clear();
}
// Setup mesh.
int quadIndex = 0;
Color color = new Color();
for (int i = 0, n = drawOrder.Count; i < n; i++) {
Slot slot = drawOrder[i];
Attachment attachment = slot.Attachment;
@ -125,18 +141,20 @@ public class SkeletonComponent : MonoBehaviour {
vertices[vertexIndex + 2] = new Vector3(regionVertices[RegionAttachment.X2], regionVertices[RegionAttachment.Y2], 0);
vertices[vertexIndex + 3] = new Vector3(regionVertices[RegionAttachment.X3], regionVertices[RegionAttachment.Y3], 0);
AtlasRegion region = regionAttachment.Region;
if (region.rotate) {
uvs[vertexIndex + 1] = new Vector2(region.u, 1 - region.v2);
uvs[vertexIndex + 2] = new Vector2(region.u2, 1 - region.v2);
uvs[vertexIndex + 3] = new Vector2(region.u, 1 - region.v);
uvs[vertexIndex] = new Vector2(region.u2, 1 - region.v);
} else {
uvs[vertexIndex] = new Vector2(region.u, 1 - region.v2);
uvs[vertexIndex + 1] = new Vector2(region.u2, 1 - region.v2);
uvs[vertexIndex + 2] = new Vector2(region.u, 1 - region.v);
uvs[vertexIndex + 3] = new Vector2(region.u2, 1 - region.v);
}
color.r = skeleton.R * slot.R;
color.g = skeleton.G * slot.G;
color.b = skeleton.B * slot.B;
color.a = skeleton.A * slot.A;
colors[vertexIndex] = color;
colors[vertexIndex + 1] = color;
colors[vertexIndex + 2] = color;
colors[vertexIndex + 3] = color;
float[] regionUVs = regionAttachment.UVs;
uvs[vertexIndex] = new Vector2(regionUVs[RegionAttachment.X1], 1 - regionUVs[RegionAttachment.Y1]);
uvs[vertexIndex + 1] = new Vector2(regionUVs[RegionAttachment.X4], 1 - regionUVs[RegionAttachment.Y4]);
uvs[vertexIndex + 2] = new Vector2(regionUVs[RegionAttachment.X2], 1 - regionUVs[RegionAttachment.Y2]);
uvs[vertexIndex + 3] = new Vector2(regionUVs[RegionAttachment.X3], 1 - regionUVs[RegionAttachment.Y3]);
int index = quadIndex * 6;
triangles[index] = vertexIndex;
@ -150,6 +168,7 @@ public class SkeletonComponent : MonoBehaviour {
}
}
mesh.vertices = vertices;
mesh.colors = colors;
mesh.uv = uvs;
mesh.triangles = triangles;

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -5,4 +5,3 @@ MonoImporter:
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: 1b62d1da83172ed4f9bfc9077b196f79
DefaultImporter:
userData:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0420fbdc5d996d142a6850f8bc69b789
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 04676fb0853784d40a83ea746566d7d9
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: f053f134e4ff2fe489038eabf85706e2
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -98,8 +98,13 @@ namespace Spine {
region.u = x / (float)page.width;
region.v = y / (float)page.height;
region.u2 = (x + width) / (float)page.width;
region.v2 = (y + height) / (float)page.height;
if (region.rotate) {
region.u2 = (x + height) / (float)page.width;
region.v2 = (y + width) / (float)page.height;
} else {
region.u2 = (x + width) / (float)page.width;
region.v2 = (y + height) / (float)page.height;
}
region.x = x;
region.y = y;
region.width = Math.Abs(width);

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6e3ac7a5e853f8c418686b97eb793a49
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: eca0339f92705724385840be789d03e3

View File

@ -40,7 +40,14 @@ namespace Spine {
AtlasRegion region = atlas.FindRegion(name);
if (region == null) throw new Exception("Region not found in atlas: " + name + " (" + type + ")");
RegionAttachment attachment = new RegionAttachment(name);
attachment.Region = region;
attachment.Texture = region.page.texture;
attachment.SetUVs(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 attachment;
}
throw new Exception("Unknown attachment type: " + type);

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0c1ff82f1740b034480656d1ea5ba5c9
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a9d34b8d423e46439ed489f9088a81a
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d55032acb28c73c4287a3a500e318215
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b8cd583653fbdab46a2ed87a0eb729d3
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -45,45 +45,61 @@ namespace Spine {
public float Width { get; set; }
public float Height { get; set; }
public Object Texture { get; set; }
public float RegionOffsetX { get; set; }
public float RegionOffsetY { get; set; } // Pixels stripped from the bottom left, unrotated.
public float RegionWidth { get; set; }
public float RegionHeight { get; set; } // Unrotated, stripped size.
public float RegionOriginalWidth { get; set; }
public float RegionOriginalHeight { get; set; } // Unrotated, unstripped size.
public float[] Offset { get; private set; }
public float[] Vertices { get; private set; }
public AtlasRegion Region { get; set; }
public float[] UVs { get; private set; }
public RegionAttachment (string name)
: base(name) {
Offset = new float[8];
Vertices = new float[8];
UVs = new float[8];
ScaleX = 1;
ScaleY = 1;
}
public void SetUVs (float u, float v, float u2, float v2, bool rotate) {
float[] uvs = UVs;
if (rotate) {
uvs[X2] = u;
uvs[Y2] = v2;
uvs[X3] = u;
uvs[Y3] = v;
uvs[X4] = u2;
uvs[Y4] = v;
uvs[X1] = u2;
uvs[Y1] = v2;
} else {
uvs[X1] = u;
uvs[Y1] = v2;
uvs[X2] = u;
uvs[Y2] = v;
uvs[X3] = u2;
uvs[Y3] = v;
uvs[X4] = u2;
uvs[Y4] = v2;
}
}
public void UpdateOffset () {
float width = Width;
float height = Height;
float localX2 = width / 2;
float localY2 = height / 2;
float localX = -localX2;
float localY = -localY2;
AtlasRegion region = Region;
if (region != null) {
if (region.rotate) {
localX += region.offsetX / region.originalWidth * height;
localY += region.offsetY / region.originalHeight * width;
localX2 -= (region.originalWidth - region.offsetX - region.height) / region.originalWidth * width;
localY2 -= (region.originalHeight - region.offsetY - region.width) / region.originalHeight * height;
} else {
localX += region.offsetX / region.originalWidth * width;
localY += region.offsetY / region.originalHeight * height;
localX2 -= (region.originalWidth - region.offsetX - region.width) / region.originalWidth * width;
localY2 -= (region.originalHeight - region.offsetY - region.height) / region.originalHeight * height;
}
}
float scaleX = ScaleX;
float scaleY = ScaleY;
localX *= scaleX;
localY *= scaleY;
localX2 *= scaleX;
localY2 *= scaleY;
float regionScaleX = width / RegionOriginalWidth * scaleX;
float regionScaleY = height / RegionOriginalHeight * scaleY;
float localX = -width / 2 * scaleX + RegionOffsetX * regionScaleX;
float localY = -height / 2 * scaleY + RegionOffsetY * regionScaleY;
float localX2 = localX + RegionWidth * regionScaleX;
float localY2 = localY + RegionHeight * regionScaleY;
float radians = Rotation * (float)Math.PI / 180;
float cos = (float)Math.Cos(radians);
float sin = (float)Math.Sin(radians);

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: cf530751ed6f2d94684dd5d3f0a46b32
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 9ac20594bc8a0214bacc799c1a24584b
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 40e05d62889ff8f49a201a4207075ab7
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 543c95fda2aa74849b8bd90a810318a7
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: c3d73fa94450faf4eb0073fa19e30a62
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: db93a39a328e01d479bcd2820c7b1137
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: db9e0e85729911e4c9d3ca5638cd016d
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a8af7042d0b3f54cbae97de4504bab7
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 6486acd3c3094b44288f9fc6666aaf65
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ea1befda235c3cf429acd2a0b095e74b
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: b41395738f68d4fbba8311d333db62b1
DefaultImporter:
userData:

View File

@ -9,8 +9,9 @@ Shader "Skeleton" {
ZWrite Off
Blend One OneMinusSrcAlpha
Pass {
ColorMaterial AmbientAndDiffuse
SetTexture [_MainTex] {
combine texture
combine texture * primary
}
}
}

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: 1e8a610c9e01c3648bac42585e5fc676
ShaderImporter:
userData:

View File

@ -1,4 +1,2 @@
fileFormatVersion: 2
guid: e6712a5a0c05f9f4092f9a3197925e99
DefaultImporter:
userData:

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 97269dddd903cfd469a75f320a0cef8f

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 4e70126bb9873e841b4935b7275730cc

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 618309bc7071d724ca2dbfd70e14feef

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 78ac5e44b15e8a7418ea5313951ea050

Some files were not shown because too many files have changed in this diff Show More