У меня есть экран с шириной 500 и 400 высотой, и у меня есть вектор с кучей фигур. пусть, например, вектор имеет две разные формы. Я хочу, чтобы объект случайно всплывал из нижней части экрана, достигая определенного восхождения, а затем падаю вниз (подобно игровому фруктовому ниндзя, где плоды - мои фигуры).Перемещение объектов и таймеров
В моем основном (взгляде) У меня есть вектор форм, из которых я создаю таймеры, добавляю к массиву и помещаю их в buttom экрана, используя функцию перевода. Мой таймер принимает прослушиватель действий, который в основном меняет перевод фигуры, чтобы двигаться вверх до восхождения, а затем вниз, но моя проблема в том, что все фигуры начинаются в то же время независимо.
Что-то вроде этого:
Shape f = new Shape(new Area(new Ellipse2D.Double(0, 50, 50, 50)));
f.translate(0, 400);
f.timer = new Timer(10 , taskPerformer);
f.timer.start();
vector.add(f);
Shape f2 = new Shape(new Area(new Rectangle2D.Double(0, 50, 50, 50)));
f2.translate(200, 400);
f2.timer = new Timer(10 , taskPerformer);
f2.timer.setInitialDelay(5000);
f2.timer.start();
vector.add(f2);
и мое действие слушателя:
Random generator = new Random();
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//...Perform a task...
for (Shape s : model.getShapes()) {
// Scale object using translate
// once reached ascent drop down
// translate to diffrenet part of the bottom of the screen
// delay its timer
}
update();
//basically repaints
}
};
Я бегу в проблемы, что все формы следуют один и тот же таймер и начать всплывал в то же время (без задержки) ...
Любые предложения о том, как избежать этого или если есть другой подход, я должен попробовать
Resit с использованием различных таймеров, поддерживать один таймер, который просто обновляет состояние объектов в рамках модели. Случайное добавление новых объектов в список фигур на основе некоторых других требований вместо этого ... – MadProgrammer
Чтобы лучше помочь, отправьте сообщение [MCTaRE] (http://stackoverflow.com/help/mcve) (минимальный полный протестированный и читаемый пример). –
'и у меня есть вектор с кучей фигур' - Не используйте Vector. Вместо этого используйте 'ArrayList'. – camickr