2013-04-22 55 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();