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

짝맞추기 게임 ㅜ.ㅜ

글쓴이 : 맘순이                   날짜 : 2012-05-11 (금) 00:11 조회 : 10831
글주소 : http://www.androidside.com/820/160
 
  G마켓 짝맞추기게임
쇼핑을 바꾸는 쇼핑! 스마일클럽 15% 쿠폰, 워너원과 함께하는 콘서트, G마켓
www.gmarket.co.kr
  짝맞추기게임, 옥션
가정의달 짝맞추기게임! 12%+15%+15%쿠폰증정+카드사 할인까지! 어서옥션!
www.auction.co.kr
  11번가 짝맞추기게임
카드최대15%할인, 무이자12개월, OK캐쉬백 적립! 짝맞추기게임
www.11st.co.kr
신청하기


view클래스입니다.
스타트버튼을 누르면 배경음악 나오고 카드 잠깐보여주는것까지 는 되는데 ㅜ.ㅜ
이상하게 카드터치가 안먹혀요..
카드한장을 누르면 뒤집혀야 되는데..안뒤집히고 게임이 종료되요..
이거땜에 일주일째 고생중인데 ㅜ.ㅜ
제발 왜 카드 터치가 안먹히는걸까요 ㅠㅜ
 
 
 
 
package org.Game;
import java.util.Calendar;
import java.util.Random;
import java.util.ArrayList;
import java.util.Arrays;
import android.R.array;
import android.util.Log;
//import android.media.SoundPool;
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.graphics.Rect;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.view.MotionEvent;
import android.view.View;
public class CardGameView extends View {
 public static final int STATE_READY =0 ;
 public static final int STATE_GAME=1 ;
 public static final int STATE_END =2 ;
 public static final int STATE_INTRO=3;
 
  Bitmap btn_Start;
  Bitmap m_BackGroundImage;
  Bitmap m_Card_Backside;
  Bitmap m_Card_Red;
  Bitmap m_Card_Blue;
  Bitmap m_Card_Green;
  Bitmap m_Comp;
 
  int m_state = STATE_INTRO;
 
 MediaPlayer m_Sound_Background;
 SoundPool sp;
 int m_Soundopen;
 Calendar c;
 
 
 Card m_Shuffle[][];
 long time_start, time_end,time=0;
 int cnt_fails=0;
 boolean scoreCompleted;
 Random randcard = new Random();
 
 private Card m_SelectCard_1 = null;
 private Card m_SelectCard_2 = null;
 public CardGameView(Context context) {
  super(context);
  
  
  m_BackGroundImage = BitmapFactory.decodeResource(getResources(), R.drawable.background,null);
  m_Card_Backside = BitmapFactory.decodeResource(getResources(), R.drawable.backside,null);
  m_Card_Red = BitmapFactory.decodeResource(getResources(),R.drawable.front_red);
  m_Card_Blue = BitmapFactory.decodeResource(getResources(),R.drawable.front_blue);
  m_Card_Green = BitmapFactory.decodeResource(getResources(),R.drawable.front_green);
  btn_Start=BitmapFactory.decodeResource(getResources(), R.drawable.btn_start);
  
  
  m_Shuffle = new Card[3][2];
    SetCardShuffle();
  m_Sound_Background = MediaPlayer.create(context, R.raw.love);
 
  CardGameThread _thread = new CardGameThread(this);
  _thread.start();
 }
 @Override
 public void onDraw(Canvas canvas) {
  
  Paint p = new Paint();
  
  canvas.drawBitmap(m_BackGroundImage, 0,0,null); 
  canvas.drawText("걸린시간은"+time+"초 입니다.", 0,50, p);
  canvas.drawText("틀린횟수는"+cnt_fails+"번 입니다.", 0,70, p);
  p.setTextSize(40);
  p.setColor(Color.BLUE);
  
  if(m_state==STATE_INTRO){
   btn_Start = BitmapFactory.decodeResource(getResources(), R.drawable.btn_start);
      
      
   int bw =btn_Start.getWidth();
   int bh =btn_Start.getHeight();
   int cw = canvas.getWidth();
   int ch = canvas.getHeight();
   canvas.drawBitmap(btn_Start, cw/2-(bw/2), ch/2-(bh/2), null);
   
  }else if(m_state==STATE_END) {
   canvas.drawBitmap(m_Comp, 150, 350, null);
   //writeResult(canvas);
   time=time_end-time_start;
   
   time_end=System.currentTimeMillis();//게임끝나는 시간 계산
   c = Calendar.getInstance();
   c.setTimeInMillis(time_end);
   time_end = c.get(Calendar.SECOND);
  
  }
  else if (m_state == STATE_READY|| m_state== STATE_GAME){
  for(int y = 0 ; y< 2; y++){
   for(int x =0 ; x<3;x++)
    
   if(m_Shuffle[x][y].m_state == Card.CARD_SHOW ||
     m_Shuffle[x][y].m_state == Card.CARD_PLAYEROPEN ||
     m_Shuffle[x][y].m_state == Card.CARD_MATCHED ){
    
    if(m_Shuffle[x][y].m_Color == Card.IMG_RED)
     canvas.drawBitmap(m_Card_Red, 40 + x*150, 200 + y*250,null);
    else if(m_Shuffle[x][y].m_Color == Card.IMG_GREEN)
     canvas.drawBitmap(m_Card_Green, 40 + x*150, 200 + y*250,null);
    else if(m_Shuffle[x][y].m_Color == Card.IMG_BLUE)
     canvas.drawBitmap(m_Card_Blue, 40 + x*150, 200 + y*250,null);
   }
   
   else
    canvas.drawBitmap(m_Card_Backside, 40 + x*150, 200 + y*250,null);   
  }
  

 }}
 //public void writeResult(Canvas canvas) {
  //Bitmap tgn = BitmapFactory.decodeResource(getResources(), R.drawable.number);
  //int elapse = (int)((time_end - time_start)/1000);
  //String strElapse = String.valueOf(elapse);
  //Paint paint = new Paint();
  //paint.setTextSize(30);
  //paint.setColor(Color.RED);
  //canvas.drawText("Elapsed Time : ", 20, 30, paint);
  //for(int i=0;i<strElapse.length();i++) {
   //int num = Integer.valueOf(strElapse.charAt(i)+"");
   //num = num==0 ? 10 : num;
   //int endPx = num*26;
   //int beginPx = (num-1)*26;
   //int endPy = 42;
   //int beginPy = 0;

