页面之间导航 C# UWP
Posted
技术标签:
【中文标题】页面之间导航 C# UWP【英文标题】:navigation between pages C# UWP 【发布时间】:2021-11-29 00:32:16 【问题描述】:我创建了一个游戏,其中有优秀的玩家试图逃离坏人。我的游戏运行良好,但我的问题是我不知道如何创建游戏结束画面。 当您开始播放时,您看到的第一个屏幕(使用 xaml 设计创建的空白页面)是开始屏幕,您可以单击“开始”并导航(使用本指南的导航框架:https://docs.microsoft.com/en-us/windows/apps/design/basics/navigate-between-two-pages)到主页 - 其中游戏正在发生。 我想创建另一个在游戏结束时显示的屏幕或窗口:如果好玩家只与一个坏人呆在一起,你可以在游戏中获胜,或者如果坏人抓住你,你可能会输掉游戏。那么如何在 if 条件中使用 Navigate 方法呢?我需要另一个活动吗? (以及哪一个)或者有另一种方法来创建游戏结束画面,这取决于游戏规则? 请记住 - 在这种情况下,我没有两个元素(如按钮)可以单击以转到游戏结束屏幕。
我有一个名为 Manager 的类,负责所有游戏逻辑并检查游戏是否结束。在这段代码中,我正在检查坏人之间的勾结——如果他们相互碰撞,则“移除”一个。这是我想添加我的 If 条件的地方之一,以查看游戏是否结束 - 如果结束 - 导航\呈现我的结束游戏屏幕:
class Manager
//claulating collision between baddies
//checking each time if one of the baddies (loop 1) collides another (going throw the rest of the baddied - loop 2)
int x, y, t, l, width, height;
public void baddiesCollision(Baddies[] baddiesArr)
for (int i = 0; i < baddiesArr.Length; i++)
x = (int)baddiesArr[i].ImgLeft; //represent the position of ImgLeft on the first to compare-baddie
y = (int)baddiesArr[i].ImgTop; //represent the position of ImgTop on the first to compare-baddie
width = baddiesArr[i].PlayerWidth;
height = baddiesArr[i].PlayerHeight;
for(int j=i+1; j<=baddiesArr.Length-1; j++)
t = (int)baddiesArr[j].ImgLeft; //represent the position of ImgLeft on the next to compare-baddie
l = (int)baddiesArr[j].ImgTop; //represent the position of ImgTop on the next to compare-baddie
if (x <= t && t < x + width && y <= l && l <= y + height)
baddiesArr[j].badPlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
else if (x <= t + width && t + width <= x + width && y <= l && l <= y + height)
baddiesArr[j].badPlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
else if (x <= t && t <= x + width && y <= l + height && l + height <= y + height)
baddiesArr[j].badPlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
else if (x <= t + width && t + width <= x + width && y <= l + height && l + height <= y + height)
baddiesArr[j].badPlayer.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
**if(there is only one baddie that stayed --> go to End Game Screen)**
【问题讨论】:
【参考方案1】:我不知道这是否是您要查找的内容,但如果您希望在页面之间导航,请使用以下代码:
Frame.Navigate(typeof(newPage));
【讨论】:
显然,您创建了一个新类 .xaml 以在使用这段代码之前导航到。 不幸的是它不起作用。如果我通过代码添加:Frame.Navigate(typeof(EndScreen)); (我添加了一个名为 EndScreen 的空白页面)我收到此消息:“非静态字段、方法或属性 'Frame.Navigate(Type)' 需要对象引用”我不确定这意味着什么,我应该如何处理。 今天我偶然发现了this也许这对你有帮助。以上是关于页面之间导航 C# UWP的主要内容,如果未能解决你的问题,请参考以下文章