我想做的是:将我触摸屏幕的位置的坐标放入2个浮点数x和y。
我的理解是,要获取我触摸的位置的坐标,我应该使用getLocation()。所以我写了一小段代码:
CCTouch *pTouch;
CCPoint *xy = pTouch->getLocation();
以我的理解(很可能是错误的),应该将变量xy设置为等于触摸屏幕的位置的opengl坐标。如果是这种情况,如何将CCPoint变量转换为float或2(x和y float值)?
最佳答案
这是您可以做的。在场景类的init()函数中添加调用
setTouchEnabled( true );
通过酌情在场景中调用ccTouchBegan,ccTouchMoved,ccTouchCancelled和ccTouchEnded来告诉cocos2d-x关于触摸事件。现在,当调用这些函数时,您将获得一个
cocos2d::CCTouch *touch
您可以用来获取触摸坐标。我在游戏中所做的就是
CCPoint p = touch->getLocationInView();
p = CCDirector::sharedDirector()->convertToGL(p);
和p将包含触摸的坐标。您可以通过执行以下操作获取触摸的x和y坐标的float值:
float x = p.x;
float y = p.y;
希望能有所帮助。 :)
关于c++ - CCPoint进行浮点转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16042949/