Class 主类实例的名称
我正在做一个简单的游戏,我被这个游戏绊住了:(XNA,Visual basic 2010) 我有一个名为Game1的主类,包含所有墙的列表(例如) 还有一个二等球。我在足球课上做碰撞检测。 我需要访问Game1类中的墙列表,但我不知道如何访问,目前还没有Game1类的实例,我也不知道它的名称Class 主类实例的名称,class,xna,instance,Class,Xna,Instance,我正在做一个简单的游戏,我被这个游戏绊住了:(XNA,Visual basic 2010) 我有一个名为Game1的主类,包含所有墙的列表(例如) 还有一个二等球。我在足球课上做碰撞检测。 我需要访问Game1类中的墙列表,但我不知道如何访问,目前还没有Game1类的实例,我也不知道它的名称 希望解释清楚。游戏1类由程序类实例化。在构造ball类时,可以将游戏传递给构造函数中的球 public class Ball { Game1 myGame; public Ball(Gam
希望解释清楚。游戏1类由
程序
类实例化。在构造ball类时,可以将游戏传递给构造函数中的球
public class Ball
{
Game1 myGame;
public Ball(Game1 _theGame)
{
myGame = _theGame;
}
}
public class Game1 : Game
{
Ball ball;
public override LoadContent()
{
// construct the ball with THIS.
ball = new Ball(this);
}
}
如果你只想通过墙壁列表,也许考虑一类叫做“代码> WestMeals的某种类型,并将其传递给你的球类,而不是整个游戏。
编辑: 或者,如果您的类是游戏组件
,您可以询问该组件的游戏
。但这并不是很好,因为您还需要将球实例添加到游戏的组件中,并提供更新功能。你必须把你的游戏投给一个游戏1
例如:
class Game1 : Game
{
Ball ball;
public override LoadContent()
{
ball = new Ball();
this.Components.Add(ball);
}
}
class Ball: GameComponent
{
public override Update()
{
// ugly example
List<Wall> walls = ((Game1)this.Game).Walls;
}
}
类游戏1:游戏
{
球;
公共覆盖LoadContent()
{
球=新球();
此。组件。添加(球);
}
}
类球:游戏组件
{
公共覆盖更新()
{
//丑恶的例子
列表墙=((Game1)this.Game).walls;
}
}
如果没有实例,则无法访问实例成员。如果该类的实例永远不会超过一个,那么成员可能应该共享
,在这种情况下,您可以使用Game1.Walls
或任何名称访问此列表。Marnix,感谢您的回复-第一个解决方案有效,我真的很高兴您的帮助。来自捷克共和国的问候如果你喜欢我的答案,请按下接受按钮,这样这个问题就可以结束了。