阅读更多

转载自:http://www.longhaiqiang.com/android-cocos2d实现:一个图片围绕一个圆心做圆运动/

实现效果:

 

public class CCRoundBy extends CCIntervalAction {    boolean turn;// Forward or Reverse round    float startAngle;// default    float radius;// Round circle radius    CGPoint center;// Round circle center point    public boolean isTurn() {return turn;}public void setTurn(boolean turn) {this.turn = turn;}public float getStartAngle() {return startAngle;}public void setStartAngle(float startAngle) {this.startAngle = startAngle;}public float getRadius() {return radius;}public void setRadius(float radius) {this.radius = radius;}public CGPoint getCenter() {return center;}public void setCenter(CGPoint center) {this.center = center;}/** creates the action */    public static CCRoundBy action(float duration,boolean a,CGPoint point, float r) {        return new CCRoundBy(duration, a, point, r);    }    /** initializes the action */    protected CCRoundBy(float duration,boolean a,CGPoint point, float r) {        super(duration);        turn = a;        radius = r;        center = point;    }    @Override    public void start(CCNode aTarget) {        super.start(aTarget);        startAngle = aTarget.getRotation();        if (turn) {            ((CCNode)aTarget).setPosition(CGPoint.ccpAdd(center, CGPoint.ccp(-radius, 0)));        }        else {            ((CCNode)aTarget).setPosition(CGPoint.ccpAdd(center, CGPoint.ccp(radius, 0)));        }    }    @Override    public void update(float t) {        // XXX: shall I add % 360        float rotate =  (startAngle + 360.0f * t );        if (turn) {            rotate *= -1;        }        target.setRotation(rotate);        float fradian = (float) (rotate * Math.PI / 180.0f);        CGPoint pos = CGPoint.ccp(center.x + radius * MathUtils.sin(fradian),                          center.y + radius * MathUtils.cos(fradian));        target.setPosition(pos);    }    @Override    public CCIntervalAction reverse() {        boolean result = !turn;        return action(duration, result, center, radius);    }}

 

更多相关文章

  1. Android(安卓)textView文字添加图片 imageSpan使用
  2. phonegap sqlite (android)
  3. android之spinner背景、字体颜色
  4. android 关于listview item设置高度的问题解决方法
  5. O1--添加假对焦功能并支持对焦
  6. ViewPager的切换动画
  7. android AlarmManager 的相關應用
  8. Android(安卓)Studio Mac快捷键
  9. Android文本框布局实例

随机推荐

  1. android 数字键盘
  2. android:从ArrayList中获取键值对
  3. 横向 gridView 一行 滚动
  4. Android 保留两位小数点的4种方法
  5. android webview 显示空白页问题解决
  6. Android隐性传值初识
  7. 自定义ListView3
  8. android使用百度地图SDK 去掉百度Logo的
  9. 学习Android(一)
  10. Android(安卓)之 Shape (圆角输入框)