我想知道如果某个程序在我的程序中发生,我怎么能调用包含Graphics G的函数。
public void dead (Graphics g) {
right = false;
left = false;
up = false;
down = false;
dead = true;
score = 0;
moves = 0;
g.setColor(Color.WHITE);
g.setFont(new Font("arial", Font.BOLD, 50));
g.drawString("Game Over", 300, 300);
g.setFont(new Font("arial", Font.BOLD, 20));
g.drawString("Press \"Space\" To Restart", 312, 340);
}
如何从其他地方拨打电话?我试过做死();但它说这个方法不适用于这个论点。提前谢谢!
编辑:这是我的JFrame:
JFrame obj = new JFrame("Snake");
gameplay gameplay = new gameplay();
obj.setBounds(10, 10, 905, 700);
obj.setBackground(Color.DARK_GRAY);
obj.setResizable(false);
obj.setVisible(true);
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.add(gameplay);
答案 0 :(得分:2)
我们应该在paintComponent(Graphics g)
中调用这个死(g)方法来在蛇死时更新屏幕:
在显示您的绘画的面板中,您将得到以下内容:
@Override
public void paintComponent(Graphics g){
super.paintComponent(g):
if(gameOver)
dead(g);
}
顺便说一句,您可能不希望将与绘画无关的代码包含在您的死(g)方法中,例如:
right = flase:
left = flase;
...
score = 0;
moves = 0;
尽可能使您的绘画方法与其他非绘画相关的代码保持杂乱。在极端情况下,混乱可能会导致显示滞后。