Spine.RegionAttachment.UpdateOffset C# (CSharp) Method

UpdateOffset() public method

public UpdateOffset ( ) : void
return void
		public void UpdateOffset () {
			float width = this.width;
			float height = this.height;
			float scaleX = this.scaleX;
			float scaleY = this.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 rotation = this.rotation;
			float cos = MathUtils.CosDeg(rotation);
			float sin = MathUtils.SinDeg(rotation);
			float x = this.x;
			float y = this.y;
			float localXCos = localX * cos + x;
			float localXSin = localX * sin;
			float localYCos = localY * cos + y;
			float localYSin = localY * sin;
			float localX2Cos = localX2 * cos + x;
			float localX2Sin = localX2 * sin;
			float localY2Cos = localY2 * cos + y;
			float localY2Sin = localY2 * sin;
			float[] offset = this.offset;
			offset[X1] = localXCos - localYSin;
			offset[Y1] = localYCos + localXSin;
			offset[X2] = localXCos - localY2Sin;
			offset[Y2] = localY2Cos + localXSin;
			offset[X3] = localX2Cos - localY2Sin;
			offset[Y3] = localY2Cos + localX2Sin;
			offset[X4] = localX2Cos - localYSin;
			offset[Y4] = localYCos + localX2Sin;
		}

Usage Example

Esempio n. 1
0
        private Attachment ReadAttachment(Skin skin, String name, Dictionary <String, Object> map)
        {
            if (map.ContainsKey("name"))
            {
                name = (String)map["name"];
            }

            AttachmentType type = AttachmentType.region;

            if (map.ContainsKey("type"))
            {
                type = (AttachmentType)Enum.Parse(typeof(AttachmentType), (String)map["type"], false);
            }
            Attachment attachment = attachmentLoader.NewAttachment(skin, type, name);

            if (attachment is RegionAttachment)
            {
                RegionAttachment regionAttachment = (RegionAttachment)attachment;
                regionAttachment.X        = GetFloat(map, "x", 0) * Scale;
                regionAttachment.Y        = GetFloat(map, "y", 0) * Scale;
                regionAttachment.ScaleX   = GetFloat(map, "scaleX", 1);
                regionAttachment.ScaleY   = GetFloat(map, "scaleY", 1);
                regionAttachment.Rotation = GetFloat(map, "rotation", 0);
                regionAttachment.Width    = GetFloat(map, "width", 32) * Scale;
                regionAttachment.Height   = GetFloat(map, "height", 32) * Scale;
                regionAttachment.UpdateOffset();
            }

            return(attachment);
        }
All Usage Examples Of Spine.RegionAttachment::UpdateOffset