Action 练习
package com.su.cocos2dhelloworld
import org.cocos2d.actions.base.CCRepeatForever
import org.cocos2d.actions.interval.CCFadeIn
import org.cocos2d.actions.interval.CCFadeOut
import org.cocos2d.actions.interval.CCMoveTo
import org.cocos2d.actions.interval.CCRepeat
import org.cocos2d.actions.interval.CCSequence
import org.cocos2d.actions.interval.CCTintBy
import org.cocos2d.actions.interval.CCTintTo
import org.cocos2d.layers.CCLayer
import org.cocos2d.nodes.CCSprite
import org.cocos2d.types.CGPoint
import org.cocos2d.types.ccColor3B
public class GameLayerAnim extends CCLayer {
CCSprite mCCSprite
public GameLayerAnim() {
mCCSprite = CCSprite.sprite("player.png")
mCCSprite.setPosition(300, 300)
this.addChild(mCCSprite)
}
// 精灵淡出
private void fadeOutAction() {
// 传入渐变时间
CCFadeOut mCCFadeOut = CCFadeOut.action(3)
mCCSprite.runAction(mCCFadeOut)
}
// 精灵淡入
private void fadeInAction() {
// 传入渐变时间
CCFadeIn mCCFadeIn = CCFadeIn.action(3)
mCCSprite.runAction(mCCFadeIn)
}
// 将精灵调整到指定颜色值
private void cCTintToAction() {
ccColor3B mccColor3B = ccColor3B.ccc3(255, 0, 0)
CCTintTo mCCTintTo = CCTintTo.action(3, mccColor3B)
mCCSprite.runAction(mCCTintTo)
}
// 当前精灵的颜色之上进行新的颜色偏移
private void tintByAction() {
ccColor3B mccColor3B = ccColor3B.ccc3(255, 0, 0)
CCTintBy mCCTintBy = CCTintBy.action(3, mccColor3B)
mCCSprite.runAction(mCCTintBy)
}
// 重复执行动画
private void repeatAction() {
CGPoint initPoint = CGPoint.ccp(100, 300)
CGPoint targetPoint = CGPoint.ccp(400, 300)
CCMoveTo moveTo1 = CCMoveTo.action(2, targetPoint)
CCMoveTo moveTo2 = CCMoveTo.action(2, initPoint)
CCSequence mCCSequence = CCSequence.actions(moveTo1, moveTo2)
// 执行 3 次
CCRepeat repeat = CCRepeat.action(mCCSequence, 3)
mCCSprite.runAction(repeat)
}
// 无限执行动画
private void repeatForEverAction() {
CGPoint initPoint = CGPoint.ccp(100, 300)
CGPoint targetPoint = CGPoint.ccp(400, 300)
CCMoveTo moveTo1 = CCMoveTo.action(2, targetPoint)
CCMoveTo moveTo2 = CCMoveTo.action(2, initPoint)
CCSequence mCCSequence = CCSequence.actions(moveTo1, moveTo2)
CCRepeatForever repeat = CCRepeatForever.action(mCCSequence)
mCCSprite.runAction(repeat)
}
}