미사일 클래스와
적기 클래스를 각각 가지고 있구요
MyGameView의 MyThread 클래스에
각각
public void MoveAndDrawMissle(Canvas canvas) {
if (mMode == PAUSE || MissleList.size() == 0) return;
for (int i = MissleList.size() - 1; i >= 0; i--) { // ArrayList를 역순으로 검사
if (MissleList.get(i).Move() == true) // 미사일 이동 후 화면을 벗어났는지 판단
MissleList.remove(i); // 미사일 삭제
}
for (Missle tMissle : MissleList) { // 모든 미사일을 canvas에 그린다
canvas.drawBitmap(Arrow[tMissle.dir], tMissle.mx - aw, tMissle.my - ah, null);
}
} // MoveAndDrawMissle
-------------------------------------------------------------------
private void MoveAndDraw(Canvas canvas) {
if (mMode == PAUSE) return;
for (int i = EnemyList.size() - 1; i>= 0; i--) { // EnemyList를 역순으로 검사
if (EnemyList.get(i).Move() == true){ // 적 이동후 화면을 벗어낫으면
EnemyList.remove(i); // 리스트에서 삭제
}
uex = EnemyList.get(i).x;
uey = EnemyList.get(i).y;
}
for (MyEnemy tEnemy : EnemyList) { // 리스트 처음부터 끝까지 canvas에 그리기
canvas.drawBitmap(Enemy[tEnemy.dir], tEnemy.x - ew, tEnemy.y - eh, null);
}
} // MoveAndDraw
----------------------------------------------------------------------------
이런식으로 적기와 미사일을 화면상에 그려주도록
while (canRun) {
canvas = null;
try {
canvas = mHolder.lockCanvas();
synchronized (mHolder) {
ScrollImage(); // Viewport 이동
src.set(x1, y1, x1 + cx, y1 + cy); // 이동한 Viewport 좌표
src1.set(x2, y2, x2 + cx, y2 + cy);
canvas.drawBitmap(imgBack1, src, dst, null); // 원경
canvas.drawBitmap(imgBack2, src1, dst, null); // 근경
MoveAndDrawMissle(canvas); // 미사일
MoveAndDraw(canvas);
canvas.drawText("점수 : ", 200, 20, p);
canvas.drawBitmap(Spaceship[Dir], tx, ty, null); // 우주선
cont++;
while(cont == 250){
synchronized (mHolder) {
for(int i = 0; i <= 1; i++){
// EnemyList.add(new MyEnemy(20, 0));
EnemyList.add(new MyEnemy(150, 0));
// EnemyList.add(new MyEnemy(270, 0));
cont = 0;// 새로운 오브젝트 생성 후 ArrayList에 저장
}
}
}
}
---------------------------------------------------------------------------------------
run 메소드에 넣어놨어요;;
사실 어떤분의 블로그 강좌를 봐가면서 천천히 따라 만들어 가고 있었는데
이분께서 다 완성하시질 않아서, 중간부터는 제 힘으로 열심히 해왔습니다만... 역시 허접스러운 실력으론 역부족이네요 ㅠㅠ
이제 점수 넣는것과 게임의 시작과 종료, 그리고 가장 중요한 충돌판정을 해야 하는데...
적기의 어레이에서 각각의 적기의 x,y좌표를 받아오는게 잘 안되는거 같기도 하고;;; 맘대로 안되네요 ㅠㅠ
어떤 방식으로 충돌판정 클래스를 작성해야 될지 잘 감이 안옵니다... 조금만 도와주세요 ㅠㅠ