Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从播放器对象创建参数_C# - Fatal编程技术网

C# 从播放器对象创建参数

C# 从播放器对象创建参数,c#,C#,这似乎是一个愚蠢的问题,但在我的一个类中将参数传递到构造函数时遇到了问题。我创建的对象是一个玩家对象,我正在尝试获取它在我的敌人类中的位置。我之所以尝试这样做,是因为我希望我的敌人在屏幕上跟随玩家。我正在psm中使用c#创建此程序。非常需要任何援助 这是我的敌人阶级 public class SmartEnemy:Enemy { private Player player; private Vector3 vel, pos; private static Random g

这似乎是一个愚蠢的问题,但在我的一个类中将参数传递到构造函数时遇到了问题。我创建的对象是一个玩家对象,我正在尝试获取它在我的敌人类中的位置。我之所以尝试这样做,是因为我希望我的敌人在屏幕上跟随玩家。我正在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));

Smartnemy构造函数需要一个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) );