g.drawString 在两个方块碰撞时不绘制游戏结束

我正在尝试用正方形制作一个虚拟标签。现在,我专注于让游戏说游戏结束并在游戏玩家抓住另一个玩家时稍后关闭。但是,当两个方块碰撞时,程序不会向屏幕写入任何内容。


我知道调用 g.drawString 的 if 语句有效,因为它在这里输出到控制台两次,所以我很困惑为什么 g.drawString 不起作用。


package com.Arman;


import javax.swing.*;

import java.awt.*;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.util.HashSet;


public class Virtual_Tag {


    static int x1 = 0;

    static int y1 = 0;

    static Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

    static int height = (int) dimension.getHeight();

    static int width = (int) dimension.getWidth();

    tatic int sWidth = (int) (Math.round(100 * width / 1366.0));

    static int sHeight = (int) (Math.round(100 * height / 768.0));

    static int x2 = width - sWidth;

    static int y2 = height - sHeight;

    static myGraphicsPanel graphics = new myGraphicsPanel();

    static boolean[] move = new boolean[8];

    static int xSpeed1;

    static int ySpeed1;

    static int xSpeed2;

    static int ySpeed2;

    static boolean xcol, ycol;

    static JFrame frame = new JFrame();



慕桂英546537
浏览 95回答 1
1回答

哔哔one

更改您的打印坐标以将字符串向右和向下移动。尝试200,200。此外,您应该执行以下操作:摆脱你的静态陈述。然后将 main 中的代码移动到方法中start()。然后,您可以通过执行以下操作来调用您的程序:  new VirtualTag().start();通常你应该在 main 中启动你的程序,如下所示: SwingUtilities.invokeLater(()->new Virtual_Tag().start());但在这种情况下,这是行不通的,因为您将不断循环,并且Event Dispatch Thread不会绘制任何内容。在https://docs.oracle.com/javase/tutorial/index.html查看绘画等
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java