当我尝试这样做时......
Item[,] array = new Item[w, h]; // Two dimensional array of class Item,
// w, h are unknown at compile time.
foreach(var item in array)
{
item = new Item();
}
Run Code Online (Sandbox Code Playgroud)
......我得到Cannot assign to 'item' because it is a 'foreach iteration variable'.
不过,我还想那样做.
我们的想法是将默认Item类值分配给现有项目.
我想从Visual Studio中轻松访问我的项目文件夹.如何在Windows资源管理器中打开其文件夹?
我希望我的游戏具有正常的文本输入,但使用纯XNA似乎非常不愉快.
之前我发现这段代码让我可以MessageBox在我的游戏周围使用,安全地暂停执行并显示一条消息:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern uint MessageBox(IntPtr hWnd, String text, String caption, uint type);
Run Code Online (Sandbox Code Playgroud)
是否有类似的东西可以InputBox为我的游戏添加功能,最好不要打断(暂停)游戏?
有没有一种简单的方法可以将文本对齐到右边和中心(而不是默认左边)?
我的游戏窗口允许手动调整大小,这意味着它可以像任何其他普通窗口一样通过拖动其边缘来调整大小.游戏还使用RenderTarget2D rt2d了主渲染目标在主Draw方法中设置的a:,GraphicsDevice.SetRenderTarget(rt2d)但它null在主Draw方法的末尾被重置回(默认渲染目标),这使得它有点令人困惑:这是否真的是问题的根源,在Render Target设置为的时刻之前调整游戏窗口的大小rt2d,而不是重置为默认值?现在它看起来像.
主Draw方法中的代码应该始终将主渲染目标重置为null,因此没有预期的情况,这通常不会发生.
尽管如此,调整游戏窗口大小的结果有时会导致GraphicsDevice.isDisposed返回true,然后游戏会System.ObjectDisposedException在第一个时间内抛出SpriteBatch.End().我发现有关这个错误的帖子可以追溯到XNA的第一天,但是没有一个很好的解释(也没有提到改变渲染目标,所以它也可能是这些海报问题的根源).
现在,我可以通过调用此方法几次来触发此错误:
graphics.PreferredBackBufferWidth = graphics.PreferredBackBufferWidth;
graphics.PreferredBackBufferHeight = graphics.PreferredBackBufferHeight;
graphics.ApplyChanges();
Run Code Online (Sandbox Code Playgroud)
...在Draw主方法中使用以下行:
RenderTarget2D rt2d = new RenderTarget2D(GraphicsDevice,
graphics.PreferredBackBufferWidth,
graphics.PreferredBackBufferHeight);
GraphicsDevice.SetRenderTarget(rt2d);
sb.Begin();
// main draw method here, it's pretty big, so it might be taking long
// enough to process to actually resize before resetting render target
sb.End();
GraphicsDevice.SetRenderTarget(null);
sb.Begin();
// draw the whole rt2d to the screen
sb.End();
Run Code Online (Sandbox Code Playgroud)
我的猜测是,如果在重置渲染目标之前调整大小,我应该中止帧绘制并重置渲染目标,但我仍然不确定这究竟是导致这种情况的原因.
UPD …
多少内存以字节为单位做的类型,如int,bool,float,double,decimal,object,和string当作为场添加到一个类的实例使用?
我有一个实现的对象列表ToString().我需要将整个列表转换为一行中的一个字符串.我怎样才能做到这一点?
我使用spring 3.0.5并尝试在eclipse中运行我的webapp.当我在tomcat中启动应用程序时,我们得到以下异常:
java.lang.NoSuchFieldError: reportUnusedDeclaredThrownExceptionIncludeDocCommentReference
at com.google.gwt.dev.javac.JdtCompiler.getCompilerOptions(JdtCompiler.java:338)
at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.<init>(JdtCompiler.java:174)
at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:616)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:193)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:390)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:275)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:325)
at com.google.gwt.dev.DevModeBase$UiBrowserWidgetHostImpl.createModuleSpaceHost(DevModeBase.java:104)
at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:180)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud)
该项目通过CVS导入.它通常在我的计算机上启动(Win7 64位),但在coleague的计算机(Win XP)上抛出超过给定的错误.我不知道这是否重要.
有什么建议?
在我的代码中,我想处理在数据包中编码为一个符号的项目的文本名称.
在通常的情况下,对我1012来说意味着cat, dog, cat, frog,但是还有更多像这样的对,所以很难记住所有这些.有时他们需要改变,所以我认为我应该Dictionary<string, int>为此目的使用.但是之后…
switch (symbol)
{
case "0": { /* ... */ }
case "1": { /* ... */ }
case "2": { /* ... */ }
case "n": { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud)
... ...变
switch (symbol)
{
case kvpDic["cat"]: { /* ... */ }
case kvpDic["dog"]: { /* ... */ }
case kvpDic["frog"]: { /* ... */ }
case kvpDic["something else"]: { /* ... */ }
}
Run Code Online (Sandbox Code Playgroud)
而工作室说我需要为我的开关使用常量. …
我正在使用monogame(使用XNA API接口)来编写我的游戏.到目前为止,它很棒,但我已经遇到了一些应该简单的事情.
我需要画一个2d的正方形.但我只想要边框(没有填充).
我看过很多例子,展示了如何做一个填充的.但没有一个只显示边界.
我想我可以制作一个图像并使用它.但我怀疑它会很好地调整大小.