2014-02-24 96 views
0

這看起來像一個愚蠢的問題,但我無法將參數傳遞到我的某個類的構造函數中。我創造的對象是一個玩家對象,我試圖在我的敵人階級中獲得它的位置。我試圖這樣做的原因是因爲我希望我的敵人跟隨屏幕上的玩家。我在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

你SmartEnemy構造函數需要一個Player對象,但你不是一個供在你的代碼:

SmartEnemy(graphics, eTex, new Vector3(gen.Next (200,900), gen.Next (200,900),0),.5f)); 

創建一個Player對象和發送:

Player p1 = new Player(); 
pieces.Add(new SmartEnemy(graphics, eTex, new Vector3(gen.Next (200,900), gen.Next (200,900),0),.5f, p1));