2013-04-22 49 views
-1
遇到問題

即時修復這一個錯誤的遊戲堆棧<>彈出錯誤

if (type.BoundingCircle.Intersects(Dragon.BoundingRectangle))  
      { 
       rubys.Pop(i--);   
       OnTypeCollected(type.Dragon); 
      } 

無重載方法「流行」需要1個參數

+0

這應該是什麼意思'rubys.Pop(i - );'? – I4V 2013-04-22 22:40:05

+0

@ I4V:這意味着紅寶石從堆棧中移除! – 2013-04-22 22:41:54

+0

你希望我在流行音樂中做什麼? – 2013-04-22 22:43:48

回答

3

從堆棧中取出紅寶石,並查看紅寶石是....

var rubyOnTopOfStack = rubys.Pop(); 

雖然您可能想要: -

if(stack.Count > 0) rubys.Pop(); 

如果有任何機會,rubys將是空的,否則它會拋出異常

+0

當龍與其相交時,它將在此過程中移除幾顆紅寶石。我只想要一個紅寶石一次消失。有任何解決這個問題的方法嗎? – 2013-04-22 22:45:28

+1

@Peanues_are_delicous聽起來像是也許你在錯誤的地方有彈出,如果你有多個條件移除ruby,你可能首先要評估所有的條件,並設置一個標誌來說刪除一個紅寶石,然後彈出紅寶石最後 – 2013-04-22 22:50:16

+0

好的感謝Keith。 – 2013-04-22 22:53:13

2

錯誤是告訴你,你不需要提供任何參數給Pop,實際上documentation specifies這個方法不接受任何參數。

試試這個:

if (type.BoundingCircle.Intersects(Dragon.BoundingRectangle))  
{ 
    rubys.Pop();   
    OnTypeCollected(type.Dragon); 
} 
+0

我試過這個,但是當龍與紅寶石相交時,幾顆紅寶石消失不是一個。 – 2013-04-22 22:41:15

+0

@Peanues_are_delicous,你真正的問題是什麼?因爲這個答案對於'方法沒有重載'的問題是正確的'Pop'需要1個參數。使用沒有參數的'Pop' :) – I4V 2013-04-22 22:44:32

+1

@Peanues_are_delicous聽起來好像你可能徹底誤解了'Pop'的作用。 'Stack '是一個*數據結構*它可以幫助你組織遊戲中的代碼對象,但它並不是指屏幕上的寶石堆棧。 – 2013-04-22 22:45:05

2

正確的語法是:

rubys.Pop();