这可能看起来像一个愚蠢的问题,但我在将一个参数传递给我的一个类中的构造函数时遇到了麻烦。我创建的对象是一个玩家对象,我试图在我的敌人类中获得它的位置。我试图这样做的原因是因为我希望我的敌人跟随屏幕上的玩家。我在psm中使用c#来创建这个程序。非常需要任何帮助。
这是我的敌人。
public class SmartEnemy:Enemy
{
private Player player;
private Vector3 vel, pos;
private static Random gen= new Random();
public SmartEnemy (GraphicsContext g, Texture2D t, Vector3 p, float pwr, Player pop) : base(g,t,p,pwr)
{
pos = p;
player = pop;
vel = new Vector3 (0, 0, 0);
sprite.Rotation = 0;
sprite.Center.X = 0.5f;
sprite.Center.Y = 0.5f;
}
public override void Update()
{
Vector3 playerPos= player.Pos;
double angle=Math.Atan2(playerPos.Y-sprite.Position.Y,playerPos.X- sprite.Position.X);
Vector3 vel=new Vector3((float)Math.Cos(angle),(float)Math.Sin(angle),0);
sprite.Position+=vel;
}
public override void Render()
{
sprite.Render();
}
}
// } 这是我的Appmain中创建敌人的代码。
pieces.Add (new SmartEnemy(graphics, eTex, new Vector3(gen.Next (200,900), gen.Next (200,900),0),.5f));
答案 0 :(得分:0)
您的SmartEnemy构造函数需要一个Player对象,但您没有在代码中提供一个:
SmartEnemy(graphics, eTex, new Vector3(gen.Next (200,900), gen.Next (200,900),0),.5f));
创建一个玩家对象并发送:
Player p1 = new Player();
pieces.Add( new SmartEnemy(graphics, eTex, new Vector3(gen.Next (200,900), gen.Next (200,900),0),.5f, p1) );