2014-02-15 2 views
0

나는 게임을하고 총을 쏠 때마다 타이머를 작동시킨다. 타이머 (다음 코드가 될 비트)에서 총알의 경계가 적의 경계와 교차하는지 감지합니다. 그렇다면 적을 잠시 적색으로 만든 다음 다시 적을 변경하십시오. 다음 코드는 내가 타이머의 맨 아래에있는 것입니다 :명령에서 패널 배경 이미지가 변경되지 않습니까?

  if (Bullet.Bounds.IntersectsWith(Enemy.Bounds)) 
      { 
       if (isProne) 
       { 
        Enemy.BackgroundImage = TheEnemyHurt; 
        Bullet.Location = new Point(421, 236); 
        Bullet.Visible = false; 
        shooting = false; 
        Enemy.BackgroundImage = TheEnemy; 
        bulletTimer.Stop(); 
       } 
       else if (!isProne) 
       { 
        Enemy.BackgroundImage = TheEnemyHurt; 
        Bullet.Location = new Point(515, 143); 
        Bullet.Visible = false; 
        shooting = false; 
        Enemy.BackgroundImage = TheEnemy; 
        bulletTimer.Stop(); 
       } 
      } 

그러나 그것은 단지 일반 적 이미지 (TheEnemy) TheEnemy 및 TheEnemyHurt 코드의 상단에 모두 비트 맵이기 때문에 그것을 유지 :

Bitmap TheEnemy = new Bitmap(Resources.Enemy_Bigger_); 
    Bitmap TheEnemyHurt = new Bitmap(Resources.EnemyHurt_Bigger_); 

나는 그냥 일반 이미지로 유지 이유를 잘 모릅니다, 그리고 두 번째의 상처 하나에 설정 나던? 고맙습니다!

+0

BackgroundImage가 앞뒤로 즉시 전환되는 것을 멈추고/일시 중지하는 것으로 보이지 않습니다. –

답변

1

고객님의 문제는 패널 BG 을 변경하고 즉시 변경하려는 것입니다..

Enemy.BackgroundImage = TheEnemyHurt; 
Bullet.Location = new Point(421, 236); 
Bullet.Visible = false; 
shooting = false; 
Enemy.BackgroundImage = TheEnemy; 

그래서 당신은 배경을 변경하고 있지만 화면도 새로 고침 전에 아마 그것을 다시 변경 : 당신은하고있다. 당신이 시도 할 수있는 것은이 같은 다른 타이머 (의사 코드)를 사용할 수 있습니다 :

bulletTimer :

Enemy.BackgroundImage = TheEnemyHurt; 
Bullet.Location = new Point(421, 236); 
Bullet.Visible = false; 
shooting = false; 
bulletTimer.Stop(); 
hurttimer.Start(); 

hurttimer :

Enemy.BackgroundImage = TheEnemy; 
hurttimer.Stop(); 

당신이 할 수있는 hurttimer의 간격을 설정 내용에 따라 그것은 적들이 얼마나 오래 상처 입어야하는지입니다. HTH

+0

@ user3105642이 도움이 되었습니까? – davidsbro

관련 문제