3

SneakyInput ジョイスティックを使用してスプライトを移動し、TMX マップをゲームに使用しています。アプリに auto-camera-movement を追加したので、ヒーロー スプライトは常に表示されます。マップを移動すると、ジョイスティックが画面から消えます (元の位置にとどまります)。ジョイスティックが常に同じ位置にあり、マップと一緒に動かないように HUD を作成しました。ジョイスティックは問題なく画面に表示されますが、ドラッグしてもヒーローが動きません。

HUDLayer を GameLayer の CCLayer にしました。ここでmoveHeroメソッドを作成しています。ジョイスティックは機能しますが、マップ上で動かすと自動カメラ移動が機能しますが、ジョイスティックは同じ位置にとどまり、すぐに見えなくなります。問題は、センターとして[self setCenter....blah blah blah];設定するだけでなく、行うことです。ではなくLevel1のカメラのみを移動するにはどうすればよいですか?Level1HUDLayer

4

1 に答える 1

1

これは、このクラスの使用方法について見つけたリンクです。それはかなり簡単に思えます。- (void)moveHeroメソッドを次のように変更したいと思います。

- (void)moveHero; {
  [self applyJoystick:leftJoystick toNode:hero forTimeDelta:1.0/60.0f]];
}

を初期化したときに、左のジョイスティックへの参照を既に保持しているようですHUD

これらの 2 つのポイント (ジョイスティックと他のアイテム) に基づいてレイヤーを中央に配置する場合HUDは、それらを 2D グリッドに配置し、そこから中心点を計算するだけです。横向きモードの iPhone 画面で作業していると仮定します。寸法は 480x320 です。この画面の中心は (240, 160) なので、この中心をジョイスティックやその他のHUDアイテムに使用します。したがって、おそらくジョイスティックを (10, 10) に設定し、他のアイテム (このアイテムの寸法を (x, y) と仮定) を ((470 - x), 10) に設定します。それらの周りに 10 ピクセルのボーダー。

それが役立つことを願っています!

于 2011-09-09T05:02:23.080 に答える