Android Cocos2d实现:一个图片围绕一个圆心做圆运动

Android Cocos2d实现:一个图片围绕一个圆心做圆运动

转载自: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);
    }
}
时间: 2024-09-11 13:04:13

Android Cocos2d实现:一个图片围绕一个圆心做圆运动的相关文章

android传递数据-android将一个活动的图片传递给下一个活动显示

问题描述 android将一个活动的图片传递给下一个活动显示 在indexactivity中用Gallery显示菜品的图片和价格菜品是一个对象,在gallery中获取到了每一个菜品对象,传递到了下一个活动,图片的uri是一个字符串对象(drawable://2130837591)在下一个活动中我可以得到菜品对象,但是怎么把字符串的图片地址转华为图片显示呢,希望各位前辈耐心解答哈,不剩感激 解决方案 [Android]13.向下一个活动传递数据Android知晓当前是在哪一个活动 解决方案二: 图

隐藏-Android中的webview加载完成前后如何用一个图片来进行遮挡加载延迟的闪烁

问题描述 Android中的webview加载完成前后如何用一个图片来进行遮挡加载延迟的闪烁 用webview加载一个链接,但因为网速或者网页内容等问题,出现延迟,但是如果直接打开APP就开始加载的话,如果用户没有网络的情况下打开APP就什么都看不到了.所以想整个LOGO之类的全屏图片,等加载完成了之后再隐藏这个图片.该怎么实现,着急,在线等..... 解决方案 做个全屏的layout,等webview加载完就隐藏掉,在onPageFinished里处理 加载前可以先判断网络是不连通,不通就显示

自定义-跪求 Android触控高手 帮忙决绝一个图片手势滑动越界的处理

问题描述 跪求 Android触控高手 帮忙决绝一个图片手势滑动越界的处理 我直接发源码给你,里面就是我写的几个自定义ImageView,移动和缩放都已经写好可,就是移动过程中的越界不会处理,求好人帮助一下! 解决方案 您好,问题解决了吗?没解决的话,把源码贴出来,我们可以共同探讨一下 解决方案二: 您好,问题解决了吗?没解决的话,把源码贴出来,我们可以共同探讨一下

缩放-android一个图片放大功能的实现,求思路

问题描述 android一个图片放大功能的实现,求思路 就像手机QQ那样,点一张别人发的图片进入一个Activity,可以随意缩小放大那张图片的功能是怎么实现的??? 解决方案 http://www.cnblogs.com/linjzong/p/4211661.html 解决方案二: http://blog.csdn.net/u011596810/article/details/47173785 里面的代码亲测有用,而且是个独立的封装类,又有蛮多的注释,楼主可以尝试看看 解决方案三: 可以看看我

代码-Android中GridView中当我删除某一个图片时图片缓存清空,图片位置上显示背景图

问题描述 Android中GridView中当我删除某一个图片时图片缓存清空,图片位置上显示背景图 请问如何实现我是新手,最好有个详细的代码给我做个参考谢谢大家 解决方案 把数据源中的图像连接去掉,然后notify,getview中判断,如果图像连接没有,就显示默认图片 解决方案二: 那么怎么清除数据源那,我是个新手对代码还不是很熟 解决方案三: 删除后,手动把背景图设置上去-- 解决方案四: 谁能写个代码例子给我参考一下,只是告诉我方式我不知道改怎么做.谢谢大家了 解决方案五: 你重新吧背景图

android实现一个图片验证码倒计时功能

1.如图所示,要实现一个验证码的倒计时的效果 2.实现 图中获取验证码那块是一个button按钮 关键部分,声明一个TimeCount,继承自CountDownTimer /*验证码倒计时*/ private class TimeCount extends CountDownTimer{ /** * @param millisInFuture 总时间长度(毫秒) * @param countDownInterval 时间间隔(毫秒),每经过一次时间间隔都会调用onTick方法 */ public

浅谈Android获取ImageView上的图片,和一个有可能遇到的问题

1.在获取图片前先调用setDrawingCacheEnabled(true)这个方法: 举例:mImageView.setDrawingCacheEnabled(true); 2.之后可以通过getDrawingCache()获取图片 举例:Bitmap obmp = Bitmap.createBitmap(mImageView.getDrawingCache());  //获取到Bitmap的图片 3.获取完图片后记得调用setDrawingCacheEnabled(false) 举例:mI

android 视频-将视频截图的图片 和一个按钮做一个adapter

问题描述 将视频截图的图片 和一个按钮做一个adapter 给一个学习软件添加一个功能,在一个列表中(其实就是一个适配器),右边点击进入视频,左边点击按钮进入另外一个页面做题.但是右边图片,我想用一个视频截图来表示(用户体验好一点),当点击后,开始播放视频,问题来了,进入这个页面时,列表自动刷新,我怎么获取到视频的截图呢,在播放之前就得获取.请大家指教一下 解决方案 把两个控件组合起来做一个控件 解决方案二: 如何做一个按钮二个事件

android中的动画可以改变一个view的高和宽吗?

问题描述 android中的动画可以改变一个view的高和宽吗? 简单点说把,就是在android中通过动画可以改变这个对象的高度和宽度吗?举个例子,现在有一个图片,是imageview,我可不可以给他做一个动画让他高度变大?这个变大是指他实际占用的位置,比如这个imagview我在xml里配置的是200dip,通过动画我可以让他再动画结束后的高度变成500dip吗? 解决方案 类似效果,你的动画改变view布局参数,应该对imageView应用新的布局参数. 创建应用新布局参数(lp)的自定义