2011-04-25 49 views
2

我正在研究一個簡單的2D遊戲與pictureboxes,但我努力與碰撞檢測。PictureBox Intesect

我一直在四處尋找,並與此想出了:

 public bool ObstacleHit() 
    { 
     if (pbPlayer.Bounds.IntersectsWith(pbObstacle1.Bounds)) 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

這是這裏所說的:

  if (e.KeyChar == 'w') 
      { 
        ObstacleHit(); 
        if(ObstacleHit() == true) 
        { 
         moveUp();  
        } 
      } 

,但是這是行不通的。

+1

一個不同的主題,你的功能可能是'公共布爾ObstacleHit(){返回!pbPlayer.Bounds.IntersectsWith(pbObstacle1.Bounds)}' – 2011-04-25 15:54:45

+0

並在這個問題上? ;) – 2011-04-25 16:14:44

+0

請不要在標題中加入「[C#]」。只需將其留在標籤中。 – 2011-04-25 17:38:09

回答

1

嗯,看看這個是否有效。對於各種關鍵選擇而不是if語句,你可以實現switch-case語句的使用。

if (e.KeyCode == Keys.W) 
     { 
       bool hit = ObstacleHit(); 

       if(hit == true) 
       { 
        moveUp();  
       } 
     } 
+0

謝謝,它的工作! – 2011-04-25 16:24:56

0

使用下面的代碼檢查KeyChar

if (e.KeyChar == (char)Keys.W) 
{ 
    ObstacleHit();  // unnecessary call of method here   
    if(ObstacleHit()) // need not to compare a bool value 
     { 
      moveUp();  
     } 

}