#java #object
#java #объект
Вопрос:
Пытаюсь переместить объект влево от экрана, но не могу. Используя эти два класса (получил третий отдельный класс только для запуска программы).
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.util.Random;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import gu2.PaintWindow_GU2;
import paintpanel.Text;
public class Race {
//Instansvariabler
private PaintWindow_GU2 window;
private Car car1;
private Car car2;
private ImageIcon image = new ImageIcon("images/RacingTrack.png");
Random rand = new Random();
private int x;
private int x2;
Font font = new Font("SansSerif",Font.PLAIN,24);
//Konstruktor som använder sig av variablerna window, car1 och car2
public Race(PaintWindow_GU2 window,Car car1, Car car2){
this.window = window;
this.car1 = car1;
this.car2 = car2;
}
//Action-metosd för att starta racet
public void action(){
window.addIcon(image, 50, 50, true);
window.addIcon(car1.getImage(), car1.getX(), car1.getY(), true);
window.addIcon(car2.getImage(), 600, 205, true);
while(true){
car1.moveTo(600-5, 165);
window.setIconXY(car1.getImage(), car1.getX(), car1.getY());
}
}
}
import javax.swing.ImageIcon;
public class Car {
private ImageIcon image;
private int x;
private int y;
public Car(ImageIcon image) {
this.image = image;
}
public ImageIcon getImage() {
return image;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
public void moveTo(int x, int y) {
this.x = x;
this.y = y;
}
}
Итак, мне не хватает некоторого кода в методе action, но я не уверен, как заставить объект переместиться влево.
Буду признателен за любую помощь, чтобы заставить объект переместиться влево.
Комментарии:
1. Я предлагаю вам добавить задачу в цикл событий для перемещения автомобиля один раз для каждого движения и разрешить потоку GUI обновлять отображение между действиями.
2. Есть хороший способ сделать это? Мне удалось переместить машину влево раньше, но она сразу вернулась в исходное положение.
3. ДА. Вы добавляете таймер, который перемещает его один раз при каждом вызове действия. Множество руководств о том, как делать анимацию.