총 게시물 54건, 최근 0 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[독자 Q&A]

게임 개발편 제2장 Project_12 질문입니다.

글쓴이 : 세이크라인                   날짜 : 2012-03-22 (목) 14:51 조회 : 7649
글주소 : http://www.androidside.com/820/153
 
  불멸의 묵시록! 암흑전설
360 랭킹1위, QQ 인기1위, 초특급 블록버스터 RPG, 톱스타 린즈링 모델
ah.bomgames.com
  조이시티 캐리비안의해적 게임
게임, 설현 광고게임! 리얼해상전투, 전략게임 끝판왕!
www.joycity.com
  메피잡고 조던링 득템! 데몬
카우방에서 렙업하고 메피잡아서 조던링 먹던 그 재미! 이제 웹에서 즐기세요!
dm.noblegames.kr
신청하기


코딩소스를 다 짜고 돌려봤는데
 
바깥쪽은 1배 그 안쪽은 2배 맨 안쪽은 3배인데
 
어느곳이든 3배로 적용이 됩니다.
 
왜 그런지 궁금하네요.
 
package kr.rarara;
 
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.Display;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
 
public class Project_2_11Activity extends Activity {
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView(this));
    }
   
    class Arrow {
     public int x, y; // 화살 좌표
     public Bitmap dart; // 화살 이미지
     public int dh; // 화살 size
     
     public Arrow(int _x, int _y) {
      dart = BitmapFactory.decodeResource(getResources(), R.drawable.dart);
      dh = dart.getHeight();
      x = _x;
      y = _y;
     }
    }
   
    class MyView extends View {
     int width, height; // View의 크기
     int cx, cy; // View의 중심
     int tw, th; // 과녁중심
     ArrayList<Arrow> mArrow; // 화살
     Bitmap imgBack, imgTarget; // 배경, 과녁
     
     int arScore[] = {10, 6, 12, 4, 15, 8, 10, 6, 12, 4, 15, 8, 10};
     int score = 0; // 점수
     int tot = 0; // 점수 합계
  public MyView(Context context) {
   super(context);
   // TODO Auto-generated constructor stub
   Display display = ((WindowManager) context.getSystemService
     (Context.WINDOW_SERVICE)).getDefaultDisplay();
   width = display.getWidth();
   height = display.getHeight();
   
   cx = width / 2;
   cy = height / 2 - 30;
   
   imgBack = BitmapFactory.decodeResource(context.getResources(), R.drawable.back);
   imgBack = Bitmap.createScaledBitmap(imgBack, width, height, true);
   
   imgTarget = BitmapFactory.decodeResource(context.getResources(), R.drawable.target_2);
   imgTarget = Bitmap.createScaledBitmap(imgTarget, 280, 280, true);
   
   tw = imgTarget.getWidth() / 2;
   th = imgTarget.getHeight() / 2;
   
   mArrow = new ArrayList<Arrow>();
  }
  @Override
  protected void onDraw(Canvas canvas) {
   // TODO Auto-generated method stub
//   super.onDraw(canvas);
   Paint paint = new Paint();
   paint.setColor(Color.WHITE);
   paint.setTextSize(18);
   
   // 배경
   canvas.drawBitmap(imgBack, 0, 0, null);
   
   // 점수
   canvas.drawText("점수 = " + score, 10, 30, paint);
//   canvas.drawText("각도 = " + deg, 200, 30, paint);
   canvas.drawText("합계 = " + tot, 200, 30, paint);
   canvas.drawBitmap(imgTarget, cx - tw, cy - th, null);
   for(Arrow tDart : mArrow) {
    canvas.drawBitmap(tDart.dart, tDart.x, tDart.y - tDart.dh, null);
   }
  }
  @Override
  public boolean onTouchEvent(MotionEvent event) {
   // TODO Auto-generated method stub
//   return super.onTouchEvent(event);
   if(event.getAction() == MotionEvent.ACTION_DOWN) {
    int x = (int) event.getX();
    int y = (int) event.getY();
    CalcScore(x, y);
    invalidate();
   }
   return true;
  }
  private void CalcScore(int x, int y) {
   // TODO Auto-generated method stub
   int r[] = {40, 90, 140}; // 원의 반지름
   // 각도 계산
   double deg = Math.atan2(x - cx, y - cy) * 180 / Math.PI - 90;
   if(deg < 0) deg += 360;
   
   int n = 3; // 맨 안쪽원은 점수의 3배
   score = 0;
   // 어느 원 영역인지 조사
   for(int i = 0; i < 3; i++) {
    if(Math.pow(cx - x, 2) + Math.pow(cy - y, 2) <= Math.pow(r[i], 2)) {
     mArrow.add(new Arrow(x, y)); // 화살 추가
     for(int j = 0; j < 13; j++) {
      int k = j * 30 + 15;
      if(deg < k) {
       score = arScore[j] * n;
       tot += score;
       break;
      }
     }
     n--;
     if (score > 0) break;
    }
   }
  }
    }
}




