0

タイルゲームのワールド座標としてタッチ位置を変換したいと思います。このコードで、私は画面の右側をクリックしました(私のキャラクターがタイルゲームを歩き、背景がゆっくりと左に移動するように):

- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    for( UITouch *touch in touches ) {
        CGPoint location = [touch locationInView: [touch view]];

        location = [[CCDirector sharedDirector] convertToGL: location];
        CGPoint test = [self convertToWorldSpace:location];

        CCLOG(@"test : %.2g", test.x);

testログは私に与えます:

50、72、1e + 02、2.6e + 02、4.2e + 02、(そしてダウン)3.2e + 02、9.5、-1.9e+02など。

誰かが理由を知っていますか?タッチの「実際の」座標を計算して、キャラクターがいつ続行する必要があるか(実際の位置の右側をクリック)、またはキャラクターが向きを変えて後方に移動する必要があるかどうかを確認したいと思います。(実際の位置の左側をクリックします

ご協力いただきありがとうございます

4

2 に答える 2

1

cocos2dで行っていることはすべて、単一のOpenGLビューで行います。したがって、シーンまたはシーンのサイズのレイヤーによるタッチを処理する場合は、これらの線を呼び出すだけで十分です。

    CGPoint location = [touch locationInView: [touch view]];
    location = [[CCDirector sharedDirector] convertToGL: location];

タッチ位置を画面に関連付けます。convertToWorldSpaceローカルノードの座標をワールド座標に変換するだけです

于 2012-06-25T10:00:10.580 に答える
1

印刷されたこれらの数値は問題ないように見えますが、件名に関するApple のドキュメント%gによると、フォーマット指定子を使用しています。

64 ビット浮動小数点数 (倍精度浮動小数点数)。指数が -4 未満または精度以上の場合は %e のスタイルで出力され、それ以外の場合は %f のスタイルで出力されます。

それがあなたが望むものでない限り%f、科学的表記法で数値を生成しない代わりに使用する必要があります。

于 2012-06-25T04:35:21.283 に答える