Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 诺姆先生,打球时撞车_Android_Crash - Fatal编程技术网

Android 诺姆先生,打球时撞车

Android 诺姆先生,打球时撞车,android,crash,Android,Crash,我在这里遇到了一个问题,不太确定问题是什么,在谷歌上搜索了一下,找不到太多,但我怀疑这与获取图像的方式或计算污点随机位置的方式有关,有时游戏会启动,但我最多只能达到2-3个污点,当我进入下一个网格时,它通常会崩溃。这让我怀疑,当蛇头与污点位于同一网格上时,也可能是计算代码……有很多东西我甚至不知道什么坏了,什么不坏:D,调试器总是指向GameScreen.java的151>158行: Image stainImage = null; if (stain.type == Stain

我在这里遇到了一个问题,不太确定问题是什么,在谷歌上搜索了一下,找不到太多,但我怀疑这与获取图像的方式或计算污点随机位置的方式有关,有时游戏会启动,但我最多只能达到2-3个污点,当我进入下一个网格时,它通常会崩溃。这让我怀疑,当蛇头与污点位于同一网格上时,也可能是计算代码……有很多东西我甚至不知道什么坏了,什么不坏:D,调试器总是指向GameScreen.java的151>158行:

    Image stainImage = null;
    if (stain.type == Stain.TYPE_1)
        stainImage = Assets.stain1;
    if (stain.type == Stain.TYPE_2)
        stainImage = Assets.stain2;
    if (stain.type == Stain.TYPE_3)
        stainImage = Assets.stain3;
    **int x = stain.x * 32;**
    int y = stain.y * 32;
    g.drawImage(stainImage, x, y);
它指向第二行,我已完全删除此代码,当我点击play时游戏不再崩溃,但是当我触摸屏幕确认我已准备就绪并将游戏状态设置为“就绪”时,它显然崩溃

错误日志显示:

  • 07-29 16:18:08.516:E/AndroidRuntime(5102):致命异常: 螺纹-12
  • 07-29 16:18:08.516:E/AndroidRuntime(5102): java.lang.NullPointerException
  • 07-29 16:18:08.516:E/AndroidRuntime(5102):在 com.stephengibson.mrnom.GameScreen.drawWorld(GameScreen.java:158)
  • 07-29 16:18:08.516:E/AndroidRuntime(5102):在 com.stephengibson.mrnom.GameScreen.present(GameScreen.java:130)
  • 07-29 16:18:08.516:E/AndroidRuntime(5102):在

  • com.stephengibson.framework.implementation.androidFasterEnderView.run(androidFasterEnderView.java:46)

  • 07-29 16:18:08.516:E/AndroidRuntime(5102):在 run(Thread.java:1019)
我已经检查了错误报告所抱怨的行,GameScren第130行看起来是这样的:

    drawWorld(world);
    if (state == GameState.Ready)
        drawReadyUI();
    if (state == GameState.Running)
        drawRunningUI();
    if (state == GameState.Paused)
        drawPausedUI();
    if (state == GameState.GameOver)
        drawGameOverUI();
AndroidFasterEnderView第46行是这样的:

    game.getCurrentScreen().present(deltaTime);

我希望我已经提供了足够的信息,我已经很好地遵循了这本书,并且花了3-4个小时的大半时间来回地检查所有代码,添加内容并删除部分以尝试解决问题


很抱歉问了这么长的问题,哈哈,谢谢。

stain
必须在您的代码到达那一行时进行。确保在代码到达该行之前将其初始化为某个值


NullPointerException
当您尝试访问空对象的成员或对空对象调用方法时发生(表示您尝试取消引用空指针)。每当您在堆栈跟踪中看到该标记时,请找到该行并找出该行上的哪个对象可以为null。

当您到达代码中的该行时,标记必须为。确保在代码到达该行之前将其初始化为某个值


NullPointerException
当您尝试访问空对象的成员或对空对象调用方法时发生(表示您尝试取消引用空指针)。每当你在堆栈跟踪中看到这一点时,找到那一行并找出那一行上的哪个对象可以为空。

GameScreen.java的第158行是什么?很抱歉,我失败了,GameScreen.java的第158行是我发布的第一个代码块,应该编辑以准确反映哪一行?StackOverflow上没有行号。加粗,或者单独展示,或者别的什么。对不起,我是个白痴。int x=染色点x*32;很好,第一次总是很粗糙。GameScreen.java的第158行是什么?对不起,我失败了,GameScreen.java的第158行是我发布的第一段代码,应该编辑以反映准确的哪一行?StackOverflow上没有行号。加粗,或者单独展示,或者别的什么。对不起,我是个白痴。int x=染色点x*32;很好,第一次总是很粗糙。嗯,对了,我在更改它之前又在那里运行了一次,这样我就可以确保错误日志是相同的…它不是。错误日志似乎在另一行显示了一个不同的问题:07-29 16:56:31.236:E/AndroidRuntime(6200):位于com.stephengibson.mrnom.GameScreen.drawWorld(GameScreen.java:152),在NullPointerException之后,日志的其余部分保持不变,第152行是这样的:if(stain.type==stain.type_1)我对在这里做什么感到困惑,我对Java和Android非常陌生,每次只做一件事,然后再运行一次。重复,直到不再出现错误。修复后,我实际上没有在my World.java中创建污点实例,这意味着没有随机生成,因此游戏屏幕无法解析类型并绘制它。谢谢你的帮助!:我期待着成为这个网站的一员:)嗯,是的,在我更改它之前,我在那里再次运行它,这样我就可以确保错误日志是相同的……它不是。错误日志似乎在另一行显示了一个不同的问题:07-29 16:56:31.236:E/AndroidRuntime(6200):位于com.stephengibson.mrnom.GameScreen.drawWorld(GameScreen.java:152),在NullPointerException之后,日志的其余部分保持不变,第152行是这样的:if(stain.type==stain.type_1)我对在这里做什么感到困惑,我对Java和Android非常陌生,每次只做一件事,然后再运行一次。重复,直到不再出现错误。修复后,我实际上没有在my World.java中创建污点实例,这意味着没有随机生成,因此游戏屏幕无法解析类型并绘制它。谢谢你的帮助!:D期待成为本网站的一员:)