1

クリックした場所、またはマウスポインターの場所のxy座標を取得しようとしています。これにより、それらをcharに変換して画面に表示できます.helloluaでクリックと動きの座標を投げていることを覚えていますコンソールへのタッチの動きとしてクリックされている間、cppでcctouchコマンドgetLocationInView();を使用して同様のことができるのではないかと考え、これが私がしたことです。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)でマウス/タッチ座標を正確に返す方法を知っている人はいますか?

編集:申し訳ありませんが、明確にする必要がありました.VisualStudioエクスプレス環境の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 に答える