iphone - 如何获取世界坐标上的点击位置?

标签 iphone cocos2d-iphone box2d

我们能知道我们在 box2d 世界上点击过(触摸过一次)的位置吗?如,location = [self ConvertCoordToLayer:location]; location.x,location.y 返回屏幕坐标。那么有没有什么方法可以获取世界坐标呢?

最佳答案

这取决于您如何将物理世界和图形关联起来。通常,将相对于图层的触摸位置除以 PTM_RATIO 就足够了:

    CGPoint touchLocation = [touch locationInView:[touch view]];
    touchLocation = [[CCDirector sharedDirector] convertToGL:touchLocation];
    CGPoint nodePosition = [self convertToNodeSpace: touchLocation];
    b2Vec2 pos(nodePosition.x/PTM_RATIO, nodePosition.y/PTM_RATIO);

关于iphone - 如何获取世界坐标上的点击位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6188975/

相关文章:

iphone - 更改iOS6中的蓝色状态栏

iphone - 如何按升序或降序对对象的 NSMutableArray 进行排序

ios - Cocos2D v2 中的 "Semantic error: Redefinition of ' __ccContentScaleFactor ' with a different type"

ios - 清除UIWindow cocos2d场景

java - Libgdx Box2d body 沿线性方向移动?

java - 反弹弹?

iphone - 如何从数组中解析的 JSON 中选择图像

iphone - UIMenuController 没有出现

iphone - 适用于 iPhone 的 cocos2d - 缩放后触摸不再正常工作

java - JBox2d - world.getBodyList() 进入无限循环