这个问题在这里已有答案:
我正在使用Windows窗体应用程序开发C#游戏,我有一个名为“Game”的Form包含这样的东西(它只是完整代码的一部分):
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”不存在 . 我怎么解决这个问题?谢谢你的任何建议:)
1 回答
这是因为您创建的变量不是全局变量 . 在函数Button1_Click中你唯一必须做的就是初始化变量,如:
p1 =新玩家(...);
但是在函数之外和Game类中,你必须生成一个名为的变量:
玩家p1;
在按下按钮之前,必须保留它而不进行初始化 . 祝好运 .