2

最初に、質問のタイトルについてお詫び申し上げます。これに名前を付けるかどうかはわかりませんでした。

とにかく、私はゲームに取り組んでおり、それぞれが多数のペットを飼うことができる多数のプレーヤーがいる可能性があります。プレイヤー クラス、ペット クラス、メイン クラスなど、ゲームの主要な構造を開発しました。そこから、プレイヤーの数と、各プレイヤーが希望するペットの数を尋ねる GUI に取り組んできました。各プレイヤーのペットの作成方法に行き詰まっています。

プレイヤーがペットの種類を選択し、名前を付けてからペットを作成するように求める、かなり基本的なフォームを作成しました。

public  void createPets( final Player player){

//various buttons,comboBox and labels go here
//layout managers
//add it all to a frame

JButton jbCreatePet = new JButton("Create Pet");

jbCreatePet.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        String name = jtfName.toString();

        if (cbSpecies.getSelectedIndex() == 0){
            Alien alien = new Alien();
            alien.setName(name);
            player.getAllPets.add(alien);


        }
        else if(cbSpecies.getSelectedIndex() == 1){
            create other pet2
        }
        else{
            create other pet3
        }
    }
});

player is a Player object passed into the method using a for loop.. 

for (Player player: allPlayers){
    createPets(player);
}

for ループを使用するのは正しくないことがわかりました。たとえば、フォームは単に最後のプレイヤーにスキップし、他のプレイヤーはペットを作成できません..

だから私はいくつかの質問があります:

  1. 作成したペットをすべてのペットのプレイヤー リストに割り当てると、Eclipse から最終的に作成する必要があると通知されました。理由はある程度理解できますが、プレーヤーのパラメーターを最終的なものにすることで、他のプレイ用のペットを作成できなくなり、最初のプレーヤーのみが作成できるようになるのではないかと思っています..

  2. 各プレイヤーにフォームを表示するにはどうすればよいですか。たとえば、ゲーム内の 2 人のプレイヤーが両方とも 2 匹のペットを飼っている場合、プレイヤー 1 がペットを選択し、名前を付けてから作成すると、別のペットを作成する必要があると言われます (フォームが再び表示されます)。そのため、彼は別のペットを作成し、そのプレーヤー 2 は 2 匹のペットを選択して作成する番です...適切なプレーヤー引数を適切なタイミングで createPet メソッドに渡す方法を理解しようとしていると思います...

他に何か明確にしたいことがあれば教えてください...

これを手伝ってくれる人に感謝します!!!!

4

1 に答える 1

4

作成したペットをすべてのペットのプレイヤー リストに割り当てると、Eclipse から最終的に作成する必要があると通知されました。理由はある程度理解できますが、プレーヤーのパラメーターを最終的なものにすることで、他のプレイ用のペットを作成できなくなり、最初のプレーヤーだけが作成できるようになるのではないかと思っています..

Eclipse はこれを必要としません。Javaは、匿名の内部クラス内で Player パラメーターを使用しているため、最終的なものでなければなりません。これは、他のプレイヤーに対して同じ方法を使用することを妨げるものではありません。

各プレイヤーにフォームを表示するにはどうすればよいですか。たとえば、ゲーム内の 2 人のプレイヤーが両方とも 2 匹のペットを飼っている場合、プレイヤー 1 がペットを選択し、名前を付けてから作成すると、別のペットを作成する必要があると言われます (フォームが再び表示されます)。そのため、彼は別のペットを作成し、そのプレーヤー 2 は 2 匹のペットを選択して作成する番です...適切なプレーヤー引数を適切なタイミングで createPet メソッドに渡す方法を理解しようとしていると思います...

メインの Game オブジェクトが上記のすべてを制御しますよね?ループ内に JOptionPane などのモーダル ダイアログを表示する for ループを使用できると思います。

もう 1 つのオプションは、すべてのプレイヤーが自分のペットを入力できる JPanel ビューを作成することです。すべてはあなた次第です。さまざまなアプローチを試してみることをお勧めします。

早い段階で確実に実行したい主なことの 1 つは、プログラムのロジックを GUI から強力に分離することです。たとえば、Player クラスと Pet クラスには GUI に関する知識がなく、Swing コードがまったくないため、Pet を論理的に追加するコードは非 GUI になります (ただし、GUI で使用することはできますし、使用する予定です)。


編集ゲームをプレイするために必要な名前、ペット、およびその他のプロパティを登録するためにプレイヤーが呼び出すことができるまたはメソッドを
Game クラスに与えることを検討してください。次に、JButton が押されたときにこのメソッドを 1 回呼び出します。すべてのプレイヤーが適切に登録されていない限り、ゲームを進行させないでください。registerPlayer(Player player)editPlayer(Player player)

于 2013-05-17T02:51:28.177 に答える