TimerTask mTask = new TimerTask() {
@Override
public void run() {
//랜덤한 위치의 오브젝트를 배열에 추가하는 코드 작성.
//오브젝트, x좌표, y좌표
int xlevel = (int)(Math.random()*level)+1;
for(int i=0; i<xlevel; i++){
int type = (int)(Math.random())*2;
aryX.add(new Integer ((int)(Math.random())*7));
aryY.add(new Integer(0));
aryOb.add(imageback[type]);
}
}
};
Timer mTimer = new Timer();
mTimer.schedule(mTask, 100, 1500); //실행TimerTask, 초기실행딜레이, 반복실행딜레이
//핸들러를 실행시키는 문장
mHandler.sendEmptyMessageDelayed(0, 100);
}
public void onDraw(Canvas canvas) {
//배열안의 모든 요소가 움직이는 코드 작성.
for (int i = 0; i < aryOb.size(); i++) {
//y += dy; // 세로로 이동
counter++;
int n = counter % 20 / 10;
Bitmap ob = aryOb.get(i);
Integer x = (Integer)aryX.get(i);
Integer y = (Integer)aryY.get(i);
//표시할 이미지, 그 이미지의 x좌표, 그 이미지의 y좌표, null
if(aryOb.size() > 20){
aryOb.remove(aryOb.size()-20);
}
canvas.drawBitmap(ob, x.intValue(), y.intValue()+dy, null);
}
} // onDraw 끝
//------------------------------------
// Timer Handler : onDraw를 반복실행
//------------------------------------
//장애물의 움직임을 보여줄 핸들러
Handler mHandler = new Handler() { // 타이머로 사용할 Handler
public void handleMessage(Message msg) {
invalidate(); // 화면을 갱신한다 -> onDraw() 다시 실행
mHandler.sendEmptyMessageDelayed(0, 100); // 10/1000초마다 실행
}
}; // Handler
현재 코드입니다.
일정 시간마다 랜덤한 곳에서 랜덤한 오브젝트가 생성되고,
수직으로 움직이는 걸 구현하고싶어
배열을 이용하고 배열의 모든 요소를 보여주면 되지 않을까?
하고 진행했는데 아무리해도 되지않는군요. 알고리즘 자체의 문제일까요, 아니면 코드의 문제일까요?
조언 부탁드립니다..