미사일 클래스와

적기 클래스를 각각 가지고 있구요

 

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좌표를 받아오는게 잘 안되는거 같기도 하고;;; 맘대로 안되네요 ㅠㅠ

어떤 방식으로 충돌판정 클래스를 작성해야 될지 잘 감이 안옵니다... 조금만 도와주세요 ㅠㅠ