CCPoint到float的转换

CCPoint to float conversion

本文关键字:转换 float CCPoint      更新时间:2023-10-16

我想做的是:把我触摸屏幕的坐标放入2个浮点数,x和y。

我所理解的是,获得坐标的地方我触摸我应该使用getLocation()。所以我写了一小段代码:

CCTouch *pTouch;
CCPoint *xy = pTouch->getLocation();

我如何理解它(这很可能是错误的),这应该有变量xy设置为等于触摸屏幕的opengl坐标。如果是这种情况,我该如何将这个CCPoint变量转换为一个或两个浮点数(x和y浮点值)?

你可以这样做。在场景类的init()函数中添加调用

setTouchEnabled( true );

告诉cocos2d-x通过在场景中适当地调用ccTouchBegan, ccTouchMoved, ccTouchCancelled和ccTouchEnded来告诉你关于触摸事件。当这些函数被调用时你会得到一个

cocos2d::CCTouch *touch

你可以用它来获取触摸坐标。我在游戏中所做的是

CCPoint p = touch->getLocationInView();
p = CCDirector::sharedDirector()->convertToGL(p);

和p将包含触摸的坐标。你可以通过

操作获得触摸的x和y坐标的浮动值
float x = p.x;
float y = p.y;

希望有帮助。:)

试试这个:

float x,y;
x = *xy->x;
y = *xy->y;

PS:更推荐使用getLocationInView(),因为该函数将以屏幕坐标返回位置,这是cocos2d-x主要使用的。你不需要将OpenGL坐标转换为屏幕坐标。

:

http://www.cocos2d-x.org/reference/native-cpp/de/d9b/classcocos2d_1_1_c_c_touch.html