私は少しテキストゲームを作っています。開始ダイアログは私の主な(静的な)方法です。そこから、あなたの選択に応じて他の方法にあなたを送ります。静的メソッドと非静的メソッドでインスタンスを使用する必要があります
今私は、これが動作するには、クラスのインスタンスを持つ必要があると思います。例えば
:
Program p = new Program();
if(stuff){
p.room1();
}
else{
p.room2();
}
それらの他の方法の中では変更されるグローバル変数があります。
だからmainメソッドの上にあります:
public bool hasItem = false;
のでROOM1は()私は、メインメソッドで何かを台無しにしています知っている
public void room1(){
if(stuff){
p.hasItem = true;
}
}
、次のようになります。メインメソッドの内側または外側にインスタンス "p"を宣言しますか?私は両方を試しましたが、両方の方法でエラーが発生します。
編集:他の場所で使用するために、メインメソッド以外の静的な「プログラム」を宣言しました。助けてくれてありがとう!
私はあなたの質問に全く従っていません。問題は、あなたが 'hasItem'を宣言する場所を知らないということですか?私はあなたが* item *を持っているもの(部屋、世界、プレーヤー、何でも)を表すオブジェクトのメンバ変数として宣言することをお勧めします。 –
私はそれが方法の外で宣言することによってそれをしたと思った。そうじゃないの? – coinbird