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

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

글쓴이 : 세이크라인                   날짜 : 2012-03-22 (목) 14:51 조회 : 8133
글주소 : http://www.androidside.com/820/153
 
  2019년 기대작, 라스트킬
2019년 RPG 기대작! 생생한 전투 현장, 강력한 한방으로 몬스터를 처치하라
last.noblegames.kr
  김용 오마주! 명작온라인
거장 김용 혼이 담긴 최후의 명작, 대작 웹게임RPG, 새로운 무협,상상초월 변신
mj.bomgames.com
  카툰 무협 RPG, 귀검
카툰 속에서 리얼한 전쟁 한판! 스토리에 한번 빠지고, 캐릭터에 두번 빠지고!
gb.topgame.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 5265
53 독자 Q&A  6장 슬라이딩 퍼즐 질문입니다 2 쏘드라가쏜다 11-05 4688
52 독자 Q&A  Chapter 4 초원위의 용 2 잉여잉간 03-19 5548
51 독자 Q&A  7장 슈팅게임 비행기 터치로 이동방법 3 슈퍼다니엘 02-13 6773
50 정오표  3쇄 페이지 283 / 페이지 288 오탈자 1 Mechanic 02-11 4841
49 독자 Q&A  스타워즈 슈팅게임 게임속도를 느리게 할수… 2 브릿지 11-18 6791
48 자유  안녕하세요 unity3d 메인메뉴를 만들려고해요 1 맹꽁이조으다 10-25 6571
47 독자 Q&A  Ch 2. 터치로 캐릭터 이동방향 변경하기 관련 … 2 redriver 08-06 7634
46 독자 Q&A  질문이요! 이상합니다!. 1 몽쉐루루 06-28 6894
45 독자 Q&A  getContext, getHolder 1 대구촌동네 06-13 8231
44 독자 Q&A  벽돌 깨기 게임에서요 스테이지 만드는 부분… 3 미나나113 06-07 12466
43 독자 Q&A  짝맞추기 게임 ㅜ.ㅜ 3 맘순이 05-11 11601
42 독자 Q&A  6장 슬라이딩 퍼즐 궁금한게 있어서요. 1 카라아이즈 03-30 7975
41 독자 Q&A  챕터3 풍선터뜨리기... 2 박건휘 03-26 8576
40 독자 Q&A  게임 개발편 제2장 Project_12 질문입니다. 2 세이크라인 03-22 8134
39 독자 Q&A  챕터5, 배경 스크롤링 문의드립니다. 2 실베스테인 03-17 7264
38 독자 Q&A  Chapter 4 _ project_2 초원위의 용 1 Conu 03-04 7360
37 독자 Q&A  책을 읽다가 궁금한게 생겨서 질문 드려요. 4 yamma 02-28 7208
36 정오표  2쇄 page 8 1 전종욱 01-17 7729
35 독자 Q&A  6장 퍼즐 게임 질문입니다 1 무영기사 01-05 9695
 1  2  3  맨끝
 


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