检测到无法访问的代码XNA C#

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);