ユーザーがオブジェクトをパスに沿って最終目標までドラッグできる cocos2d を使用してゲームを構築しようとしています。ドラッグアンドドロップが機能するようになりましたが、パスを実装して、ユーザーがパスから外れると死ぬようにする方法がわかりません。
複数のレベルを持つことができるようにこれを実装する方法はありますか?
ユーザーがオブジェクトをパスに沿って最終目標までドラッグできる cocos2d を使用してゲームを構築しようとしています。ドラッグアンドドロップが機能するようになりましたが、パスを実装して、ユーザーがパスから外れると死ぬようにする方法がわかりません。
複数のレベルを持つことができるようにこれを実装する方法はありますか?
あなたの問題についての私の理解から、あなたはドラッグアンドドロップをまったくしたくありません。代わりに、パスに沿った動きをアクションにし、ユーザーのタッチを使用して、そのアクションに沿った距離を設定します。そうすれば(ビデオで前後にスクラブするように)、ユーザーはオブジェクトのアクションをそのパスに沿ってスクラブできます。
まず、CCBezierToなどを使用して、オブジェクトを目的のパスに沿って移動させます。結果に満足したら、タッチアクションを開始します。ユーザーがオブジェクトに触れたとき、パスに沿ってどれだけ離れているかを知りたいと思います。ここで、0は開始で、1は終了です。次に、数値を1に近づけると、タッチが移動する端点に近づき、始点に近づくにつれて0に近づきます。パスがかなりまっすぐである場合は、開始点と終了点の間の直線上のどこにタッチがあるかを簡単に計算できます。その複雑な曲線が円を描くように言う場合、あなたはいくつかのハードワーク/トリガーを行う必要があります!
次に、タッチが移動すると、オブジェクトの位置をパス上の新しい場所に更新する必要があります。タッチがパスに沿って.75になったことを確認したとすると、オブジェクトが.75*の持続時間にあるはずの位置を確認する必要があります。与えられた経過値の位置を設定できるように、アクションにカテゴリを拡張または追加する必要がある場合があります。
これがあなたを可能な方向に導くことを願っています!