1

我正在尝试获取单击位置的 xy 坐标,或者更好的是鼠标指针所在的位置,以便我可以将它们转换为 char 并将它们显示在屏幕上,并且我记得 hellolua 中的某些东西会抛出点击和移动的坐标当点击触摸移动到控制台时,我想也许我可以在 cpp 中使用 cctouch 命令 getLocationInView(); 做类似的事情,这就是我所做的。在初始化中,我声明

setTouchEnabled(true);

以及我试图获取我使用的触摸坐标的地方

CCTouch pTouch;
CCPoint p = pTouch.getLocationInView();
p = CCDirector::sharedDirector()->convertToGL(p);
float x = p.x;
float y = p.y;

但是它没有像我期望的那样工作。有谁知道如何让鼠标/触摸坐标在 cocos2d-x(cpp) 中准确返回?

编辑:对不起,我应该澄清一下,我正在 VisualStudio express 环境中的 windows 7 桌面上工作,我希望这个项目是跨平台的。示例中的 hellolua 应用程序认为,即使我使用的是鼠标,鼠标点击也会以坐标开始和结束到控制台中。这就是为什么我希望我可以在 CPP 中做类似的事情,除了在屏幕上打印坐标。但是,使用此代码,我将获得 x 和 y 的静态值,无论我点击哪里,它都不会改变。

4

1 回答 1

2

试试这个代码:

bool PickCard::ccTouchBegan(CCTouch* touch, CCEvent* event)
{
    CCPoint touchLocation = touch->getLocationInView();
    touchLocation = CCDirector::sharedDirector()->convertToGL( touchLocation );
    touchLocation=convertToNodeSpace(touchLocation);
    CCLOG(" TouchLocation X=%f TouchLocation Y=%f",touchLocation.x,touchLocation.y);
}
于 2014-01-06T12:32:06.750 回答