public ActorBase(ActorData data) { ActorData = data; //创建攻击动画 List <CCSpriteFrame> _attackFrames = new List <CCSpriteFrame>(); List <CCSpriteFrame> _attackFrames_flip = new List <CCSpriteFrame>(); for (int i = 0; i < 4; i++) { _attackFrames.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "_" + i + ".png")); _attackFrames_flip.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "f_" + i + ".png")); } _action_attack = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_attackFrames, 0.1f)); _action_attack_flip = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_attackFrames_flip, 0.1f)); //创建行走动画 List <CCSpriteFrame> _runFrames = new List <CCSpriteFrame>(); List <CCSpriteFrame> _runFrames_flip = new List <CCSpriteFrame>(); for (int i = 4; i < 6; i++) { _runFrames.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "_" + i + ".png")); _runFrames_flip.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "f_" + i + ".png")); } _action_run = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_runFrames, 0.1f)); _action_run_flip = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_runFrames_flip, 0.1f)); //创建站立动画 List <CCSpriteFrame> _standFrames = new List <CCSpriteFrame>(); List <CCSpriteFrame> _standFrames_flip = new List <CCSpriteFrame>(); for (int i = 6; i < 7; i++) { _standFrames.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "_" + i + ".png")); _standFrames_flip.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "f_" + i + ".png")); } _action_stand = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_standFrames, 0.2f)); _action_stand_flip = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_standFrames_flip, 0.2f)); //创建死亡动画 List <CCSpriteFrame> _deadFrames = new List <CCSpriteFrame>(); List <CCSpriteFrame> _deadFrames_flip = new List <CCSpriteFrame>(); for (int i = 7; i < 9; i++) { _deadFrames.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "_" + i + ".png")); _deadFrames_flip.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(data.ActorID + "f_" + i + ".png")); } _action_dead = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_deadFrames, 0.3f)); _action_dead_flip = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_deadFrames_flip, 0.3f)); //初始化默认帧 base.initWithSpriteFrame(_standFrames[0]); }
public SpriteAnimationSplit() { CCSize s = CCDirector.sharedDirector().getWinSize(); CCTexture2D texture = CCTextureCache.sharedTextureCache().addImage("animations/images/dragon_animation"); // manually add frames to the frame cache CCSpriteFrame frame0 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 0, 132 * 0, 132, 132)); CCSpriteFrame frame1 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 1, 132 * 0, 132, 132)); CCSpriteFrame frame2 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 2, 132 * 0, 132, 132)); CCSpriteFrame frame3 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 3, 132 * 0, 132, 132)); CCSpriteFrame frame4 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 0, 132 * 1, 132, 132)); CCSpriteFrame frame5 = CCSpriteFrame.frameWithTexture(texture, new CCRect(132 * 1, 132 * 1, 132, 132)); // // Animation using Sprite BatchNode // CCSprite sprite = CCSprite.spriteWithSpriteFrame(frame0); sprite.position = (new CCPoint(s.width / 2 - 80, s.height / 2)); addChild(sprite); List <CCSpriteFrame> 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 = CCAnimation.animationWithFrames(animFrames, 0.2f); CCAnimate animate = CCAnimate.actionWithAnimation(animation, false); CCActionInterval seq = (CCActionInterval)(CCSequence.actions(animate, CCFlipX.actionWithFlipX(true), (CCFiniteTimeAction)animate.copy(), CCFlipX.actionWithFlipX(false) )); sprite.runAction(CCRepeatForever.actionWithAction(seq)); //animFrames->release(); // win32 : memory leak 2010-0415 }
public Uncle_sprite() { //uncledata = data; // 创建走的动画 List <CCSpriteFrame> _runFream = new List <CCSpriteFrame>(); CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile(@"plist/zhengyu"); CCSpriteBatchNode sheet = CCSpriteBatchNode.batchNodeWithFile(@"plist/Images/zhengyu"); this.addChild(sheet); for (int i = 1; i <= 4; i++) { _runFream.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(String.Format("MM0{0}.png", i))); } _run = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_runFream, 0.12f)); List <CCSpriteFrame> _actackFream = new List <CCSpriteFrame>(); // 创建攻击时候动作 for (int i = 1; i <= 5; i++) { _actackFream.Add(CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(String.Format("Mthrow0{0}.png", i))); } _actack = CCAnimate.actionWithAnimation(CCAnimation.animationWithFrames(_actackFream, 0.3f)); position = new CCPoint(100, 100); // 初始化开始帧 base.initWithSpriteFrame(_runFream[0]); // 如果手机倾斜 if (Accelerometer.IsSupported) { gSensor = new Accelerometer(); gSensor.CurrentValueChanged += new EventHandler <SensorReadingEventArgs <AccelerometerReading> >(gSensor_CurrentValueChanged); gSensor.Start(); } }
public SpriteBatchNodeChildren() { CCSize s = CCDirector.sharedDirector().getWinSize(); // parents CCSpriteBatchNode batch = CCSpriteBatchNode.batchNodeWithFile("animations/images/grossini", 50); addChild(batch, 0, (int)kTags.kTagSpriteBatchNode); CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile("animations/grossini"); CCSprite sprite1 = CCSprite.spriteWithSpriteFrameName("grossini_dance_01.png"); sprite1.position = (new CCPoint(s.width / 3, s.height / 2)); CCSprite sprite2 = CCSprite.spriteWithSpriteFrameName("grossini_dance_02.png"); sprite2.position = (new CCPoint(50, 50)); CCSprite sprite3 = CCSprite.spriteWithSpriteFrameName("grossini_dance_03.png"); sprite3.position = (new CCPoint(-50, -50)); batch.addChild(sprite1); sprite1.addChild(sprite2); sprite1.addChild(sprite3); // BEGIN NEW CODE List <CCSpriteFrame> animFrames = new List <CCSpriteFrame>(); string str = ""; for (int i = 1; i < 15; i++) { string temp = ""; if (i < 10) { temp = "0" + i; } else { temp = i.ToString(); } str = string.Format("grossini_dance_{0}.png", temp); CCSpriteFrame frame = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(str); animFrames.Add(frame); } CCAnimation animation = CCAnimation.animationWithFrames(animFrames, 0.2f); sprite1.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animation, false))); // END NEW CODE CCActionInterval action = CCMoveBy.actionWithDuration(2, new CCPoint(200, 0)); CCActionInterval action_back = (CCActionInterval)action.reverse(); CCActionInterval action_rot = CCRotateBy.actionWithDuration(2, 360); CCActionInterval action_s = CCScaleBy.actionWithDuration(2, 2); CCActionInterval action_s_back = (CCActionInterval)action_s.reverse(); CCActionInterval seq2 = (CCActionInterval)action_rot.reverse(); sprite2.runAction(CCRepeatForever.actionWithAction(seq2)); sprite1.runAction((CCAction)(CCRepeatForever.actionWithAction(action_rot))); sprite1.runAction((CCAction)(CCRepeatForever.actionWithAction((CCActionInterval)(CCSequence.actions(action, action_back))))); sprite1.runAction((CCAction)(CCRepeatForever.actionWithAction((CCActionInterval)(CCSequence.actions(action_s, action_s_back))))); }
public SpriteBatchNodeOffsetAnchorRotation() { CCSize s = CCDirector.sharedDirector().getWinSize(); for (int i = 0; i < 3; i++) { CCSpriteFrameCache cache = CCSpriteFrameCache.sharedSpriteFrameCache(); cache.addSpriteFramesWithFile("animations/grossini"); cache.addSpriteFramesWithFile("animations/grossini_gray", "animations/images/grossini_gray"); // // Animation using Sprite BatchNode // CCSprite sprite = CCSprite.spriteWithSpriteFrameName("grossini_dance_01.png"); sprite.position = (new CCPoint(s.width / 4 * (i + 1), s.height / 2)); CCSprite point = CCSprite.spriteWithFile("Images/r1"); point.scale = 0.25f; point.position = sprite.position; addChild(point, 200); switch (i) { case 0: sprite.anchorPoint = new CCPoint(0, 0); break; case 1: sprite.anchorPoint = new CCPoint(0.5f, 0.5f); break; case 2: sprite.anchorPoint = new CCPoint(1, 1); break; } point.position = sprite.position; CCSpriteBatchNode spritebatch = CCSpriteBatchNode.batchNodeWithFile("animations/images/grossini"); addChild(spritebatch); List <CCSpriteFrame> animFrames = new List <CCSpriteFrame>(14); string str = ""; for (int k = 0; k < 14; k++) { string temp = ""; if (k + 1 < 10) { temp = "0" + (k + 1); } else { temp = k + 1 + ""; } str = string.Format("grossini_dance_{0}.png", temp); CCSpriteFrame frame = cache.spriteFrameByName(str); animFrames.Add(frame); } CCAnimation animation = CCAnimation.animationWithFrames(animFrames); sprite.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animation, false))); sprite.runAction(CCRepeatForever.actionWithAction(CCRotateBy.actionWithDuration(10, 360))); spritebatch.addChild(sprite, i); //animFrames.release(); // win32 : memory leak 2010-0415 } }
public SpriteFrameTest() { CCSize s = CCDirector.sharedDirector().getWinSize(); // IMPORTANT: // The sprite frames will be cached AND RETAINED, and they won't be released unless you call // CCSpriteFrameCache::sharedSpriteFrameCache()->removeUnusedSpriteFrames); CCSpriteFrameCache cache = CCSpriteFrameCache.sharedSpriteFrameCache(); cache.addSpriteFramesWithFile("animations/grossini"); cache.addSpriteFramesWithFile("animations/grossini_gray", "animations/images/grossini_gray"); cache.addSpriteFramesWithFile("animations/grossini_blue", "animations/images/grossini_blue"); // // Animation using Sprite BatchNode // m_pSprite1 = CCSprite.spriteWithSpriteFrameName("grossini_dance_01.png"); m_pSprite1.position = (new CCPoint(s.width / 2 - 80, s.height / 2)); CCSpriteBatchNode spritebatch = CCSpriteBatchNode.batchNodeWithFile("animations/images/grossini"); spritebatch.addChild(m_pSprite1); addChild(spritebatch); List <CCSpriteFrame> animFrames = new List <CCSpriteFrame>(15); string str = ""; for (int i = 1; i < 15; i++) { string temp; if (i < 10) { temp = "0" + i; } else { temp = i.ToString(); } str = string.Format("grossini_dance_{0}.png", temp); CCSpriteFrame frame = cache.spriteFrameByName(str); animFrames.Add(frame); } CCAnimation animation = CCAnimation.animationWithFrames(animFrames); m_pSprite1.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animation, false))); // to test issue #732, uncomment the following line m_pSprite1.IsFlipX = false; m_pSprite1.IsFlipY = false; // // Animation using standard Sprite // m_pSprite2 = CCSprite.spriteWithSpriteFrameName("grossini_dance_01.png"); m_pSprite2.position = (new CCPoint(s.width / 2 + 80, s.height / 2)); addChild(m_pSprite2); List <CCSpriteFrame> moreFrames = new List <CCSpriteFrame>(20); for (int i = 1; i < 15; i++) { string temp; if (i < 10) { temp = "0" + i; } else { temp = i.ToString(); } str = string.Format("grossini_dance_gray_{0}.png", temp); CCSpriteFrame frame = cache.spriteFrameByName(str); moreFrames.Add(frame); } for (int i = 1; i < 5; i++) { str = string.Format("grossini_blue_0{0}.png", i); CCSpriteFrame frame = cache.spriteFrameByName(str); moreFrames.Add(frame); } // append frames from another batch moreFrames.AddRange(animFrames); CCAnimation animMixed = CCAnimation.animationWithFrames(moreFrames); m_pSprite2.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animMixed, false))); // to test issue #732, uncomment the following line m_pSprite2.IsFlipX = (false); m_pSprite2.IsFlipY = (false); schedule(startIn05Secs, 0.5f); m_nCounter = 0; }
public AnimationCache() { CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile("animations/grossini"); CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile("animations/grossini_gray"); CCSpriteFrameCache.sharedSpriteFrameCache().addSpriteFramesWithFile("animations/grossini_blue"); // // create animation "dance" // List <CCSpriteFrame> animFrames = new List <CCSpriteFrame>(15); string str = ""; for (int i = 1; i < 15; i++) { string temp = ""; if (i < 10) { temp = "0" + i; } else { temp = i.ToString(); } str = string.Format("grossini_dance_{0}.png", temp); CCSpriteFrame frame = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(str); animFrames.Add(frame); } CCAnimation animation = CCAnimation.animationWithFrames(animFrames, 0.2f); // Add an animation to the Cache CCAnimationCache.sharedAnimationCache().addAnimation(animation, "dance"); // // create animation "dance gray" // animFrames.Clear(); for (int i = 1; i < 15; i++) { string temp = ""; if (i < 10) { temp = "0" + i; } else { temp = i.ToString(); } str = String.Format("grossini_dance_gray_{0}.png", temp); CCSpriteFrame frame = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(str); animFrames.Add(frame); } animation = CCAnimation.animationWithFrames(animFrames, 0.2f); // Add an animation to the Cache CCAnimationCache.sharedAnimationCache().addAnimation(animation, "dance_gray"); // // create animation "dance blue" // animFrames.Clear(); for (int i = 1; i < 4; i++) { str = String.Format("grossini_blue_0{0}.png", i); CCSpriteFrame frame = CCSpriteFrameCache.sharedSpriteFrameCache().spriteFrameByName(str); animFrames.Add(frame); } animation = CCAnimation.animationWithFrames(animFrames, 0.2f); // Add an animation to the Cache CCAnimationCache.sharedAnimationCache().addAnimation(animation, "dance_blue"); CCAnimationCache animCache = CCAnimationCache.sharedAnimationCache(); CCAnimation normal = animCache.animationByName("dance"); CCAnimation dance_grey = animCache.animationByName("dance_gray"); CCAnimation dance_blue = animCache.animationByName("dance_blue"); CCAnimate animN = CCAnimate.actionWithAnimation(normal); CCAnimate animG = CCAnimate.actionWithAnimation(dance_grey); CCAnimate animB = CCAnimate.actionWithAnimation(dance_blue); CCFiniteTimeAction seq = CCSequence.actions(animN, animG, animB); // create an sprite without texture CCSprite grossini = new CCSprite(); grossini.init(); CCSize winSize = CCDirector.sharedDirector().getWinSize(); grossini.position = (new CCPoint(winSize.width / 2, winSize.height / 2)); addChild(grossini); // run the animation grossini.runAction(seq); }
public SpriteOffsetAnchorScale() { CCSize s = CCDirector.sharedDirector().getWinSize(); for (int i = 0; i < 3; i++) { CCSpriteFrameCache cache = CCSpriteFrameCache.sharedSpriteFrameCache(); cache.addSpriteFramesWithFile("animations/grossini"); cache.addSpriteFramesWithFile("animations/grossini_gray", "animations/images/grossini_gray"); // // Animation using Sprite BatchNode // CCSprite sprite = CCSprite.spriteWithSpriteFrameName("grossini_dance_01.png"); sprite.position = (new CCPoint(s.width / 4 * (i + 1), s.height / 2)); CCSprite point = CCSprite.spriteWithFile("Images/r1"); point.scale = 0.25f; point.position = sprite.position; addChild(point, 1); switch (i) { case 0: sprite.anchorPoint = new CCPoint(0, 0); break; case 1: sprite.anchorPoint = new CCPoint(0.5f, 0.5f); break; case 2: sprite.anchorPoint = new CCPoint(1, 1); break; } point.position = sprite.position; List <CCSpriteFrame> animFrames = new List <CCSpriteFrame>(14); string str = ""; for (int j = 0; j < 14; j++) { string temp = ""; if (j + 1 < 10) { temp = "0" + (j + 1); } else { temp = (j + 1).ToString(); } str = string.Format("grossini_dance_{0}.png", temp); CCSpriteFrame frame = cache.spriteFrameByName(str); animFrames.Add(frame); } CCAnimation animation = CCAnimation.animationWithFrames(animFrames); sprite.runAction(CCRepeatForever.actionWithAction(CCAnimate.actionWithAnimation(animation, false))); CCActionInterval scale = CCScaleBy.actionWithDuration(2, 2); CCActionInterval scale_back = (CCActionInterval)scale.reverse(); CCActionInterval seq_scale = (CCActionInterval)(CCSequence.actions(scale, scale_back)); sprite.runAction(CCRepeatForever.actionWithAction(seq_scale)); addChild(sprite, 0); //animFrames->release(); // win32 : memory leak 2010-0415 } }