使用 if 语句初始化另一个类的渲染方法后出现空指针异常

问题描述

首先,我给你简单描述一下我的代码

一个碰撞检测系统输出真 -> 有碰撞,或假 -> 没有碰撞。然后另一个函数读取 true 或 false 语句并决定做什么。我想要它 1. drawString -> "YOU SURVIVED" xxx "Rounds" 2. 结束线程。

我能够正确结束线程,但是对于 #2,我创建了一个方法,其唯一目的是在游戏结束后将字符串绘制到屏幕上。

(我使用“RoundTimer”方法,这样drawString格式更清晰)

然而,一旦发生碰撞,游戏结束线程但不显示字符串,输出“NULL POINTER EXCEPTION”,指向render方法

(go 是我在实例化后为“GameOver”类设置的名称

public void move() {
    if(!CheckEntityCollisions(xMove,0f) ) {
        xMove();
    }
    if(!CheckEntityCollisions(0f,yMove) ) {
        yMove();
    }
    if(CheckEntityCollisions(xMove,0f) ) {
        go.render(g);
        Thread.currentThread().stop();
    }
    if(CheckEntityCollisions(0f,yMove) ) {
        go.render(g);
        Thread.currentThread().stop();
    }
}
public class GameOver {
    private int time = 0;

    public void render(Graphics g){
        RoundTimer.drawString(g,"YOU SURVIVED  " + (time/500) + "  ROUNDS",700,300,true,[Color.red](https://Color.red),new Font("Arial",Font.BOLD,90));
    }

    public void tick() {
        time++;
    }
}

如果您需要更多信息,这里是 github -> https://github.com/TheLandStander/RunFromZombiesGame

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)