1

ゲームのジオメトリ戦争のように、画面上でオブジェクトを動かそうとしています。オブジェクトをうまく回転させることはできますが、向いている方向に基づいてオブジェクトを動かすことができないようです。私はこれを行うのに適していると思うこのコードをここに持っていますが、構文エラーが発生し続けます:

spriteObject.x = spriteObject.x + speed*cos(Angle)
spriteObject.y = spriteObject.y + speed*sin(Angle)

エラーは、「構造体または共用体にないメンバー x の要求」です。Objective-c/cocos2d 構文でこれを行うにはどうすればよいですか?

4

1 に答える 1

1

スプライト クラスのドキュメントを見ると、次のことを行う必要があります。

float angle = spriteObject.rotation
spriteObject.position.x = spriteObject.position.x + speed*cos(angle)
spriteObject.position.y = spriteObject.position.y + speed*sin(angle)

編集(コメントに応じて):

iPhone 用にプログラミングしているようです。つまり、以前にリンクしたものではなく、 iphoneのcocos2d ライブラリを使用する必要があります。

iPhone バージョンは Objective-C 言語を使用するのに対し、元の cocos2d は Python を使用するため、コード例と同様に構文も異なります。

Google コードには、iPhone バージョンの cocos2d に関する優れたドキュメントがあり、サンプル コードも含まれています。

そのサンプル コードに基づいて、次の操作を行う必要があります。

float newX = spriteObject.position.x + speed * cos(angle);
float newY = spriteObject.position.y + speed * sin(angle);
spriteObject.position =  ccp( newX, newY );
于 2009-07-16T18:36:10.360 に答える