cocos2d游戏 旋转角度
来源:互联网 发布:小猪cms多少钱 编辑:程序博客网 时间:2024/04/28 01:42
为了旋转,我们首先需要计算出旋转的角度。为了解决这个问题,想想我们在高中时候学过的三角代数吧。还记得sin cos tan吗?为了便于理解,下面使用一张图来解释一下:tan = 对面/邻边。
如上所示,我们想要旋转的角度是arctangent(angle),即对offY/offX求arctangent运算。
然而,这里还有两件事情,我们需要放在心上。首先,当我们计算actangent(offY/offX)的时候,这个结果是弧度,但是cocos2d使用的却是角度。还好,cocosd2d提供了一个非常方便的宏,可以使得角度和弧度之间方便转化。
第二点,我们假定上面的图中angle的偏转是正20度,但是,cocos2d里面顺时针方向为正(而不是上图所示的逆时针为正)。让我们看到下面这个图:
因此,为了得到正确的方向,我们把运算结果乘以一个-1就可以了。比如,如果我们把上面那幅图片里的角度乘以-1的话,我们就得够得到-20度,这个角度其实就是逆时针方向的20度。(感觉老外说话好啰嗦啊,聪明的读者恐怕早就明白了吧!:)
好了,讲得够多了!让我们来写一点代码吧。在ccTouchesEnded里面加入以下代码,添加位置在你的projectile runAction之前。
float angleRadians= atanf((float)offRealY/ (float)offRealX);
float angleDegrees= CC_RADIANS_TO_DEGREES(angleRadians);
float cocosAngle= -1* angleDegrees;
_player.rotation = cocosAngle;
编译并运行工程,现在我们的炮塔在射击的时候可以改变方向了。
如果想在旋转时加上动画这个action:
[CCRotateTo actionWithDuration:rotateDuration angle:cocosAngle],
原文链接地址:http://www.raywenderlich.com/692/rotating-turrets
- cocos2d游戏 旋转角度
- cocos2d 中精灵旋转角度
- cocos2d-x-3.2塔防游戏开发2:建塔、角度的旋转、发射箭
- cocos2d-x Sprite旋转角度坐标系
- Cocos2D旋转炮塔到指定角度(一)
- Cocos2D旋转炮塔到指定角度(二)
- Cocos2D旋转炮塔到指定角度(三)
- cocos2d中的旋转和直线移动(角度,弧度)
- cocos2d中的旋转和直线移动(角度,弧度)
- 旋转动画加载, 旋转角度
- [cocos2d-x] 让精灵响应触摸 并把方向旋转到相对应的角度
- cocos2d-x让精灵响应触摸 并把方向旋转到相对应的角度
- [cocos2d-x-教程] 让精灵响应触摸 并把方向旋转到相对应的角度
- cocos2d-x-教程 让精灵响应触摸 并把方向旋转到相对应的角度
- 制作了一个cocos2d-x下沿y轴旋转任意角度的精灵对象
- 制作了一个cocos2d-x下沿y轴旋转任意角度的精灵对象
- cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)
- [cocos2d-x]捕鱼达人炮台射击角度的旋转实现
- Java Web Service之客户端实现
- 关于api hook的知识整理
- 队列类模板
- LRU算法的解释——android数据库缓存中用到的原理
- 函数指针声明时的形参列表可以没有
- cocos2d游戏 旋转角度
- gvim+ctags in windows
- Linux下常用压缩格式的压缩与解压方法
- linux下整站下载
- C++ Primer 之队列类模板
- 商务签证的准备工作(2)——DS-160表格的填写
- Python学习---读过《深入Python3》有感2
- contacts里QuickContactBadge弹出窗口
- Firefox7来了,你的上传图片及时预览功能还能Hold住吗?