CCPoint到float的转换
CCPoint to float conversion
我想做的是:把我触摸屏幕的坐标放入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相关文章:
- 没有从阵列<float>到阵列<int>的可行转换
- 没有合适的构造函数可以从"float"转换为"_D3DCOLORVALUE"
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- 如何将 qml 的文本转换为 float 和 int
- 错误:无法将"float*"转换为"float"
- 缩小从double到float的转换
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 如何有效地将一个大std::字符串的一部分转换为float
- 如何使用 std:from_chars 在 C++17 中从字符串转换为 int/float
- C++优化从 int 到 float 的数组转换
- OpenCL 将 float16 转换为 float*
- 在 C++ 中从 'const float*' 到 'float*' 的转换无效
- 如何修复"无法在初始化时将'Tmp'转换为'float'
- 如何将 std::array<double, 100> 转换为 std::array<float, 100> ?(避免明显的样板实现)
- 如何将可变字符串[]转换为float
- 警告:从 'char *' 到 'float *' 的强制转换将所需的对齐从 1 增加到 4 [-Wcast-align]
- 有没有一种优雅的方法可以将矢量<复杂<float>>转换为矢量<short>?
- MBED RTOS将Float转换为字符串/字符阵列
- 不知道参数 1 从 sf::Vector2i 到 const sf::Vector2i& 的转换<float>
- 显式类型转换 float(intvar) 结果为 int