Я делаю автомобильную игру в Java. Скорость дороги задается в основном методе, но мне нужно обновить скорость (машина выходит за границы и замедляется из-за травы).
Здесь часть, в которой я хочу контролировать скорость, изменяется.
if(collision[12] > x)
{
roadSpeed = 150;
System.out.println("outside");
}
else
{
System.out.println("inside");
roadSpeed = 100;
}
Вот основной метод до того момента, когда мне нужно обновить.
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable() {
public void run() {
final TestRoad road = new TestRoad();
road.timer.setDelay(roadSpeed);
После изменения типа int метод main не обновляет задержку таймера.
Я просматривал списки изменений, но не хочу никаких кнопок или ползунков.
где объявлено int, где оно называется
public Boolean start = true;
public int i;
public int x;
public int y;
public int z;
public static int roadSpeed = 100; //<<<<<<<<<<declared here
public int lcolPoint = 0;
public int rcolPoint = 0;
public int colSlot = 0;
public int colOffset = 0;
public int carY;
public int[] collision;
public int[] colBuffer;
private BufferedImage carImg;
private Boolean right=false;
private Boolean left=false;
private Boolean first=true;
public TestRoad(){
this.setFocusable(true);
addKeyListener(this); //THIS IS ADDING THE KEYLISTENER
Color colors = new Color(51,102,0);
setBackground(colors);
//uses setPreferredSize instead of setSize because parent component utilizes a layout manager.
setPreferredSize(new Dimension(500, 500));
collision = new int[500];
colBuffer = new int[2];
for(int i=0; i<500; i++){
collision[i] = 0;
}
timer = new javax.swing.Timer(25, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
addPoint();
carMove(); //<<<<< called here
repaint();
}
});
carmove -
public void carMove()
{
if(right==true)
x+=8;
if(left==true)
x-=8;
colBuffer[0] = collision[1];
collision[1] = lcolPoint;
collision[colSlot] = lcolPoint;
for(int z=2; z<21; z++){
colBuffer[1] = collision[z];
collision[z] = colBuffer[0];
colBuffer[0] = colBuffer[1];
}
if(collision[12] > x)
{
roadSpeed = 100;
System.out.println("outside");
}
else
{
System.out.println("inside");
roadSpeed = 50;
}
}