使用TxtEntity类绘制“游戏结束”

时间:2019-04-16 15:06:45

标签: java

游戏结束后,我希望能够在屏幕上绘制“游戏结束”。我的老师希望我用自己的构造函数创建一个名为TxtEntity的新类,并从该图中绘制“ Game over”,但我在确定该怎么做时遇到问题。我正在使用MVC概念,并且尝试创建代码中所示的方法,但是它不起作用。而且即使我已经实现了TxtEntity,我的游戏控制器也无法实现该方法。

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;

import se.egy.game.model.Sprite;

public abstract class TxtEntity extends Sprite{

    public TxtEntity(Image image, int x, int y, String text) {
        super(null, x, y);

    }

    public void GameOver(Graphics g) {  
            g.drawString("GAME OVER", 2, 3);
            g.setColor(Color.WHITE);
            g.setFont(new Font("Arial", Font.BOLD, 20));    
    }

}

在这里我要实现游戏结束方法(上面写着TxtEntity。)

    public void checkCollisionandRemove() {
        for (int i = 1; i < entityList.size(); i++) {
            if (entityList.get(i).collision(player)) {
                entityList.remove(entityList.get(i));
            }
        }

        if (entityList.size() == 1) {
            //System.exit(1);
            resetkeyDown();

            player.setDirectionX(0);
            player.setDirectionY(0);

            TxtEntity.
        }

    }

当只剩下一个实体(玩家)时,我想在屏幕上说“游戏结束”。

2 个答案:

答案 0 :(得分:0)

您需要将gameOver方法设置为“静态”,这样就无需为其创建对象(当前没有对象,因此无法调用该方法)。

private _currentVegBehaviorSubj = new BehaviorSubject<any>(undefined);
let carrot = { color: "Orange" };
_currentVegBehaviorSubj.next(carrot);

然后这样称呼它:

    public static void gameOver(Graphics g) {  
            g.drawString("GAME OVER", 2, 3);
            g.setColor(Color.WHITE);
            g.setFont(new Font("Arial", Font.BOLD, 20));    
    }

还有一个小小的注释方法名称以小写开头,而新单词的每个首字母都以大写开头 示例:

methodNameOne

thisIsMethodTwo

答案 1 :(得分:0)

@ L.lsen

您的TxtEntity是一个抽象类。这意味着您无法单独实例化它。您必须扩展它。

您可以创建一个扩展抽象类TxtEntity的匿名类:

TxtEntity te = new TxtEntity(null, x, y, ""){};

或者您可以创建一个扩展抽象类的类。然后,实例化此类:

class GameOverEntity extends TxtEntity {
  public GameOverEntity(x, y){
    super(null, x, y, "");
  }
}
...
GameOverEntity gameOver = new GameOverEntity(x, y);

我的建议是让您检查抽象类,接口和匿名类(以防您不想创建扩展抽象类的新类)。

让我知道这对您是否有意义。