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

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

글쓴이 : 세이크라인                   날짜 : 2012-03-22 (목) 14:51 조회 : 7850
글주소 : http://www.androidside.com/820/153
 
  여신의 탄생, 여신세계
여신들의 전쟁이 시작된다! 야구여신 조연주가 선택한 풀3D 웹 RPG 여신세계
god.noblegames.kr/
  용의군단의 이름으로 승리하라
전쟁에 미친 군단의 이름으로 가즈아! 2018년 준비된 3D 고퀄리티 RPG!
ys.topgame.kr
  게임회사 취업은 게임잡
게임분야 No.1취업포털, 게임전문구인구직, 알바부터프리랜서까지, 게임전문커뮤니티
www.gamejob.co.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 4822
53 독자 Q&A  6장 슬라이딩 퍼즐 질문입니다 2 쏘드라가쏜다 11-05 4383
52 독자 Q&A  Chapter 4 초원위의 용 2 잉여잉간 03-19 5240
51 독자 Q&A  7장 슈팅게임 비행기 터치로 이동방법 3 슈퍼다니엘 02-13 6421
50 정오표  3쇄 페이지 283 / 페이지 288 오탈자 1 Mechanic 02-11 4613
49 독자 Q&A  스타워즈 슈팅게임 게임속도를 느리게 할수… 2 브릿지 11-18 6497
48 자유  안녕하세요 unity3d 메인메뉴를 만들려고해요 1 맹꽁이조으다 10-25 6339
47 독자 Q&A  Ch 2. 터치로 캐릭터 이동방향 변경하기 관련 … 2 redriver 08-06 7272
46 독자 Q&A  질문이요! 이상합니다!. 1 몽쉐루루 06-28 6677
45 독자 Q&A  getContext, getHolder 1 대구촌동네 06-13 7910
44 독자 Q&A  벽돌 깨기 게임에서요 스테이지 만드는 부분… 3 미나나113 06-07 11870
43 독자 Q&A  짝맞추기 게임 ㅜ.ㅜ 3 맘순이 05-11 11147
42 독자 Q&A  6장 슬라이딩 퍼즐 궁금한게 있어서요. 1 카라아이즈 03-30 7634
41 독자 Q&A  챕터3 풍선터뜨리기... 2 박건휘 03-26 8261
40 독자 Q&A  게임 개발편 제2장 Project_12 질문입니다. 2 세이크라인 03-22 7851
39 독자 Q&A  챕터5, 배경 스크롤링 문의드립니다. 2 실베스테인 03-17 6981
38 독자 Q&A  Chapter 4 _ project_2 초원위의 용 1 Conu 03-04 7009
37 독자 Q&A  책을 읽다가 궁금한게 생겨서 질문 드려요. 4 yamma 02-28 6971
36 정오표  2쇄 page 8 1 전종욱 01-17 7481
35 독자 Q&A  6장 퍼즐 게임 질문입니다 1 무영기사 01-05 9337
 1  2  3  맨끝
 


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