Я пытаюсь создать игру, в которой вам нужно пролететь ракету через пещеру, и если вы попали в стену, ракета рухнет.В целях обнаружения столкновений я решил хранить местоположения CaveWall и местоположения ракет в объектах.Когда я пытаюсь нарисовать линии, основанные на позициях этих объектов, ничего не происходит.Код ниже.
public class Rocket{//this class is the rocket object
private double x,y;
public Rocket(double x, double y) {
this.x=x;
this.y=y;
}
public class CaveWalls {//This class is the cavewalls object
private int startx;
private int starty;
private int endx;
private int endy;
public CaveWalls(int startx, int starty, int endx, int endy) {
this.startx=startx;
this.starty=starty;
this.endx=endx;
this.endy=endy;
}
public class ConfigureWalls extends JComponent{//This class sets the list of cavewalls
private List <CaveWalls> wall=new ArrayList<CaveWalls>();
public void one() {
CaveWalls wall1=new CaveWalls(0, getHeight()-(getHeight()/6), getWidth()/6, getHeight()-(getHeight()/6));
CaveWalls wall2=new CaveWalls(getWidth()/6, getHeight()-(getHeight()/6), getWidth()/6, getHeight()-getHeight()/4);
CaveWalls wall3=new CaveWalls(getWidth()/6, getHeight()-getHeight()/4, getWidth()/6+getWidth()/10, getHeight()-getHeight()/4);
CaveWalls wall4=new CaveWalls(getWidth()/6+getWidth()/10, getHeight()-getHeight()/4, getWidth()/6+getWidth()/10, getHeight()-getHeight()/12);
CaveWalls wall5=new CaveWalls(getWidth()/6+getWidth()/10, getHeight()-getHeight()/12, getWidth()/2, getHeight()-getHeight()/12);
CaveWalls wall6=new CaveWalls(getWidth()/2, getHeight()-getHeight()/12, getWidth()/2, getHeight()-getHeight()/4);
CaveWalls wall7=new CaveWalls(getWidth()/2, getHeight()-getHeight()/4, getWidth()/3+getWidth()/15, getHeight()-getHeight()/4);
CaveWalls wall8=new CaveWalls(getWidth()/3+getWidth()/15, getHeight()-getHeight()/4, getWidth()/3+getWidth()/15, getHeight()-getHeight()/3);
CaveWalls wall9=new CaveWalls(getWidth()/3+getWidth()/15, getHeight()-getHeight()/3, getWidth()/2+getWidth()/7, getHeight()-getHeight()/3);
CaveWalls wall10=new CaveWalls(getWidth()/2+getWidth()/7, getHeight()-getHeight()/3, getWidth()/2+getWidth()/7, getHeight()-getHeight()/6);
CaveWalls wall11=new CaveWalls(getWidth()/2+getWidth()/7, getHeight()-getHeight()/6, getWidth()-getWidth()/4 , getHeight()-getHeight()/6);
CaveWalls wall12=new CaveWalls(getWidth()-getWidth()/4, getHeight()-getHeight()/6, getWidth()-getWidth()/4, getHeight()-getHeight()/4);
CaveWalls wall13=new CaveWalls(getWidth()-getWidth()/4, getHeight()-getHeight()/4, getWidth()-getWidth()/7, getHeight()-getHeight()/4);
CaveWalls wall14=new CaveWalls(getWidth()-getWidth()/7, getHeight()-getHeight()/4, getWidth()-getWidth()/7, getHeight()-getHeight()/8);
CaveWalls wall15=new CaveWalls(getWidth()-getWidth()/7, getHeight()-getHeight()/8, getWidth(), getHeight()-getHeight()/8);
wall.add(wall1);
wall.add(wall2);
wall.add(wall3);
wall.add(wall4);
wall.add(wall5);
wall.add(wall6);
wall.add(wall7);
wall.add(wall8);
wall.add(wall9);
wall.add(wall10);
wall.add(wall11);
wall.add(wall12);
wall.add(wall13);
wall.add(wall14);
wall.add(wall15);
}
А это мой уровень 1-го класса с методом рисования компонента
public class Level1 extends JComponent implements KeyListener,ActionListener {
Rocket rocket=new Rocket(getWidth()/12-10, getHeight()-(getHeight()/4)-20);
ConfigureWalls config=new ConfigureWalls();
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2=(Graphics2D) g;
config.one();
for(int x=0; x<config.getWall().size();x++) {
g2.drawLine(config.getWall().get(x).getStartx(), config.getWall().get(x).getStarty(), config.getWall().get(x).getEndx(), config.getWall().get(x).getEndy());
}
g.fillOval((int)rocket.getX(), (int)rocket.getY(), 10,10);
}
Вот мой основной, но на JFrame ничего не рисуется
public class Test {
public static void main(String[] args) {
JFrame frame=new JFrame();
frame.setSize(1080,720);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Level1 one=new Level1();
frame.add(one);
frame.setVisible(true);
}
} * +1010 *