   //canvas.drawBitmap(tgn,new Rect(beginPx, beginPy, endPx, endPy), new Rect(i*26+220, 0, (i+1)*26+220, 42), null);
   //Log.i("경과시간(초):", ""+elapse);
  //}
  //paint.setColor(Color.WHITE);
  //canvas.drawText("Fails : "+cnt_fails+" times", 20, 55, paint);
 // scoreCompleted = true;
// }

 @Override
 public boolean onTouchEvent(MotionEvent event) {
  if(m_state == STATE_READY){
   startGame();
   m_Sound_Background.start();
   m_state = STATE_GAME;
   }
  
  
   else if(m_state == STATE_INTRO){
    m_Shuffle[0][0].m_state = Card.CARD_SHOW;
    m_Shuffle[0][1].m_state = Card.CARD_SHOW;
    m_Shuffle[1][0].m_state = Card.CARD_SHOW;
    m_Shuffle[1][1].m_state = Card.CARD_SHOW;
    m_Shuffle[2][0].m_state = Card.CARD_SHOW;
    m_Shuffle[2][1].m_state = Card.CARD_SHOW;
    m_state = STATE_READY;
    
    //화면 터치 시 카드 앞부분 잠깐 나올 수 있게 card_show 상태로 입력해줌
     }else if(m_state == STATE_GAME){
   if(m_SelectCard_1 != null && m_SelectCard_2 !=null)
    return true;
   int px = (int)event.getX();
   int py = (int)event.getY();
   for(int y = 0 ; y< 2; y++){
    for(int x =0 ; x<3;x++){
     
     Rect box_card = new Rect(40+x*150,200+y*250,40+x*150 + 80,200 + y*250+115);
     if(box_card.contains(px,py)) {
      if(m_Shuffle[x][y].m_state != Card.CARD_MATCHED)
      if(m_SelectCard_1 == null){
       sp.play(m_Soundopen, 1, 1, 0, 0, 1);
       m_SelectCard_1 = m_Shuffle[x][y];
       m_SelectCard_1.m_state = Card.CARD_PLAYEROPEN;
      }
      else{
       if(m_SelectCard_1 != m_Shuffle[x][y]){
        sp.play(m_Soundopen, 1, 1, 0, 0, 1);

        m_SelectCard_2 = m_Shuffle[x][y];
        m_SelectCard_2.m_state = Card.CARD_PLAYEROPEN;
       }    }   }  } }  }
 else if(m_state == STATE_END){
   m_Sound_Background.stop();
   cnt_fails = 0;
   time_start = time_end = 0;
   scoreCompleted = false;
   GameBack();
   m_state=STATE_INTRO;
 }
   invalidate();
   return true;
   }
public void startGame(){
 
 time_end=0;
 time_start=0;
 time=0;// 시간 셋팅
    cnt_fails=0;
  
  try{//화면 멈춰 카드 배치 볼 수 있게
  Thread.sleep(2000);
     }catch(InterruptedException e){
  
     }
  
  m_Shuffle[0][0].m_state = Card.CARD_CLOSE;
  m_Shuffle[0][1].m_state = Card.CARD_CLOSE;
  m_Shuffle[1][0].m_state = Card.CARD_CLOSE;
  m_Shuffle[1][1].m_state = Card.CARD_CLOSE;
  m_Shuffle[2][0].m_state = Card.CARD_CLOSE;
  m_Shuffle[2][1].m_state = Card.CARD_CLOSE;
  
  time_start=System.currentTimeMillis();//게임시작 시간 초단위로 받아옴
  c = Calendar.getInstance();
  c.setTimeInMillis(time_start);
  time_start = c.get(Calendar.SECOND);
  
  invalidate();
 }
 
