【发布时间】:2015-07-04 15:28:25
【问题描述】:
我正在使用一个函数,它将获取两个类的状态我应该如何生成该函数,现在我正在这样做
if((b1.fxmin>s.xmin&&s.ymin==b1.fymax)&&b1.fxmin<s.xmax&&s.ymin==b1.fymax))
{
collides=true;
b1.isFiring=false;
}
Else if((b1.fxmin>s1.xmin&&s1.ymin==b1.fymax)&&b1.fxmin<s1.xmax&&s1.ymin==b1.fymax))
{
collides1=true;
b1.isFiring=false;
}
在这个项目中,子弹会击中蜘蛛,如果它碰撞蜘蛛就会消失,b1是子弹类的对象,s1和s 是蜘蛛。
我在这个游戏中有 7 个蜘蛛,我创建了 7 个碰撞变量和 7 个 if 语句,这意味着当我增加一个蜘蛛时,我需要添加这个碰撞变量和 if 语句
我尝试在子弹课上这样做,但没有成功。我应该如何将蜘蛛对象传递给子弹类?
【问题讨论】:
-
我在类 Program 的 main 函数中做这一切
-
欢迎来到 Stack Overflow。如果你想要一个以一个子弹和一个蜘蛛作为参数的非成员函数,那么你应该编辑标题;这是不准确的。你能告诉我们更多关于你希望这个函数做什么以及碰撞标准的信息吗?
-
谢谢你的建议,>每次发射子弹时都会检查是否与蜘蛛重合,发射子弹时调用此函数,b1.isFiring=true,这些if语句正在检查子弹是否碰撞,如果发生碰撞,则子弹发射状态将设置为 false,collides(本地变量)将设置为 true,如果 collides 为 true,则它将从屏幕上移除蜘蛛
-
这不能回答你的问题(我认为 benjy 做得很好),但我建议将你的子弹和蜘蛛声明为数组而不是单个变量。这将为您节省大量重复代码。然后你可以迭代:
foreach (b in bullets)b.collides(s)