【发布时间】:2019-02-26 05:15:36
【问题描述】:
我正在创建一个简单的 UWP 游戏,我在其中控制 XML 生成的椭圆。
我有一个处理箭头键和移动椭圆的简单函数:
void CoreWindow_KeyDown(CoreWindow sender, KeyEventArgs args)
{
// The click event is up.
if (args.VirtualKey == VirtualKey.Up)
{
// Move up.
Canvas.SetTop(player, Canvas.GetTop(player) - 20);
}
// The click event is down.
else if (args.VirtualKey == VirtualKey.Down)
{
// Move down.
Canvas.SetTop(player, Canvas.GetTop(player) + 20);
}
// The click event is right.
else if (args.VirtualKey == VirtualKey.Right)
{
// Move right.
Canvas.SetLeft(player, Canvas.GetLeft(player) + 20);
}
// The click event is left.
else if (args.VirtualKey == VirtualKey.Left)
{
// Move left.
Canvas.SetLeft(player, Canvas.GetLeft(player) - 20);
}
}
这样做的问题是椭圆也会移出窗口,即画布。只要椭圆在窗口内,有没有办法只执行上述功能?我尝试过这样的代码,但它不起作用:
if (Canvas.GetLeft(player) < levelOneImage.ActualWidth ||
Canvas.GetTop(player) < levelOneImage.ActualHeight)
我只是检查椭圆坐标是否超过图像坐标。
这是椭圆的 XAML:
<Ellipse x:Name="player" Fill="SteelBlue" Height="50" Width="50"/>
这是游戏的外观,其中椭圆是蓝色元素。
【问题讨论】: