2016-08-27 3 views
0

나는 간단한 게임을 만들고 있는데 캐릭터 회전이 붙어 있습니다. 화살표 키로 간단한 제어를했지만 회전은하지 않았습니다. 그런 다음 RotateFlipType 함수를 사용하여 문자를 회전 시키지만 동일한 키를 계속 회전시킵니다. 그래서 다른 키를 누를 때마다 픽처 박스 이미지를 리셋 한 다음 올바른 방향으로 회전시켜야합니다.C# Picturebox Reset

void Rotate(string a) 
    { 
     switch (a) 
     { 
      case "up": 
       if (rotation != "up") 
       { 
        rotation = "up"; 
        pb_sprite.ImageLocation = null; 
        pb_sprite.ImageLocation = @"Images/tenk.png"; 
       } 
       break; 
      case "down": 
       if (rotation != "down") 
       { 
        rotation = "down"; 
        pb_sprite.ImageLocation = null; 
        pb_sprite.ImageLocation = @"Images/tenk.png"; 
        pb_sprite.Image.RotateFlip((RotateFlipType.Rotate180FlipNone)); 
       } 
       break; 
     } 
    } 

"최대"의 경우 정상적으로 작동합니다. 그러나 코드가 교체 될 때 오류가 발생합니다.

System.NullReferenceException 

나는 위치를 삭제했다. 그러나 나는 그것을 돌려 놓았다 (회전을 다시 놓기 위해). 왜 컴파일러는 여전히 이미지가 없다고 생각합니까? 감사합니다.

답변

1

은이 꽤 좋은 노력 덕분에

case "down": 
      if (rotation != "down") 
      { 
       rotation = "down"; 
       pb_sprite.ImageLocation = null; 
       pb_sprite.ImageLocation = @"Images/tenk.png"; 
       pb_sprite.Load(); 
       pb_sprite.Image.RotateFlip((RotateFlipType.Rotate180FlipNone)); 
      } 
      break; 
+0

을보십시오. 회전이 Picturebox 센터 주변에있을 수있는 방법이 있습니까? – Morsus

+0

도와 드리겠습니다! Hmmm ... 문제없이 PB를 자르고 회전하고 크기를 조정했습니다. 이미지가 중심 축에서 회전했다. 이미지가 직사각형 인 경우 90도 회전은 물론 높이/너비의 비율을 변경합니다. 뒤집을 때 이미지에 어떤 현상이 발생합니까? –

+0

내 이미지가 60x110이고 뒤집기를 원하지 않습니다. / – Morsus