我正在使用Windows Forms Apps从事C#游戏,并且我有一个名为“ Game”的表单,其中包含以下内容(这只是完整代码的一部分):
public Game()
{
InitializeComponent();
}
public void Button1_Click(object sender, EventArgs e)
{
Player p1 = new Player(textBox1.Text);
textBox1.Clear();
button1.Visible = false;
textBox1.Visible = false;
}
private void KeyIsDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Up && !p1.jumping)
{
p1.jumping= true;
}
}
这是另一个名为“ Player.cs”的类文件的一部分(当然具有相同的命名空间):
public class Player
{
public string name;
public int score;
public bool jumping = false;
public Player(string name)
{
this.name = name;
}
}
唯一的问题是我无法通过另一种方法(在本例中为“ KeyIsDown”)访问对象“ p1”(通过单击Button1创建),因为“ p1”不存在。我该如何解决? 感谢您的任何建议:)
答案 0 :(得分:0)
这是因为您创建的变量不是全局变量。您必须在功能Button1_Click内执行的唯一操作是初始化变量,例如:
p1 =新玩家(...);
但是在函数外部和Game类内部,您必须生成一个名为:
的变量玩家p1;
您必须保持它未经初始化,直到您按下按钮。祝你好运。