추천/비추천 클릭하면 추천받으신 분, 추천하신 분 모두에게 포인트가 지급됩니다.

 
 
덩거니올인 2012-07-11 (수) 03:41
 n--;
 if (score > 0) break;
부분을 
if(score >0) break;
}else
n--;

바꾸시면 제대로 돌아갑니다.

댓글주소
 
 
이카루스031 2015-05-06 (수) 17:54
잘 읽고 갑니다~
댓글주소
이전글  다음글  목록 글쓰기

총 게시물 54건, 최근 0 건 안내 RSS
번호 분류 제목 글쓴이 날짜 조회
54 독자 Q&A  캐릭터 이동방향과 속도값 구하기 2 뚱이괴물 04-01 4547
53 독자 Q&A  6장 슬라이딩 퍼즐 질문입니다 2 쏘드라가쏜다 11-05 4167
52 독자 Q&A  Chapter 4 초원위의 용 2 잉여잉간 03-19 5065
51 독자 Q&A  7장 슈팅게임 비행기 터치로 이동방법 3 슈퍼다니엘 02-13 6176
50 정오표  3쇄 페이지 283 / 페이지 288 오탈자 1 Mechanic 02-11 4480
49 독자 Q&A  스타워즈 슈팅게임 게임속도를 느리게 할수… 2 브릿지 11-18 6264
48 자유  안녕하세요 unity3d 메인메뉴를 만들려고해요 1 맹꽁이조으다 10-25 6188
47 독자 Q&A  Ch 2. 터치로 캐릭터 이동방향 변경하기 관련 … 2 redriver 08-06 7054
46 독자 Q&A  질문이요! 이상합니다!. 1 몽쉐루루 06-28 6530
45 독자 Q&A  getContext, getHolder 1 대구촌동네 06-13 7690
44 독자 Q&A  벽돌 깨기 게임에서요 스테이지 만드는 부분… 3 미나나113 06-07 11458
43 독자 Q&A  짝맞추기 게임 ㅜ.ㅜ 3 맘순이 05-11 10831
42 독자 Q&A  6장 슬라이딩 퍼즐 궁금한게 있어서요. 1 카라아이즈 03-30 7444
41 독자 Q&A  챕터3 풍선터뜨리기... 2 박건휘 03-26 8048
40 독자 Q&A  게임 개발편 제2장 Project_12 질문입니다. 2 세이크라인 03-22 7650
39 독자 Q&A  챕터5, 배경 스크롤링 문의드립니다. 2 실베스테인 03-17 6826
38 독자 Q&A  Chapter 4 _ project_2 초원위의 용 1 Conu 03-04 6773
37 독자 Q&A  책을 읽다가 궁금한게 생겨서 질문 드려요. 4 yamma 02-28 6804
36 정오표  2쇄 page 8 1 전종욱 01-17 7312
35 독자 Q&A  6장 퍼즐 게임 질문입니다 1 무영기사 01-05 9115
 1  2  3  맨끝
 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기