2012-04-19 94 views
0

我想讓外星人與射手相交,當交點發生時,我想退出遊戲。然而,他們在右下角穿過射手沒有代碼,甚至執行矩形的交點問題

這是我的代碼:代碼

Rectangle rectlauncher = new Rectangle(launcherXPos, 720, launcherImg.Width, launcherImg.Height); 
Rectangle rectinvader = new Rectangle(invaders[Count].GetXPos(), invaders[Count].GetYPos(),invaderImg.Width, invaderImg.Height); 

if (rectinvader.Intersects(rectlaucher)) 
    { 
    this.Exit(); 
} 

值:

launcherXPos = 512; 

      invaderDirection = -1; 
      invaderSpeed = 20; 

      invader = new invader[55]; //displays the number entered of 'invaders' 

      int XPos = 512; 
      int YPos = 100; 
+0

你的價值觀是錯誤的,你是唯一能找出原因的人。你提供的代碼應該沒問題。 – 2012-04-19 21:39:28

+0

值看起來不錯,你可以重新檢查上面編輯的版本請frey,謝謝kuttah x。 – user1275084 2012-04-19 21:48:19

+0

該代碼仍然看起來不錯。我認爲你的邏輯在其他地方一定是錯的。 – 2012-04-19 21:53:22

回答

1

也許你正在繪製一些你元素的原點不是零?

嘗試解決此問題的一種方法是在碰撞時設置一個斷點,只有當您點擊Space時纔會觸發該斷點。開始玩遊戲,當你應該相交時,點擊空格,然後查看你在矩形中設置的值。試着弄清楚爲什麼他們不代表真正發生的事情。

+0

哇,那個空間斷點的東西真棒,我想知道爲什麼我從來沒有想過它之前:) – neeKo 2012-04-20 09:25:46