나는 500 개의 너비와 400 개의 높이를 가진 스크린을 가지고 있으며, 나는 모양이 많은 벡터를 가지고있다. 예를 들어 벡터에 2 가지 모양이 있다고 가정 해 봅시다. 나는 화면의 바닥에서 무작위로 튀어 나오게하는 물체가 특정 오르막에 이르렀다가 다시 떨어지는 것을 원한다. (게임 과일 닌자와 마찬가지로, 과일은 내 모양이다.)움직이는 객체와 타이머
내 주요 (보기) 나는 타이머를 인스턴스화하는 도형의 벡터를 가지고 있습니다. 배열에 추가하고 translate 함수를 사용하여 화면의 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) (최소한의 완전한 테스트 및 판독 가능 예제)를 게시하십시오. –
'와 나는 모양이 많은 벡터를 가지고있다. '- 벡터를 사용하지 마라. 대신에'ArrayList'를 사용하십시오. – camickr