 public void SetCardShuffle(){
  
  int rand = randcard.nextInt(4);
  
  switch(rand){
   case 0:
   {
   m_Shuffle[0][0] = new Card(Card.IMG_RED);
   m_Shuffle[0][1] = new Card(Card.IMG_BLUE);
   m_Shuffle[1][0] = new Card(Card.IMG_GREEN);
   m_Shuffle[1][1] = new Card(Card.IMG_GREEN);
   m_Shuffle[2][0] = new Card(Card.IMG_BLUE);
   m_Shuffle[2][1] = new Card(Card.IMG_RED);
    break;
   }
   case 1:
   {
    m_Shuffle[0][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[0][1] = new Card(Card.IMG_RED);
    m_Shuffle[1][0] = new Card(Card.IMG_GREEN);
    m_Shuffle[1][1] = new Card(Card.IMG_RED);
    m_Shuffle[2][0] = new Card(Card.IMG_GREEN);
    m_Shuffle[2][1] = new Card(Card.IMG_BLUE);
    break;
   }
   case 2:
   {
    m_Shuffle[0][0] = new Card(Card.IMG_GREEN);
    m_Shuffle[0][1] = new Card(Card.IMG_RED);
    m_Shuffle[1][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[1][1] = new Card(Card.IMG_RED);
    m_Shuffle[2][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[2][1] = new Card(Card.IMG_GREEN);
    break;
   }
   case 3:
   {
    m_Shuffle[0][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[0][1] = new Card(Card.IMG_GREEN);
    m_Shuffle[1][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[1][1] = new Card(Card.IMG_RED);
    m_Shuffle[2][0] = new Card(Card.IMG_RED);
    m_Shuffle[2][1] = new Card(Card.IMG_GREEN);
    break;
    
   }
   default:
   {
    m_Shuffle[0][0] = new Card(Card.IMG_RED);
    m_Shuffle[0][1] = new Card(Card.IMG_RED);
    m_Shuffle[1][0] = new Card(Card.IMG_GREEN);
    m_Shuffle[1][1] = new Card(Card.IMG_GREEN);
    m_Shuffle[2][0] = new Card(Card.IMG_BLUE);
    m_Shuffle[2][1] = new Card(Card.IMG_BLUE);
   } }}
 
 private void GameBack() {
 // TODO Auto-generated method stub
  SetCardShuffle(); 
  
 
   }
 
public void AllMatch() {
 int count = 0;
  
  for(int y=0;y<2;y++) {
   for(int x=0;x<3;x++) {
    if(m_Shuffle[x][y].m_state != Card.CARD_MATCHED) {
   
  count=count+1; 
    }}
  //time_end = System.currentTimeMillis();

 // m_state = STATE_END;
  
  if(count==0){//count 0이면 모두 MATCHED 상태임 
         m_state = STATE_END;
   }
  }

 }
public void checkMatch(){
  
  if(m_SelectCard_1 == null || m_SelectCard_2 == null)
   return;
  
  if(m_SelectCard_1.m_Color == m_SelectCard_2.m_Color){
   
   m_SelectCard_1.m_state = Card.CARD_MATCHED;
   m_SelectCard_2.m_state = Card.CARD_MATCHED;
   
   m_SelectCard_1 = null;
   m_SelectCard_2 = null;
  }   
  else{
   //cnt_fails++;
    
   try {
    Thread.sleep(500);
   } catch (InterruptedException e) {
   }
   
   cnt_fails =cnt_fails+1;//틀린횟수 세주기
      
   
   m_SelectCard_1.m_state = Card.CARD_CLOSE;
   m_SelectCard_2.m_state = Card.CARD_CLOSE;
   
   
   m_SelectCard_1 = null;
   m_SelectCard_2 = null;
  postInvalidate();
 }
 }}




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

 
 
glaxy 2013-12-06 (금) 02:01
소스분석 해보세요
안드로이드 update를 하시던가/..
잘되네요,소스 다른거 드릴가요?
댓글주소
     
     
 
 
개민ㅇㅁㄴ 2015-04-05 (일) 16:11
저도 같은 이유로 잘안되는데 다른 소스 혹시 받아볼수 있을까요 ...
댓글주소
 
 
이카루스031 2015-05-06 (수) 17:48
잘 보고 갑니다~
댓글주소
이전글  다음글  목록 글쓰기

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


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