cocos2d-x中的鼠标/触摸坐标

Mouse/Touch coordinates in cocos2d-x

本文关键字:触摸 坐标 鼠标 cocos2d-x      更新时间:2023-10-16

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

setTouchEnabled(true);

在我试图获得触摸坐标的地方,我使用

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

然而,它并没有像我所期望的那样起作用。有人知道如何在cocos2d-x(cpp(中准确返回鼠标/触摸坐标吗?

编辑:对不起,我应该澄清一下,我正在VisualStudioExpress环境中的Windows7桌面上工作,我希望这个项目是跨平台的。示例中的hellolua应用程序具有这样的功能,即鼠标单击会将以坐标开头和结尾的触摸事件抛出控制台,即使我使用的是鼠标。这就是为什么我希望我可以在CPP中做一些类似的事情,除了在屏幕上打印坐标。然而,使用这段代码,我会得到x和y的静态值,无论我点击哪里,它们都不会改变。

试试这个代码:

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);
}