ios的租云服务器价格什么时候能开

主题 : cocos2d CCRotateTo 旋转角度问题!!!
级别: 新手上路
可可豆: 34 CB
威望: 34 点
在线时间: 47(时)
发自: Web Page
cocos2d CCRotateTo 旋转角度问题!!!&&&
旋转的时候碰到很奇怪的问题
flaoat rotateangle=360;///////就是这个角度有问题
CCRotateTo *actionRotate =[CCRotateTo actionWithDuration:1 angle:rotateangle];
CCCallFuncN *call=[CCCallFuncN actionWithTarget:self selector:@selector(removeObj:)];
CCAction * action = [CCSequence actions:actionRotate, actionRotate,call, nil];
[obj runAction:action];
我的本意是这样,希望能让这个精灵旋转一圈。但是这样写根本不旋转,那么我就得到结论,输入任何角度都相当于%360,
而且,我也尝试了,rotateangle=370的话,旋转10度。
而且,我也尝试了,rotateangle=450的话,旋转90度。
但是,!!!!!但是,如果我把rotateangle=1000; 那么这个精灵就要旋转接近3圈!!!!我了个去,
按道理只旋转度啊!!!为什么啊??!!!
哪个大哥告诉我
级别: 骑士
可可豆: 370 CB
威望: 725 点
在线时间: 1408(时)
发自: Web Page
用CCRoteBy
by是相对的,to是绝对的
级别: 新手上路
可可豆: 28 CB
威望: 28 点
在线时间: 12(时)
发自: Web Page
问题解决了吗。。。。期待
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版cocos2d-x中实现CCNode围绕各轴旋转
//___________________________________________________________________________________________
//围绕X轴顺时针旋转指定角度,角度为负时逆时针旋转
void CBaseSprite::SetRotateX(float fa)
float ra = (float)CC_DEGREES_TO_RADIANS(fa);
& & float i = sinf(ra) *
CCCamera::getZEye();
& & float j = cosf(ra) *
CCCamera::getZEye();
getCamera()-&setEyeXYZ(0, i, j);
//___________________________________________________________________________________________
//围绕Y轴顺时针旋转指定角度,角度为负时逆时针旋转
void CBaseSprite::SetRotateY(float fa)
float ra = (float)CC_DEGREES_TO_RADIANS(fa);
& & float i = sinf(ra) *
CCCamera::getZEye();
& & float j = cosf(ra) *
CCCamera::getZEye();
getCamera()-&setEyeXYZ(i, 0, j);
//___________________________________________________________________________________________
//围绕Z轴顺时针旋转指定角度,角度为负时逆时针旋转
void CBaseSprite::SetRotateZ(float fa)
setRotation(fa);
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ COCOS2D中对精灵的操作、对图片的各种操作
类型:文件处理大小:7.4M语言:中文 评分:6.6
于精灵的各种操作,总结一下以便以后复习查找。内容简要:1、初始化 2、创建无图的精灵 3、设置精灵贴图大小 &4、添加入层中5、对精灵进行缩放 &6、对精灵款或高进行缩放 &7、旋转精灵8、设置精灵透明度 &9、精灵的镜像反转 &10、设置精灵的颜色11、得到图的宽高 & 12、按照像素设定图片大小 &13、在原有的基础上加xy的坐标14、设置图片锚点 & &15、从新排列z轴顺序 & 16、更换精灵贴图17、设置可视区域 18、贴图无锯齿//初始化CCSprite* sprite =[CCSprite spriteWithFile:@&Icon.png&];&//创建无图的精灵CCSprite*sprite2 =[CCSprite node];//设置精灵贴图大小sprite2.textureRect=CGRectMake(0, 0, 20, 20);//设置其为宽20,高20.//添加入层中[self addChild:sprite&z:2]; //将精灵加入层中设置其z轴为2//对精灵进行缩放sprite.scale=2;//放大2倍//对精灵款或高进行缩放sprite.scaleX = 2;//宽放大2倍&sprite.scaleY = 2;//高放大2倍//旋转精灵sprite.rotation=90;//旋转90度//设置精灵透明度sprite.opacity=255;//设置透明度为完全不透明(范围0~255)//定义精灵位置sprite.position=ccp(100,100);//设置精灵中心点坐标是x=100,y=100//精灵的镜像反转[sprite setFlipX:YES];//X轴镜像反转[sprite setFlipY:YES];//Y轴镜像反转//设置精灵的颜色[sprite setColor:ccc3(255, 0, 0)];//设置颜色为红色//得到图的宽高float &contentSize&&=&sprite&.contentSize.width //得到图片的宽高//按照像素设定图片大小sprite.scaleX=(20)/contentS //按照像素定制图片宽高//在原有的基础上加xy的坐标sprite.position = ccpAdd(sprite.position,ccp(20,20));//在原有坐标的基础上加减坐标//设置图片锚点[sprite&setAnchorPoint:ccp(0.5,0.5)&];//设置图片的锚点//从新排列z轴顺序[self reorderChild:sprite z:1];//从新排列z轴顺序//更换精灵贴图CCTexture2D * =[[CCTextureCache sharedTextureCache] addImage: @&test.png&];//新建贴图[sprite&setTexture:test];&//更换精灵贴图,加载帧缓存,这个test.plist保存了fram这张图[[CCSpriteFrameCache sharedSpriteFrameCache] addSpriteFramesWithFile:@&test.plist&];CCSpriteFrame* frame = [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:@&fram.png&];[sprite2 setDisplayFrame:frame];//设置可视区域CCSprite * sprite3 =[CCSprite spriteWithFile:@&icon.png& rect:CGRectMake(0, 0, 20,20)];//创建时设置[sprite3 setTextureRect:CGRectMake(10, 10, 30, 30)];//创建后设置//贴图无锯齿[sprite3&.texture setAliasTexParameters];
11-0408-1805-1206-0410-1905-1101-2201-2101-1701-13
阅读本文后您有什么感想? 已有23人给出评价!
名称大小下载主题 : 精灵绕x轴3d旋转任意角度
级别: 侠客
可可豆: 429 CB
威望: 494 点
在线时间: 1203(时)
发自: Web Page
来源于&&分类
精灵绕x轴3d旋转任意角度&&&
怎样实现精灵绕x轴3D旋转任意角度啊??急。。。。。。。。。。
级别: 骑士
UID: 34816
可可豆: 468 CB
威望: 587 点
在线时间: 687(时)
发自: Web Page
使用setRotation3D
级别: 侠客
可可豆: 429 CB
威望: 494 点
在线时间: 1203(时)
发自: Web Page
回 1楼(lion) 的帖子
我用的是cocos2dx 2.2.5&&&& 这个setRotation3D应该是3.x里的把 我在2.2.5里用不了
级别: 侠客
UID: 249218
可可豆: 318 CB
威望: 312 点
在线时间: 136(时)
发自: Web Page
以前的版本可以这样:local camera = myNode:getCamera();local sy = math.sin(math.rad(-20));local sz = math.cos(math.rad(-20));camera:setEye(0, sy, sz);camera:setCenter(0, 0, 0);不知道2.2.5里Node的getCamera()这些还在不在了,楼主可以看一下如果没有的话,ActionCamera里应该还有setEye,可以照着修改个action类试试,想再方便点,研究下Matrix吧。。
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版cocos2d-x(153)
制作了一个cocos2d-x下沿y轴旋转任意角度的精灵对象
闲来无事,想了想cocos2d-x下精灵对象好像不能沿y轴旋转,使用CCSprite的setSkewY函数想做成类似的旋转效果简直没法看,其实实现起来不难,就自己写了点小玩意,分享一下。
运行效果如上,右上是使用setSkewY的效果,另外两个是我自己实现的旋转效果(PS:贝璐丹迪好可爱)
话不多说,上代码:
//cwSprite3D.h///////////////////////////////////////////////////////////////////////////////
#ifndef _cwSprite3D_h_
#define _cwSprite3D_h_
#include &cocos2d.h&
using namespace cocos2d;
class cwSprite3D : public CCSprite
static cwSprite3D* create(const char *pszFileName);
//沿Y轴旋转degree角度
void rotateY(float degree);
protected:
//四个顶点数据原始值
ccV3F_C4B_T2F_Quad m_sQuadO
//cwSprite3D.cpp//////////////////////////////////////////////////////////////////////////////
#include &cwSprite3D.h&
cwSprite3D* cwSprite3D::create(const char *pszFileName)
cwSprite3D *pobSprite = new cwSprite3D();
if (pobSprite && pobSprite-&initWithFile(pszFileName))
//保存顶点原始数据
& pobSprite-&m_sQuadOri = pobSprite-&m_sQ
pobSprite-&autorelease();
return pobS
CC_SAFE_DELETE(pobSprite);
return NULL;
//沿Y轴旋转degree角度
void cwSprite3D::rotateY(float degree)
static float fRadSeed = 3.1f;
//创建个旋转矩阵
kmMat4Identity(&kMat);
kmMat4RotationY(&kMat, degree*fRadSeed);
ccVertex3F* v[4] = {&m_sQuad.bl.vertices, &m_sQuad.br.vertices, &m_sQuad.tl.vertices, &m_sQuad.tr.vertices};
ccVertex3F* vOri[4] = {&m_sQuadOri.bl.vertices, &m_sQuadOri.br.vertices, &m_sQuadOri.tl.vertices, &m_sQuadOri.tr.vertices};
//向量矩阵相乘
for(int i = 0; i & 4; ++i) {
& float x = kMat.mat[0]*vOri[i]-&x + kMat.mat[4]*vOri[i]-&y + kMat.mat[8]*vOri[i]-&z + kMat.mat[12];
& float y = kMat.mat[1]*vOri[i]-&x + kMat.mat[5]*vOri[i]-&y + kMat.mat[9]*vOri[i]-&z + kMat.mat[13];
& float z = kMat.mat[2]*vOri[i]-&x + kMat.mat[6]*vOri[i]-&y + kMat.mat[10]*vOri[i]-&z + kMat.mat[14];
& v[i]-&x =
& v[i]-&y =
& v[i]-&z =
代码很简单,在初始化的时候保存了顶点原始数据,目的是在计算旋转后坐标时,使用原始值计算变换后的坐标数据(float容易失真的,嘎嘎)。
rotateY函数就是绕Y轴旋转了,也很简单,创建了一个矩阵,然后乘以顶点,得到旋转后的新顶点,矩阵使用cocos2d-x自带的kazmath库(PS:一直以来对opengl下的列向量感觉是不太舒服,没数学天分-_-!)
代码中使用也很简单
/////HelloWorld::init()////////////////////////////////////////////////////////////////////
//setSkewY效果
CCSprite* pTest = CCSprite::create(&godness.png&);
& pTest-&setPosition(ccp(size.width*0.7, size.height*0.75));
& this-&addChild(pTest);
& pTest-&setSkewY(25.0);
//两张旋转图片
& p3D1 = cwSprite3D::create(&godness.png&);
& p3D1-&setPosition(ccp(size.width*0.3, size.height*0.5));
& p3D1-&rotateY(0);
& this-&addChild(p3D1);
& p3D2 = cwSprite3D::create(&godness.png&);
& p3D2-&setPosition(ccp(size.width*0.6, size.height*0.25));
& p3D2-&rotateY(0);
& this-&addChild(p3D2);
//角度计数器
& fDegree1 = 0;
& fDegree2 = 0;
& this-&scheduleUpdate();
///////////////////////////////////////////////////////////////////////
void HelloWorld::update(float dt)
fDegree1 += 10.0*
fDegree2 -= 10.0*
p3D1-&rotateY(fDegree1);
p3D2-&rotateY(fDegree2);
我在HelloWorld中增加了update函数,目的是以每秒10度的速度旋转两张图片。
鼓捣了一个多小时,找贝璐丹迪图片找了半个小时,我硬盘好乱-_-!
洗洗睡了&_&
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:149823次
积分:2019
积分:2019
排名:第17768名
转载:304篇
(1)(1)(2)(1)(12)(6)(4)(3)(3)(2)(1)(5)(9)(21)(18)(58)(115)(11)(18)(20)

我要回帖

更多关于 租云服务器价格 的文章

 

随机推荐