當(dāng)我移動我的球員時(shí),我試著讓這10個(gè)敵人離開。我試著在狀態(tài)下做一些事情,但無法解決。
公共密封部分類主頁面:{int[]arr_Enemy=新int[10];
Rectangle Enemy;
Rectangle Player;
Random rnd = new Random();
public MainPage()
{
this.InitializeComponent();
Window.Current.CoreWindow.KeyDown += PlayerMovement;
MyCanvas.Background = new ImageBrush
{
ImageSource=新位圖圖像(新Uri("ms-appx:///Assets/Background.jpg"))
};
Player = new Rectangle();
Player.Width = 50;
Player.Height = 50;
Player.Fill = new ImageBrush
{
ImageSource=新位圖圖像(新Uri("ms-appx:///Assets/PlAYER2.GIF"))
};
MyCanvas.Children.Add(Player);
Canvas.SetTop(Player, 700);
Canvas.SetLeft(Player, 900);
for (int i = 0; i < arr_Enemy.Length; i++)
{
Enemy.Fill = new ImageBrush
{
ImageSource=新位圖圖像(新Uri("ms-appx:///Assets/enemy.GIF"))
};
Enemy.Width = 120;
Enemy.Height = 115;
MyCanvas.Children.Add(Enemy);
Canvas.SetTop(Enemy, rnd.Next(750));
Canvas.SetLeft(Enemy, rnd.Next(750));
}
}
private void PlayerMovement(CoreWindow sender, KeyEventArgs args)
{
VirtualKey movement = args.VirtualKey;
switch (movement)
{
case VirtualKey.Up:
Canvas.SetTop(Player, Canvas.GetTop(Player) - 10);
break;
case VirtualKey.Down:
Canvas.SetTop(Player, Canvas.GetTop(Player) + 10);
break;
case VirtualKey.Left:
Canvas.SetLeft(Player, Canvas.GetLeft(Player) - 10);
break;
case VirtualKey.Right:
Canvas.SetLeft(Player, Canvas.GetLeft(Player) + 10);
break;
}
}
} }
更好的方法是制作計(jì)時(shí)器,一步一步地將敵人移動到玩家身上。我們可以得到敵人和玩家的位置。并測量它們之間的距離。然后根據(jù)距離調(diào)用setleft-top方法。當(dāng)敵人和玩家交叉時(shí)停止移動。
for example