2016-10-14 1 views
0

사용자가 화면을 누를 때마다 이미지가 포함 된 비트 맵을 변경하고 싶습니다. 즉, 기본 이미지는 shadow1입니다. 이제 원하는 것은 사용자가 화면을 터치 한 후이 이미지가 shadow2로 변경된 후 다시 사용자가 shadow3를 터치 한 경우 다음 터치시 이미지가 다시 shadow1로 오면 계속 켜져 있습니다. 에. 그래서 기본적으로 3 개의 이미지가 있고 나는 언제든지 사용자가 화면을 터치 한 다음 각 탭을 사용하여 이미지가 변경 될 때이를 원합니다. 다음 코드는 시도했지만 아직 예상대로 작동하지 않습니다. 즉, 이미지가 shadow1에서 shadow2로 변경되었지만 여러 번 터치 한 경우에도 shadow3 또는 shadow1로 변경되지 않습니다.화면에 닿은 적이있는 이미지 또는 비트 맵 변경

public void Touched(float x, float y) 
{ 
    boom = false; 

    try{ 
     switch (bird.GetState()) { 
     case 0: 
      distance = 0; 
      bird.SetState(1); 
      flapped = true; 
      Bitmap workingBitmap = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow1); 
      bitmapBird = workingBitmap.copy(Bitmap.Config.ARGB_8888, false); 
      if (bitmapBird==workingBitmap) 
      { 

      } 


      riseCounter = 0; 
      pipeValues.clear(); 

      //SoundManager.playSound(2, 1); 

      break; 
     case 1: 
     { 
      riseCounter = 0; 
      flapped = true; 
      t = 3; 

      Bitmap workingBitmappp = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow2); 
      bitmapBird = workingBitmappp.copy(Bitmap.Config.ARGB_8888, false); 

      //SoundManager.playSound(2, 1); 


     } 
     break; 
     case 2: 
     { 
      riseCounter = 0; 
      flapped = true; 
      t = 0; 

     } 
     break; 
     default: 
      Bitmap workingBitma = BitmapFactory.decodeResource(gameLogic.Resources(), R.drawable.shadow3); 
      bitmapBird = workingBitma.copy(Bitmap.Config.ARGB_8888, false); 

      break; 
     } 
    } catch(Exception e){} 
} 

'사례 1'에는 for 루프 또는 while 루프가 있어야하고 사용자가 이미지를 변경하면 언제든지 변경해야한다고 생각합니다. 이걸 도와주세요.

답변

1

int 값을 사용하여 표시되는 이미지를 쉽게 추적 할 수 있습니다. 먼저 클래스 수준에서 int을 초기화합니다.

int num = 0; 

다음과 같이 사용할 수 있습니다.

if(num == 0){ 
     loadFirstImage(); 
     num++; 
    } 
    else if(num == 1) 
    { 
    loadSecondImage(); 
    num++; 
} 
else if(num == 2){ 
    loadThirdImage(); 
    num = 0 ; 
} 
+0

간단하고 훌륭한 대답을하는 데 도움이

case 1: bird.SetState(2); //.... 

희망 같은 것을해야합니다. 고마워요 :) –

1

두 번째 사례 문에서 새 상태를 변경해야한다고 생각합니다. 첫 번째 반복은 상태를 1로 설정합니다.이 경우 결코 변경할 수 없기 때문에 case 1:입니다.

그래서 당신은

+0

해결 된 문제. 귀하의 답변에 감사드립니다. Upvote (Y) –