- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿嘿,
我目前正在为 Windows 8/Metro 开发我的第二个 XNA/Monogame 游戏,但遇到了问题。我们现在需要存储一个附有名称的高分,因此我需要处理屏幕键盘以获取信息。
我在论坛中进行了搜索,发现了一些与此相关的主题,但没有包含示例代码或描述的帖子可以帮助我完全解决我的问题。我将我的项目更改为 XAML 模板,我的 GamePage 中有一个 TextBox,但现在我需要在我的游戏循环中获取 TextBox 才能读出它,这样我就可以保存我的分数之外的名称,我目前不知道如何做这个。
我当前的 GamePage.cs 代码
public GamePage(string launchArguments)
{
this.InitializeComponent();
// Create the game.
_game = XamlGame<Main>.Create(launchArguments, Window.Current.CoreWindow, this);
txtTest.TextChanged += txtTest_TextChanged;
}
void txtTest_TextChanged(object sender, TextChangedEventArgs e)
{
Debug.WriteLine(txtTest.Text); //Write content to public string in Main.cs
}
我发现了如何将 TextBox 的内容写入我的游戏循环中的字符串,但现在我无法从我的游戏循环中控制 TextBox 的属性,以便我可以设置可见性和焦点。我是否需要创建自己的 EventHandler,它会监视我是否设置了 bool 值或其他东西?
提前致谢。
问候,
对于T3X
最佳答案
免责声明:我只想说,我之前从未使用过 Windows 8 XAML 项目或 GamePage 类,但在进行了一些谷歌搜索后,我认为我的理解足以提供帮助。
看来您的问题归结为循环依赖。您希望在 GamePage 和 Game 类之间进行双向通信。
从 GamePage 到 Game 类的通信很容易,因为 GamePage 已经负责创建 Game 类并将其存储在 _game 成员变量中。因此,要将消息从 GamePage 发送到 Game,您只需向 Game 类添加一个方法,例如:
void txtTest_TextChanged(object sender, TextChangedEventArgs e)
{
_game.SetHighscoreName(txtTest.Text);
Debug.WriteLine(txtTest.Text); //Write content to public string in Main.cs
}
以另一种方式(从 Game 到 GamePage)进行通信有点棘手,但可以使用接口(interface)和属性注入(inject)来解决。
首先,创建一个属于您的 Game 类的界面。我的意思是;它与 Game 类位于同一个项目和/或命名空间中。它可能看起来像这样:
public interface IGamePageController
{
void ShowHighscoreTextBox();
}
然后,像这样向您的 Game 类添加一个属性:
public IGamePageController GamePageController { get; set; }
接下来,让 GamePage 类像这样实现接口(interface):
public partial class GamePage : PhoneApplicationPage, IGamePageController
{
//...
public void ShowHighscoreTextBox()
{
txtTest.Visibility = Visibility.Visible;
}
}
最后,在 GamePage 构造函数中,您需要设置 GamePageController 属性。
// Create the game.
_game = XamlGame<Main>.Create(launchArguments, Window.Current.CoreWindow, this);
_game.GamePageController = this;
一旦你有了这个模式,就可以很容易地为你的 Game 和 GamePage 类添加新的通信方式,方法是向接口(interface)或 Game 类添加更多方法。
关于c# - 游戏循环内的 Monogame XAML 读出文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561493/
为什么 naam 输出(NULL)? (抱歉,我知道这是基本的东西,但我是 plist 的新手) 这是plist: 方法如下: - (id) init { self = [super init]; i
我正在使用这个问题的答案中描述的方法向帧缓冲区对象绘制笔触: opengl - blending with previous contents of framebuffer 此方法正确 alpha -
我想将 xml 文件读出到文本 block 中,用户可以在文本 block 中编辑此文本并将附加更改应用回 xml 文件...我目前被卡住了。这是我到目前为止所做的: private void
我需要从我的网络应用程序中的任何 Controller 读出所有可用的操作。这样做的原因是一个授权系统,我需要为用户提供一个允许操作的列表。 例如。: 用户 xyz 具有执行显示、列表、搜索操作的权限
我有一个包含城市区域的 KML 文件,并想用 Javascript 将其读出,以便在 map 上显示这些叠加层(多边形)(Google Maps API v.3)此外,我想从 KML 文件中保存 Ge
我尝试将 onClick 函数从图像复制到 span 对象。但我不明白。 我已经直接使用 onClick=img.onClick、onClick=new Function(img.onClick) 等
我正在考虑使用 Javascript 自动将 border-radius、transform、box-shadow 等 CSS3 属性转换为它们的浏览器特定对应物。 我做了一些研究,发现您可以迭代通过
我有一个关于从 XML 文件读取的问题。 我的 XML 文件: 我的代码: rapidxml::xml_document<> doc; r
我正在为 dwm 构建一个状态栏,我想通过终端读出未读邮件数(使用 grep、sed 或 fopen 作为文件)并通过 fopen/popen 获取它。 我使用的是 ubuntu/dwm/thunde
我尝试用 C# 读出 WMI 数据。我使用 System.Management 命名空间。对于大多数 WMI 查询,它工作得很好。但是,当我尝试从 Win32_PerfFormattedData_Tc
我想使用 Blender 本身的脚本模式读出 Blender 对象的自定义属性。到目前为止,我发现只能读出您在脚本模式下自己创建的自定义属性。但是我想读出我自己标记的自定义属性。这意味着我没有要使用的
我正在尝试读出包含如下数据的文本文件: 1 1 34.5 12.5 1 2 65.3 23.6 1 3 94.3 12.3 依此类推,两个整数后跟两个坐标,冲洗并重复。我使用这段代码(我真的不太懂编程
我想知道如何读出 mp3 歌曲的持续时间。如果我是对的,它不是 ID3 标签,所以我想我必须以某种方式计算它?对于其余的 ID3 标签,我正在使用这个库: http://javamusictag.so
在 iOS 中使用 VoiceOver,当查看分段 Controller 之类的东西时,VoiceOver 会读取分段及其索引,即“已选择:某事:4 之 2”。 我有一个包含几个按钮的自定义 UIVi
我正在尝试从 Microsoft EDGE 浏览器读出标题和 URL。最好使用 System.Windows.Automation 来执行此操作,因为代码库已经使用它来解决其他问题。 可以通过 Sys
从顶部滚动 473 像素后,我有一个显示/隐藏菜单栏。现在我想通了,在其他页面上我需要以不同的 px 偏移量显示/隐藏它(例如,因为顶部的图片更大)。 所以理论上,当我滚动“ anchor ”时,jQ
我是一名优秀的程序员,十分优秀!