protected override void OnHandlePropTypeSpriteFrame(CCNode node, CCNode parent, string propertyName, CCSpriteFrame spriteFrame, CCBReader reader) { if (propertyName == PROPERTY_NORMALDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage)node).NormalImageSpriteFrame = spriteFrame; } } else if (propertyName == PROPERTY_SELECTEDDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage)node).SelectedImageSpriteFrame = spriteFrame; } } else if (propertyName == PROPERTY_DISABLEDDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage) node).DisabledImageSpriteFrame = spriteFrame; } } else { base.OnHandlePropTypeSpriteFrame(node, parent, propertyName, spriteFrame, reader); } }
void InitWithFile(string fileName, CCRect?rectInPoints = null) { Debug.Assert(!String.IsNullOrEmpty(fileName), "Invalid filename for sprite"); // Try sprite frame cache first CCSpriteFrame frame = CCSpriteFrameCache.SharedSpriteFrameCache[fileName]; if (frame != null) { InitWithSpriteFrame(frame); } else { // If frame doesn't exist, try texture cache CCTexture2D texture = CCTextureCache.SharedTextureCache.AddImage(fileName); if (texture != null) { InitWithTexture(texture, rectInPoints); } } }
public CocoPiece(Piece piece, CCSpriteFrame cCSpriteFrame) : base(cCSpriteFrame) { this.ScaleX = 118 / cCSpriteFrame.Texture.ContentSizeInPixels.Width + 0.1f; this.ScaleY = 118 / cCSpriteFrame.Texture.ContentSizeInPixels.Width + 0.1f; this.piece = piece; this.piece.PieceTaken += OnPieceTaken; this.piece.PositionUpdated += (s, p) => { this.Position = p.GetPoint(this.piece.Board.Size); }; AnchorPoint = CCPoint.AnchorMiddle; Position = this.GetPosition(); touchListener = new CCEventListenerTouchOneByOne(); touchListener.OnTouchMoved = Touch; touchListener.OnTouchBegan = ToucheBegan; touchListener.OnTouchEnded = TouchEnded; touchListener.OnTouchCancelled = TouchCanceled; AddEventListener(touchListener, this); }
public SpriteAnimationSplit() { var texture = CCTextureCache.SharedTextureCache.AddImage("animations/dragon_animation"); CCSize contentSizeInPixels = texture.ContentSizeInPixels; float height = contentSizeInPixels.Height / 4.0f; float heightOffset = height / 2.0f; float width = contentSizeInPixels.Width / 5.0f; // Manually add frames to the frame cache // The rects in pixels of each frame are determined from the textureatlas var frame0 = new CCSpriteFrame(texture, new CCRect(width * 0, heightOffset + height * 0, width, height)); var frame1 = new CCSpriteFrame(texture, new CCRect(width * 1, heightOffset + height * 0, width, height)); var frame2 = new CCSpriteFrame(texture, new CCRect(width * 2, heightOffset + height * 0, width, height)); var frame3 = new CCSpriteFrame(texture, new CCRect(width * 3, heightOffset + height * 0, width, height)); // Note: The height positioning below is a bit of voodoo because the sprite atlas isn't currently packed tightly // See the dragon_animation.png file var frame4 = new CCSpriteFrame(texture, new CCRect(width * 0, heightOffset * 1.6f + height * 1, width, height)); var frame5 = new CCSpriteFrame(texture, new CCRect(width * 1, heightOffset * 1.6f + height * 1, width, height)); // Animation using Sprite BatchNode sprite = new CCSprite(frame0); AddChild(sprite); var animFrames = new List<CCSpriteFrame>(6); animFrames.Add(frame0); animFrames.Add(frame1); animFrames.Add(frame2); animFrames.Add(frame3); animFrames.Add(frame4); animFrames.Add(frame5); CCAnimation animation = new CCAnimation(animFrames, 0.2f); CCAnimate animate = new CCAnimate (animation); seq = new CCSequence(animate, new CCFlipX(true), animate, new CCFlipX(false)); }
/** * Sets the background spriteFrame to use for the specified button state. * * @param spriteFrame The background spriteFrame to use for the specified state. * @param state The state that uses the specified image. The values are described * in "CCControlState". */ public virtual void SetBackgroundSpriteFrameForState(CCSpriteFrame spriteFrame, CCControlState state) { CCScale9Sprite sprite = new CCScale9SpriteFrame(spriteFrame); SetBackgroundSpriteForState(sprite, state); }
public void AddSpriteFrame(CCSpriteFrame frame) { var animFrame = new CCAnimationFrame(frame, 1.0f, null); Frames.Add(animFrame); // update duration TotalDelayUnits++; }
void LoadCocos2DDictionary(PlistDictionary dict, CCTexture2D texture) { PlistDictionary metadataDict = null; if (dict.ContainsKey("metadata")) { metadataDict = dict["metadata"].AsDictionary; } PlistDictionary framesDict = null; if (dict.ContainsKey("frames")) { framesDict = dict["frames"].AsDictionary; } // get the format int format = 0; if (metadataDict != null) { format = metadataDict["format"].AsInt; } // check the format if (format < 0 || format > 3) { throw (new NotSupportedException("PList format " + format + " is not supported.")); } foreach (var pair in framesDict) { PlistDictionary frameDict = pair.Value.AsDictionary; CCSpriteFrame spriteFrame = null; if (format == 0) { float x = 0f, y = 0f, w = 0f, h = 0f; x = frameDict["x"].AsFloat; y = frameDict["y"].AsFloat; w = frameDict["width"].AsFloat; h = frameDict["height"].AsFloat; float ox = 0f, oy = 0f; ox = frameDict["offsetX"].AsFloat; oy = frameDict["offsetY"].AsFloat; int ow = 0, oh = 0; ow = frameDict["originalWidth"].AsInt; oh = frameDict["originalHeight"].AsInt; // check ow/oh if (ow == 0 || oh == 0) { CCLog.Log( "cocos2d: WARNING: originalWidth/Height not found on the CCSpriteFrame. AnchorPoint won't work as expected. Regenerate the .plist or check the 'format' metatag"); } // abs ow/oh ow = Math.Abs(ow); oh = Math.Abs(oh); // create frame spriteFrame = new CCSpriteFrame( new CCSize(ow, oh), texture, new CCRect(x + ox, y + oy, w, h), false ); } else if (format == 1 || format == 2) { var frame = CCRect.Parse(frameDict["frame"].AsString); bool rotated = false; // rotation if (format == 2) { if (frameDict.ContainsKey("rotated")) { rotated = frameDict["rotated"].AsBool; } } var offset = CCPoint.Parse(frameDict["offset"].AsString); var sourceSize = CCSize.Parse(frameDict["sourceSize"].AsString); frame.Origin += offset; // create frame spriteFrame = new CCSpriteFrame(sourceSize, texture, frame, rotated); } else if (format == 3) { var spriteSize = CCSize.Parse(frameDict["spriteSize"].AsString); var spriteOffset = CCPoint.Parse(frameDict["spriteOffset"].AsString); var spriteSourceSize = CCSize.Parse(frameDict["spriteSourceSize"].AsString); var textureRect = CCRect.Parse(frameDict["textureRect"].AsString); bool textureRotated = false; if (frameDict.ContainsKey("textureRotated")) { textureRotated = frameDict["textureRotated"].AsBool; } // get aliases var aliases = frameDict["aliases"].AsArray; for (int i = 0; i < aliases.Count; i++) { string oneAlias = aliases[i].AsString; if (spriteFramesAliases.ContainsKey(oneAlias)) { if (spriteFramesAliases[oneAlias] != null) { CCLog.Log("CocosSharp: WARNING: an alias with name {0} already exists", oneAlias); } } if (!spriteFramesAliases.ContainsKey(oneAlias)) { spriteFramesAliases.Add(oneAlias, pair.Key); } } // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, texture, new CCRect(textureRect.Origin.X + spriteOffset.X, textureRect.Origin.Y + spriteOffset.Y, spriteSize.Width, spriteSize.Height), textureRotated ); } spriteFrame.TextureFilename = pair.Key; spriteFrames[pair.Key] = spriteFrame; } AutoCreateAliasList(); }
// Init calls that are called externally for objects that are already instantiated internal void InitWithSpriteFrame(CCSpriteFrame spriteFrame) { InitCCScale9Sprite(new CCSpriteBatchNode(spriteFrame.Texture, 9), spriteFrame.TextureRectInPixels, spriteFrame.IsRotated, CCRect.Zero); }
private CCBKeyframe ReadKeyframe(CCBPropertyType type) { var keyframe = new CCBKeyframe(); keyframe.Time = ReadFloat(); var easingType = (CCBEasingType) ReadInt(false); float easingOpt = 0; object value = null; if (easingType == CCBEasingType.CubicIn || easingType == CCBEasingType.CubicOut || easingType == CCBEasingType.CubicInOut || easingType == CCBEasingType.ElasticIn || easingType == CCBEasingType.ElasticOut || easingType == CCBEasingType.ElasticInOut) { easingOpt = ReadFloat(); } keyframe.EasingType = easingType; keyframe.EasingOpt = easingOpt; if (type == CCBPropertyType.Check) { value = new CCBValue(ReadBool()); } else if (type == CCBPropertyType.Byte) { value = new CCBValue(ReadByte()); } else if (type == CCBPropertyType.Color3) { byte r = ReadByte(); byte g = ReadByte(); byte b = ReadByte(); var c = new CCColor3B(r, g, b); value = new CCColor3BWapper(c); } else if (type == CCBPropertyType.Degrees) { value = new CCBValue(ReadFloat()); } else if (type == CCBPropertyType.ScaleLock || type == CCBPropertyType.Position || type == CCBPropertyType.FloatXY) { float a = ReadFloat(); float b = ReadFloat(); value = new List<CCBValue> { new CCBValue(a), new CCBValue(b) }; } else if (type == CCBPropertyType.SpriteFrame) { string spriteSheet = ReadCachedString(); string spriteFile = ReadCachedString(); CCSpriteFrame spriteFrame; if (String.IsNullOrEmpty(spriteSheet)) { spriteFile = _CCBRootPath + spriteFile; CCTexture2D texture = CCTextureCache.SharedTextureCache.AddImage(CCFileUtils.RemoveExtension(spriteFile)); var bounds = new CCRect(0, 0, texture.ContentSizeInPixels.Width, texture.ContentSizeInPixels.Height); spriteFrame = new CCSpriteFrame(texture, bounds); } else { spriteSheet = _CCBRootPath + spriteSheet; CCSpriteFrameCache frameCache = CCSpriteFrameCache.SharedSpriteFrameCache; // Load the sprite sheet only if it is not loaded if (!_loadedSpriteSheets.Contains(spriteSheet)) { frameCache.AddSpriteFrames(spriteSheet); _loadedSpriteSheets.Add(spriteSheet); } spriteFrame = frameCache[spriteFile]; } value = spriteFrame; } keyframe.Value = value; return keyframe; }
void InitWithSpriteFrame(CCSpriteFrame spriteFrame) { opacityModifyRGB = true; BlendFunc = CCBlendFunc.AlphaBlend; AnchorPoint = new CCPoint(0.5f, 0.5f); quad = new CCV3F_C4B_T2F_Quad(); quad.BottomLeft.Colors = CCColor4B.White; quad.BottomRight.Colors = CCColor4B.White; quad.TopLeft.Colors = CCColor4B.White; quad.TopRight.Colors = CCColor4B.White; SpriteFrame = spriteFrame; }
public CCScale9Sprite(CCSpriteFrame spriteFrame) : this(spriteFrame, CCRect.Zero) { }
// Sprite frame public CCScale9Sprite(CCSpriteFrame spriteFrame, CCRect capInsets) : this(new CCSpriteBatchNode(spriteFrame.Texture, 9), spriteFrame.TextureRectInPixels, spriteFrame.IsRotated, capInsets) { }
protected override void OnHandlePropTypeSpriteFrame(CCNode node, CCNode parent, string propertyName, CCSpriteFrame spriteFrame, CCBReader reader) { if (propertyName == PROPERTY_NORMALDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage)node).NormalImageSpriteFrame = spriteFrame; } } else if (propertyName == PROPERTY_SELECTEDDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage)node).SelectedImageSpriteFrame = spriteFrame; } } else if (propertyName == PROPERTY_DISABLEDDISPLAYFRAME) { if (spriteFrame != null) { ((CCMenuItemImage)node).DisabledImageSpriteFrame = spriteFrame; } } else { base.OnHandlePropTypeSpriteFrame(node, parent, propertyName, spriteFrame, reader); } }
public CCMenuItemImage(CCSpriteFrame normalSpFrame, CCSpriteFrame selectedSpFrame, CCSpriteFrame disabledSpFrame, Action <object> target = null) : this(new CCSprite(normalSpFrame), new CCSprite(selectedSpFrame), new CCSprite(disabledSpFrame), target) { }
public CCBSetSpriteFrameState(CCBSetSpriteFrame action, CCNode target) : base(action, target) { SpriteFrame = action.SpriteFrame; }
public CCMenuItemImage(CCSpriteFrame normalSpFrame, CCSpriteFrame selectedSpFrame, CCSpriteFrame disabledSpFrame, Action<object> target = null) : this(new CCSprite(normalSpFrame), new CCSprite(selectedSpFrame), new CCSprite(disabledSpFrame), target) { }
/** creates a Place action with a position */ // public CCBSetSpriteFrame() // { // } public CCBSetSpriteFrame(CCSpriteFrame pSpriteFrame) { SpriteFrame = pSpriteFrame; }
public IntroLayer() { LoadSprites(); int index = 0; _gameBG = new CCLayer(); //Cargamos el mapa LoadMap(index); //Creación de enemigos enemys = new List<EnemyBase>(); for (int i = 0; i < 2; i++) { Enemy enemy = new Enemy(); enemys.Add(enemy); enemy.ScaleX = ScaleY = GAMESCALE; enemy.Position = new CCPoint(enemysPos[i], mapShape[(int)enemysPos[i]]); enemy.Tag = i + 10; _gameBG.AddChild(enemy); } Tank tank1 = new Tank(); tank1.Position = new CCPoint(360, mapShape[3600]); tank1.Scale = GAMESCALE; _gameBG.AddChild(tank1); enemys.Add(tank1); //Tank tank2 = new Tank(); //tank2.Position = new CCPoint(402, mapShape[4020]); //_gameBG.AddChild(tank2); //enemys.Add(tank2); //3600, 4020; hero = new Hero(); hero.Position = new CCPoint(120, 120); hero.Opacity = 100; hero.Scale = GAMESCALE; _gameBG.AddChild(hero, 1); truck = new Truck(); truck.Scale = GAMESCALE; truck.Position = new CCPoint(650, 370); _gameBG.AddChild(truck, 2); //CCSimpleAudioEngine.SharedEngine.PreloadBackgroundMusic //[[SimpleAudioEngine sharedEngine] preloadEffect:@"Sound 1 at frame 10.mp3"]; //[[SimpleAudioEngine sharedEngine] preloadBackgroundMusic:@"Sound 13 at frame 10.mp3"]; //[[SimpleAudioEngine sharedEngine] preloadEffect:@"Sound 20 at frame 10.mp3"]; //[[SimpleAudioEngine sharedEngine] preloadEffect:@"Sound 21 at frame 10.mp3"]; //[[SimpleAudioEngine sharedEngine] preloadEffect:@"Sound 32 at frame 10.mp3"]; //GameTouches = [[NSMutableSet alloc]init]; bulletFrame = new CCSpriteFrame(CCApplication.SharedApplication.TextureCache.AddImage("Image 779 at frame 10.png"), new CCRect(0, 0, 11.5f, 4.5f)); //[CCSpriteFrame frameWithTextureFilename:@"Image 779 at frame 10.png" rect:CGRectMake(0, 0, 11.5, 4.5)]; ScaleX = ScaleY = 1.7f; }
public void AddSpriteFrame(CCSpriteFrame frame, string frameName) { if (!AllowFrameOverwrite && spriteFrames.ContainsKey(frameName)) { throw (new ArgumentException("The frame named " + frameName + " already exists.")); } spriteFrames[frameName] = frame; }
protected CCSpriteFrame(CCSpriteFrame spriteFrame) : this(spriteFrame.ContentSize, spriteFrame.Texture, spriteFrame.TextureRectInPixels, spriteFrame.OriginalSizeInPixels, spriteFrame.IsRotated, spriteFrame.OffsetInPixels) { }
public CCAnimate CreateAnimateAction(CCDirector director) { var frameList = new List<CCSpriteFrame>(); for (var i = 0; i < 7; i++) { var texture = CreateCharacterTexture(director); var sprite = new CCSpriteFrame(texture, new CCRect(0, 0, texture.ContentSizeInPixels.Width, texture.ContentSizeInPixels.Height)); frameList.Add(sprite); } var animation = new CCAnimation(frameList, 0.1f); var animate = new CCAnimate (animation); return animate; }
public void AddSpriteFrame(CCSprite sprite) { CCRect textureRect = sprite.TextureRectInPixels; CCSpriteFrame f = new CCSpriteFrame(sprite.ContentSize, sprite.Texture, textureRect); AddSpriteFrame(f); }
void LoadAppleDictionary(PlistDictionary dict, CCTexture2D texture) { var version = dict.ContainsKey("version") ? dict ["version"].AsInt : 0; if (version != 1) { throw (new NotSupportedException("Binary PList version " + version + " is not supported.")); } var images = dict.ContainsKey("images") ? dict ["images"].AsArray : null; foreach (var imageEntry in images) { // we only support one image for now var imageDict = imageEntry.AsDictionary; var path = imageDict ["path"].AsString; path = Path.Combine(plistFilePath, CCFileUtils.RemoveExtension(path)); if (!CCTextureCache.SharedTextureCache.Contains(path)) { texture = CCTextureCache.SharedTextureCache.AddImage(path); } else { // Fix for SpriteKit texture atlases // Backgrounds.1.png // Example is that after stripping the extension when passing the value in // the ".1" is considered an extension so it is stripped as well resulting // in the texture not being found. So we try with the texture key first and // only if it is not found then we check for extension and continue with normal // processing. if (Path.HasExtension(path)) { var extension = Path.GetExtension(path); var sequence = 0; if (Int32.TryParse(extension.Substring(1), out sequence)) { path = imageDict ["path"].AsString; path = Path.Combine(plistFilePath, path); } } texture = CCTextureCache.SharedTextureCache [path]; } // size not used right now //var size = CCSize.Parse(imageDict ["size"].AsString); var subImages = imageDict ["subimages"].AsArray; foreach (var subImage in subImages) { CCSpriteFrame spriteFrame = null; var subImageDict = subImage.AsDictionary; var name = subImageDict ["name"].AsString; var alias = subImageDict ["alias"].AsString; var isFullyOpaque = true; if (subImageDict.ContainsKey("isFullyOpaque")) { isFullyOpaque = subImageDict ["isFullyOpaque"].AsBool; } var textureRect = CCRect.Parse(subImageDict ["textureRect"].AsString); var spriteOffset = CCPoint.Parse(subImageDict ["spriteOffset"].AsString); // We are going to override the sprite offset for now to be 0,0 // It seems the offset is calculated off of the original size but if // we pass this offset it throws our center position calculations off. spriteOffset = CCPoint.Zero; var textureRotated = false; if (subImageDict.ContainsKey("textureRotated")) { textureRotated = subImageDict ["textureRotated"].AsBool; } var spriteSourceSize = CCSize.Parse(subImageDict ["spriteSourceSize"].AsString); var frameRect = textureRect; if (textureRotated) { frameRect = new CCRect(textureRect.Origin.X, textureRect.Origin.Y, textureRect.Size.Height, textureRect.Size.Width); } #if DEBUG CCLog.Log("texture {0} rect {1} rotated {2} offset {3}, sourcesize {4}", name, textureRect, textureRotated, spriteOffset, spriteSourceSize); #endif frameRect.Origin += spriteOffset; // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, texture, frameRect, textureRotated ); spriteFrame.TextureFilename = name; spriteFrames [name] = spriteFrame; } } AutoCreateAliasList(); }
public MySprite1(CCSpriteFrame frame): base(frame) { ivar = 10; }
void LoadAppleDictionary(PlistDictionary dict, CCTexture2D texture) { var version = dict.ContainsKey ("version") ? dict ["version"].AsInt : 0; if (version != 1) throw (new NotSupportedException("Binary PList version " + version + " is not supported.")); var images = dict.ContainsKey ("images") ? dict ["images"].AsArray : null; foreach (var imageEntry in images) { // we only support one image for now var imageDict = imageEntry.AsDictionary; var path = imageDict ["path"].AsString; path = Path.Combine(plistFilePath, CCFileUtils.RemoveExtension(path)); if (!CCTextureCache.SharedTextureCache.Contains (path)) texture = CCTextureCache.SharedTextureCache.AddImage(path); else texture = CCTextureCache.SharedTextureCache[path]; // size not used right now //var size = CCSize.Parse(imageDict ["size"].AsString); var subImages = imageDict ["subimages"].AsArray; foreach (var subImage in subImages) { CCSpriteFrame spriteFrame = null; var subImageDict = subImage.AsDictionary; var name = subImageDict ["name"].AsString; var alias = subImageDict ["alias"].AsString; var isFullyOpaque = true; if (subImageDict.ContainsKey ("isFullyOpaque")) isFullyOpaque = subImageDict ["isFullyOpaque"].AsBool; var textureRect = CCRect.Parse (subImageDict ["textureRect"].AsString); var spriteOffset = CCPoint.Parse (subImageDict ["spriteOffset"].AsString); // We are going to override the sprite offset for now to be 0,0 // It seems the offset is calculated off of the original size but if // we pass this offset it throws our center position calculations off. spriteOffset = CCPoint.Zero; var textureRotated = false; if (subImageDict.ContainsKey ("textureRotated")) { textureRotated = subImageDict ["textureRotated"].AsBool; } var spriteSourceSize = CCSize.Parse (subImageDict ["spriteSourceSize"].AsString); var frameRect = textureRect; if (textureRotated) frameRect = new CCRect (textureRect.Origin.X, textureRect.Origin.Y, textureRect.Size.Height, textureRect.Size.Width); #if DEBUG CCLog.Log ("texture {0} rect {1} rotated {2} offset {3}, sourcesize {4}", name, textureRect, textureRotated, spriteOffset, spriteSourceSize); #endif frameRect.Origin += spriteOffset; // create frame spriteFrame = new CCSpriteFrame ( spriteSourceSize, texture, frameRect, textureRotated ); spriteFrame.TextureFilename = name; spriteFrames [name] = spriteFrame; } } AutoCreateAliasList(); }
private CCBKeyframe ReadKeyframe(CCBPropertyType type) { var keyframe = new CCBKeyframe(); keyframe.Time = ReadFloat(); var easingType = (CCBEasingType)ReadInt(false); float easingOpt = 0; object value = null; if (easingType == CCBEasingType.CubicIn || easingType == CCBEasingType.CubicOut || easingType == CCBEasingType.CubicInOut || easingType == CCBEasingType.ElasticIn || easingType == CCBEasingType.ElasticOut || easingType == CCBEasingType.ElasticInOut) { easingOpt = ReadFloat(); } keyframe.EasingType = easingType; keyframe.EasingOpt = easingOpt; if (type == CCBPropertyType.Check) { value = new CCBValue(ReadBool()); } else if (type == CCBPropertyType.Byte) { value = new CCBValue(ReadByte()); } else if (type == CCBPropertyType.Color3) { byte r = ReadByte(); byte g = ReadByte(); byte b = ReadByte(); var c = new CCColor3B(r, g, b); value = new CCColor3BWapper(c); } else if (type == CCBPropertyType.Degrees) { value = new CCBValue(ReadFloat()); } else if (type == CCBPropertyType.ScaleLock || type == CCBPropertyType.Position || type == CCBPropertyType.FloatXY) { float a = ReadFloat(); float b = ReadFloat(); value = new List <CCBValue> { new CCBValue(a), new CCBValue(b) }; } else if (type == CCBPropertyType.SpriteFrame) { string spriteSheet = ReadCachedString(); string spriteFile = ReadCachedString(); CCSpriteFrame spriteFrame; if (String.IsNullOrEmpty(spriteSheet)) { spriteFile = _CCBRootPath + spriteFile; CCTexture2D texture = CCTextureCache.SharedTextureCache.AddImage(CCFileUtils.RemoveExtension(spriteFile)); var bounds = new CCRect(0, 0, texture.ContentSizeInPixels.Width, texture.ContentSizeInPixels.Height); spriteFrame = new CCSpriteFrame(texture, bounds); } else { spriteSheet = _CCBRootPath + spriteSheet; CCSpriteFrameCache frameCache = CCSpriteFrameCache.SharedSpriteFrameCache; // Load the sprite sheet only if it is not loaded if (!_loadedSpriteSheets.Contains(spriteSheet)) { frameCache.AddSpriteFrames(spriteSheet); _loadedSpriteSheets.Add(spriteSheet); } spriteFrame = frameCache[spriteFile]; } value = spriteFrame; } keyframe.Value = value; return(keyframe); }
void LoadCocos2DDictionary(PlistDictionary dict, CCTexture2D texture) { PlistDictionary metadataDict = null; if (dict.ContainsKey("metadata")) { metadataDict = dict["metadata"].AsDictionary; } PlistDictionary framesDict = null; if (dict.ContainsKey("frames")) { framesDict = dict["frames"].AsDictionary; } // get the format int format = 0; if (metadataDict != null) { format = metadataDict["format"].AsInt; } // check the format if (format < 0 || format > 3) { throw (new NotSupportedException("PList format " + format + " is not supported.")); } foreach (var pair in framesDict) { PlistDictionary frameDict = pair.Value.AsDictionary; CCSpriteFrame spriteFrame = null; if (format == 0) { float x = 0f, y = 0f, w = 0f, h = 0f; x = frameDict["x"].AsFloat; y = frameDict["y"].AsFloat; w = frameDict["width"].AsFloat; h = frameDict["height"].AsFloat; float ox = 0f, oy = 0f; ox = frameDict["offsetX"].AsFloat; oy = frameDict["offsetY"].AsFloat; int ow = 0, oh = 0; ow = frameDict["originalWidth"].AsInt; oh = frameDict["originalHeight"].AsInt; // check ow/oh if (ow == 0 || oh == 0) { CCLog.Log( "cocos2d: WARNING: originalWidth/Height not found on the CCSpriteFrame. AnchorPoint won't work as expected. Regenerate the .plist or check the 'format' metatag"); } // abs ow/oh ow = Math.Abs(ow); oh = Math.Abs(oh); // create frame spriteFrame = new CCSpriteFrame( new CCSize(ow, oh), texture, new CCRect(x + ox, y + oy, w, h), false ); } else if (format == 1 || format == 2) { var frame = CCRect.Parse(frameDict["frame"].AsString); bool rotated = false; // rotation if (format == 2) { if (frameDict.ContainsKey("rotated")) { rotated = frameDict["rotated"].AsBool; } } var offset = CCPoint.Parse(frameDict["offset"].AsString); var sourceSize = CCSize.Parse(frameDict["sourceSize"].AsString); frame.Origin += offset; // create frame spriteFrame = new CCSpriteFrame(sourceSize, texture, frame, rotated ); } else if (format == 3) { var spriteSize = CCSize.Parse(frameDict["spriteSize"].AsString); var spriteOffset = CCPoint.Parse(frameDict["spriteOffset"].AsString); var spriteSourceSize = CCSize.Parse(frameDict["spriteSourceSize"].AsString); var textureRect = CCRect.Parse(frameDict["textureRect"].AsString); bool textureRotated = false; if (frameDict.ContainsKey("textureRotated")) { textureRotated = frameDict["textureRotated"].AsBool; } // get aliases var aliases = frameDict["aliases"].AsArray; for (int i = 0; i < aliases.Count; i++ ) { string oneAlias = aliases[i].AsString; if (spriteFramesAliases.ContainsKey(oneAlias)) { if (spriteFramesAliases[oneAlias] != null) { CCLog.Log("CocosSharp: WARNING: an alias with name {0} already exists", oneAlias); } } if (!spriteFramesAliases.ContainsKey(oneAlias)) { spriteFramesAliases.Add(oneAlias, pair.Key); } } // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, texture, new CCRect(textureRect.Origin.X + spriteOffset.X, textureRect.Origin.Y + spriteOffset.Y, spriteSize.Width, spriteSize.Height), textureRotated ); } spriteFrame.TextureFilename = pair.Key; spriteFrames[pair.Key] = spriteFrame; } AutoCreateAliasList(); }
public CCSprite(CCSpriteFrame spriteFrame) : this(spriteFrame.ContentSize, spriteFrame) { }
public CCAnimateState (CCAnimate action, CCNode target) : base (action, target) { Animation = action.Animation; SplitTimes = action.SplitTimes; var sprite = (CCSprite)(target); OriginalFrame = null; if (Animation.RestoreOriginalFrame) { OriginalFrame = sprite.SpriteFrame; } NextFrame = 0; ExecutedLoops = 0; }
public CCSprite(CCSize contentSize, CCSpriteFrame spriteFrame) { ContentSize = contentSize; InitWithSpriteFrame(spriteFrame); }
void InitWithSpriteFrame(CCSpriteFrame spriteFrame) { opacityModifyRGB = true; BlendFunc = CCBlendFunc.AlphaBlend; AnchorPoint = CCPoint.AnchorMiddle; SpriteFrame = spriteFrame; }
internal void AddSpriteFrames(PlistDictionary pobDictionary, CCTexture2D pobTexture) { /* * Supported Zwoptex Formats: * * ZWTCoordinatesFormatOptionXMLLegacy = 0, // Flash Version * ZWTCoordinatesFormatOptionXML1_0 = 1, // Desktop Version 0.0 - 0.4b * ZWTCoordinatesFormatOptionXML1_1 = 2, // Desktop Version 1.0.0 - 1.0.1 * ZWTCoordinatesFormatOptionXML1_2 = 3, // Desktop Version 1.0.2+ */ PlistDictionary metadataDict = null; if (pobDictionary.ContainsKey("metadata")) { metadataDict = pobDictionary["metadata"].AsDictionary; } PlistDictionary framesDict = null; if (pobDictionary.ContainsKey("frames")) { framesDict = pobDictionary["frames"].AsDictionary; } int format = 0; // get the format if (metadataDict != null) { format = metadataDict["format"].AsInt; } // check the format if (format < 0 || format > 3) { throw (new NotSupportedException("PList format " + format + " is not supported.")); } foreach (var pair in framesDict) { PlistDictionary frameDict = pair.Value.AsDictionary; CCSpriteFrame spriteFrame = null; if (format == 0) { float x = 0f, y = 0f, w = 0f, h = 0f; x = frameDict["x"].AsFloat; y = frameDict["y"].AsFloat; w = frameDict["width"].AsFloat; h = frameDict["height"].AsFloat; float ox = 0f, oy = 0f; ox = frameDict["offsetX"].AsFloat; oy = frameDict["offsetY"].AsFloat; int ow = 0, oh = 0; ow = frameDict["originalWidth"].AsInt; oh = frameDict["originalHeight"].AsInt; // check ow/oh if (ow == 0 || oh == 0) { CCLog.Log( "cocos2d: WARNING: originalWidth/Height not found on the CCSpriteFrame. AnchorPoint won't work as expected. Regenerate the .plist or check the 'format' metatag"); } // abs ow/oh ow = Math.Abs(ow); oh = Math.Abs(oh); // create frame spriteFrame = new CCSpriteFrame( new CCSize(ow, oh), pobTexture, new CCRect(x, y, w, h), new CCSize(ow, oh), false, new CCPoint(ox, oy) ); } else if (format == 1 || format == 2) { CCRect frame = CCRect.Parse(frameDict["frame"].AsString); bool rotated = false; // rotation if (format == 2) { if (frameDict.ContainsKey("rotated")) { rotated = frameDict["rotated"].AsBool; } } CCPoint offset = CCPoint.Parse(frameDict["offset"].AsString); CCSize sourceSize = CCSize.Parse(frameDict["sourceSize"].AsString); // create frame spriteFrame = new CCSpriteFrame( sourceSize, pobTexture, frame, sourceSize, rotated, offset ); } else if (format == 3) { // get values CCSize spriteSize = CCSize.Parse(frameDict["spriteSize"].AsString); CCPoint spriteOffset = CCPoint.Parse(frameDict["spriteOffset"].AsString); CCSize spriteSourceSize = CCSize.Parse(frameDict["spriteSourceSize"].AsString); CCRect textureRect = CCRect.Parse(frameDict["textureRect"].AsString); bool textureRotated = false; if (frameDict.ContainsKey("textureRotated")) { textureRotated = frameDict["textureRotated"].AsBool; } // get aliases PlistArray aliases = frameDict["aliases"].AsArray; string frameKey = pair.Key; foreach (PlistObjectBase item2 in aliases) { string oneAlias = item2.AsString; if (spriteFramesAliases.ContainsKey(oneAlias)) { if (spriteFramesAliases[oneAlias] != null) { CCLog.Log("CocosSharp: WARNING: an alias with name {0} already exists", oneAlias); } } if (!spriteFramesAliases.ContainsKey(oneAlias)) { spriteFramesAliases.Add(oneAlias, frameKey); } } // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, pobTexture, new CCRect(textureRect.Origin.X, textureRect.Origin.Y, spriteSize.Width, spriteSize.Height), spriteSourceSize, textureRotated, spriteOffset ); } // add sprite frame string key = pair.Key; if (!AllowFrameOverwrite && spriteFrames.ContainsKey(key)) { CCLog.Log("Frame named " + key + " already exists in the animation cache. Not overwriting existing record."); } else if (AllowFrameOverwrite || !spriteFrames.ContainsKey(key)) { spriteFrames[key] = spriteFrame; } } }
public bool IsSpriteFrameDisplayed(CCSpriteFrame frame) { CCRect r = frame.TextureRectInPixels; return ( CCRect.Equal(ref r, ref textureRectInPixels) && frame.Texture.Name == texture.Name ); }
internal void AddSpriteFrames(PlistDictionary pobDictionary, CCTexture2D pobTexture) { /* Supported Zwoptex Formats: ZWTCoordinatesFormatOptionXMLLegacy = 0, // Flash Version ZWTCoordinatesFormatOptionXML1_0 = 1, // Desktop Version 0.0 - 0.4b ZWTCoordinatesFormatOptionXML1_1 = 2, // Desktop Version 1.0.0 - 1.0.1 ZWTCoordinatesFormatOptionXML1_2 = 3, // Desktop Version 1.0.2+ */ PlistDictionary metadataDict = null; if (pobDictionary.ContainsKey("metadata")) { metadataDict = pobDictionary["metadata"].AsDictionary; } PlistDictionary framesDict = null; if (pobDictionary.ContainsKey("frames")) { framesDict = pobDictionary["frames"].AsDictionary; } int format = 0; // get the format if (metadataDict != null) { format = metadataDict["format"].AsInt; } // check the format if (format < 0 || format > 3) { throw (new NotSupportedException("PList format " + format + " is not supported.")); } foreach (var pair in framesDict) { PlistDictionary frameDict = pair.Value.AsDictionary; CCSpriteFrame spriteFrame = null; if (format == 0) { float x=0f, y=0f, w=0f, h=0f; x = frameDict["x"].AsFloat; y = frameDict["y"].AsFloat; w = frameDict["width"].AsFloat; h = frameDict["height"].AsFloat; float ox = 0f, oy = 0f; ox = frameDict["offsetX"].AsFloat; oy = frameDict["offsetY"].AsFloat; int ow = 0, oh = 0; ow = frameDict["originalWidth"].AsInt; oh = frameDict["originalHeight"].AsInt; // check ow/oh if (ow == 0 || oh == 0) { CCLog.Log( "cocos2d: WARNING: originalWidth/Height not found on the CCSpriteFrame. AnchorPoint won't work as expected. Regenerate the .plist or check the 'format' metatag"); } // abs ow/oh ow = Math.Abs(ow); oh = Math.Abs(oh); // create frame spriteFrame = new CCSpriteFrame( new CCSize(ow, oh), pobTexture, new CCRect(x, y, w, h), new CCSize(ow, oh), false, new CCPoint(ox, oy) ); } else if (format == 1 || format == 2) { CCRect frame = CCRect.Parse(frameDict["frame"].AsString); bool rotated = false; // rotation if (format == 2) { if (frameDict.ContainsKey("rotated")) { rotated = frameDict["rotated"].AsBool; } } CCPoint offset = CCPoint.Parse(frameDict["offset"].AsString); CCSize sourceSize = CCSize.Parse (frameDict["sourceSize"].AsString); // create frame spriteFrame = new CCSpriteFrame( sourceSize, pobTexture, frame, sourceSize, rotated, offset ); } else if (format == 3) { // get values CCSize spriteSize = CCSize.Parse (frameDict["spriteSize"].AsString); CCPoint spriteOffset = CCPoint.Parse(frameDict["spriteOffset"].AsString); CCSize spriteSourceSize = CCSize.Parse (frameDict["spriteSourceSize"].AsString); CCRect textureRect = CCRect.Parse(frameDict["textureRect"].AsString); bool textureRotated = false; if (frameDict.ContainsKey("textureRotated")) { textureRotated = frameDict["textureRotated"].AsBool; } // get aliases PlistArray aliases = frameDict["aliases"].AsArray; string frameKey = pair.Key; foreach (PlistObjectBase item2 in aliases) { string oneAlias = item2.AsString; if (spriteFramesAliases.ContainsKey(oneAlias)) { if (spriteFramesAliases[oneAlias] != null) { CCLog.Log("CocosSharp: WARNING: an alias with name {0} already exists", oneAlias); } } if (!spriteFramesAliases.ContainsKey(oneAlias)) { spriteFramesAliases.Add(oneAlias, frameKey); } } // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, pobTexture, new CCRect(textureRect.Origin.X, textureRect.Origin.Y, spriteSize.Width, spriteSize.Height), spriteSourceSize, textureRotated, spriteOffset ); } // add sprite frame string key = pair.Key; if (!AllowFrameOverwrite && spriteFrames.ContainsKey(key)) { CCLog.Log("Frame named " + key + " already exists in the animation cache. Not overwriting existing record."); } else if (AllowFrameOverwrite || !spriteFrames.ContainsKey(key)) { spriteFrames[key] = spriteFrame; } } }
public CCScale9SpriteFrame(CCSpriteFrame spriteFrame) : base(spriteFrame) { }
public CCPhysicsSprite(CCSpriteFrame pSpriteFrame) : base(pSpriteFrame) { IgnoreAnchorPointForPosition = true; }
public CCScale9SpriteFrame(CCSpriteFrame spriteFrame, CCRect capInsets) : base(spriteFrame, capInsets) { }
void LoadAppleDictionary(PlistDictionary dict, CCTexture2D texture) { var version = dict.ContainsKey("version") ? dict ["version"].AsInt : 0; if (version != 1) { throw (new NotSupportedException("Binary PList version " + version + " is not supported.")); } var images = dict.ContainsKey("images") ? dict ["images"].AsArray : null; foreach (var imageEntry in images) { // we only support one image for now var imageDict = imageEntry.AsDictionary; var path = imageDict ["path"].AsString; path = Path.Combine(plistFilePath, CCFileUtils.RemoveExtension(path)); if (!CCTextureCache.SharedTextureCache.Contains(path)) { texture = CCTextureCache.SharedTextureCache.AddImage(path); } else { texture = CCTextureCache.SharedTextureCache[path]; } // size not used right now //var size = CCSize.Parse(imageDict ["size"].AsString); var subImages = imageDict ["subimages"].AsArray; foreach (var subImage in subImages) { CCSpriteFrame spriteFrame = null; var subImageDict = subImage.AsDictionary; var name = subImageDict ["name"].AsString; var alias = subImageDict ["alias"].AsString; var isFullyOpaque = true; if (subImageDict.ContainsKey("isFullyOpaque")) { isFullyOpaque = subImageDict ["isFullyOpaque"].AsBool; } var textureRect = CCRect.Parse(subImageDict ["textureRect"].AsString); var spriteOffset = CCPoint.Parse(subImageDict ["spriteOffset"].AsString); // We are going to override the sprite offset for now to be 0,0 // It seems the offset is calculated off of the original size but if // we pass this offset it throws our center position calculations off. spriteOffset = CCPoint.Zero; var textureRotated = false; if (subImageDict.ContainsKey("textureRotated")) { textureRotated = subImageDict ["textureRotated"].AsBool; } var spriteSourceSize = CCSize.Parse(subImageDict ["spriteSourceSize"].AsString); var frameRect = textureRect; if (textureRotated) { frameRect = new CCRect(textureRect.Origin.X, textureRect.Origin.Y, textureRect.Size.Height, textureRect.Size.Width); } #if DEBUG CCLog.Log("texture {0} rect {1} rotated {2} offset {3}, sourcesize {4}", name, textureRect, textureRotated, spriteOffset, spriteSourceSize); #endif frameRect.Origin += spriteOffset; // create frame spriteFrame = new CCSpriteFrame( spriteSourceSize, texture, frameRect, textureRotated ); spriteFrame.TextureFilename = name; spriteFrames [name] = spriteFrame; } } AutoCreateAliasList(); }
internal void InitWithSpriteFrameName(string spriteFrameName, CCRect capInsets) { CCSpriteFrame spriteFrame = CCSpriteFrameCache.SharedSpriteFrameCache[spriteFrameName]; InitCCScale9Sprite(new CCSpriteBatchNode(spriteFrame.Texture, 9), spriteFrame.TextureRectInPixels, spriteFrame.IsRotated, capInsets); }
protected virtual CCSpriteFrame ParsePropTypeSpriteFrame(CCNode node, CCNode parent, CCBReader reader, string propertyName) { string spriteSheet = reader.ReadCachedString(); string spriteFile = reader.ReadCachedString(); CCSpriteFrame spriteFrame = null; if (spriteFile.Length != 0) { if (spriteSheet.Length == 0) { spriteFile = reader.CCBRootPath + spriteFile; CCTexture2D texture = CCTextureCache.SharedTextureCache.AddImage(CCFileUtils.RemoveExtension(spriteFile)); var bounds = new CCRect(0, 0, texture.ContentSizeInPixels.Width, texture.ContentSizeInPixels.Height); spriteFrame = new CCSpriteFrame(texture, bounds); } else { CCSpriteFrameCache frameCache = CCSpriteFrameCache.SharedSpriteFrameCache; spriteSheet = reader.CCBRootPath + spriteSheet; // Load the sprite sheet only if it is not loaded if (!reader.LoadedSpriteSheet.Contains(spriteSheet)) { frameCache.AddSpriteFrames(spriteSheet); reader.LoadedSpriteSheet.Add(spriteSheet); } spriteFrame = frameCache[spriteFile]; } if (reader.AnimatedProperties.Contains(propertyName)) { reader.AnimationManager.SetBaseValue(spriteFrame, node, propertyName); } } return spriteFrame; }