unreachable code detected XNA C#
对不起,如果在写作中奇怪的方式。一个漂亮的新规划。第一年,所以我以为我可以使用一些帮助。在试图获得在"结束屏幕"集团和我没有想法是如何做的。我们有三级和三级a和荷载后,屏幕弹出"样",你想播放/退出了吗?"这里是我的问题,我如何开始只是简单的开始?我想创建一spritefont站在"endscreen"命名的对象。现在,在"draw(gametime Down):"我这样做
"/结尾的反对将"画"不仅在屏幕的游戏
1 2 3 4 5 6 7 | switch (CurrentGameState) { case Gamestate.EndScreen: { spriteBatch.Draw(Content.Load<Texture2D>("Sprites/Endscreen"), new Rectangle(0, 0, screenWidth, screenHeight), Color.White); btnPlay.Draw(spriteBatch); break;" |
现在我得到的错误:"无法访问的代码检测"我会很欣赏,如果你能给我一些步步通孔。
对不起,如果它看起来浴室和一些类型的错误,一个生活在瑞典和新的规划和本网站!我不知道我做了正确的编码和代码在一个区的地方,在很insecure关于编程
休息后你有一个额外的
由于break将跳出switch语句,代码路径将永远无法到达代码的这一部分。只需移除即可修复此问题
1 2 3 4 | void Update(GameTime g) { CurrentGameState = GameState.EndScreen; } |
我不会回答你提出的问题(@sayse已经做得很好了),而是回答你的代码提出的问题。
绘制图像时,调用以下代码:
1 | spriteBatch.Draw(Content.Load<Texture2D>("Sprites/Endscreen"), new Rectangle(0, 0, screenWidth, screenHeight), Color.White); |
这意味着你的游戏在"sprites/endscreen"上绘制的每一帧图像都试图加载到新的纹理实例中。虽然XNA能够意识到不加载它,但是检查它是否已经加载的过程有点慢。你可能不会马上看到,但是如果你在屏幕上看到足够多的图像,你会注意到显着的"滞后"或帧速率下降。
这个问题的一个很好的解决方案是在类的顶部生成一个字段(类成员变量),调用这个代码。把它做成一个纹理2d,并称之为相关的,比如endscreen。然后在LoadContent中将纹理加载到EndScreen对象中。最后更改了对spriteBatch.draw()的调用,以使用该纹理2d。下面我提供了一个示例,说明了您可能希望执行的操作。
1 2 3 4 5 6 7 | //Fields Texture2D endScreen; //Load Content endScreen = Content.Load<Texture2D>("Sprites/Endscreen"); //All Your Class Code //Draw spriteBatch.Draw(endScreen, new Rectangle(0, 0, screenWidth, screenHeight), Color.White); |