0

ファイナル ファンタジー タクティクスのようなターン制のシステムを作りたかったのです。5x5 タイル グリッドであるマップと、各キャラクターがタイルの最後に配置されるキャラクターを既に作成しました。と という名前の 2 つのチームがRedありYellowます。

------Red-------:

最初の文字は0,0です。2 番目の文字は0,1. Third character is at0.2 , fourth character is at0.3 , and the last one is at0.4` です。

-----Yellow------:

最初の文字は5.0です。2 番目の文字は5.1です。3 文字目は at 5.2、4 文字目は at 5.3、最後の文字は at5.4です。

Redチームが最初に動いて決定を下す (攻撃か待機か)、Redチームの 5 人のキャラクターが既に決定された後、Yellowチームが決定を下すチーム (Yellowチームは AI)を望んでいました。

しかし、マウスの左ボタンをクリックしてキャラクターを次のグリッド (例: 0,0 から 0,1) に移動する方法と、(移動選択を選択したときに) グリッドを表示する方法がわかりません。キャラクターが移動できるタイルの数を示します。

これについて知っている人はいますか?または、これについてもっと知るにはどうすればよいですか?おすすめの本やウェブはありますか?

4

1 に答える 1

1

基本的なデータ構造のセットアップは完了しましたが、そのデータを操作するためのより高度なコードを取得する必要があります。

まず、マウスでグリッド上の場所を選択する作業を行う必要があると思います。クリックしてそのグリッド座標を変数に保存できるようになったら、キャラクターを移動する関数を設定する必要があります。(キャラクター上で) 最初のクリックの後、有効な動きを確認する必要があり、有効な動きごとに、グリッドの四角形に画像をレンダリングする (または四角形のテクスチャを強調表示する) 必要があります。

次に、誰が次に動くかに従って、各チームのすべてのキャラクターを反復処理する関数が必要です。Red.length (赤は各プレイヤーで構成される配列) を通過したら、Yellow.length のカウントに切り替えて、各キャラクターの AI を実行します。2 人用のゲームを作成しようとしている場合は、代わりに、黄色のチームに対してもう一度ユーザー入力を求めます。

グリッドを表示する方法を学び、グリッド上の正方形を強調表示する簡単な方法を設定することをお勧めします。その後、マウス座標をグリッド座標に変換する必要があります。チームはそれぞれ文字の配列である必要があります。私は actionscript に詳しくありませんが、私が知っている言語では、次のようになります。

team[6] = {Character1, Character2, Character3... }
Character1.position = {x, y}

ターンを実行すると、次のようになります。

while battle == not finished {
    for (i = 0; i < red.length; i++) {
        getInput();
        move(red[i], newX, newY); //red[i].position = {newX, newY}
    }
    for (i = 0; i < yellow.length; i++) {
        runAI();
        move(yellow[i], newX, newY);
    }
}

最も難しい部分は、マウスの選択とグリッド/文字の描画です。グラフィックはいつも邪魔です。データ自体は少し考える必要があります。特にあなたの質問は、ゲームのプログラミングに関するもののようです。私のアドバイスは、グリッドを作成してから、グリッドを表示する方法を理解することです。次に、マウス入力を取得します。最後に、文字の移動と正方形の強調表示について心配します。

于 2013-09-18T04:33:05.763 に答える