在C#/XNA/monogame中,如何将一个类的引用传递给另一个类中的函数?
所以,我有一个敌人,当它死了,它需要被删除。因此,在该类的基类中,我试图放入一个函数,该函数删除第一个类,但是我在传递对该类的引用时遇到了问题。如何传递引用,或者是否有其他更好的方法删除类 只要问一下你是否需要澄清,因为我很难解释这一点在C#/XNA/monogame中,如何将一个类的引用传递给另一个类中的函数?,c#,xna,monogame,C#,Xna,Monogame,所以,我有一个敌人,当它死了,它需要被删除。因此,在该类的基类中,我试图放入一个函数,该函数删除第一个类,但是我在传递对该类的引用时遇到了问题。如何传递引用,或者是否有其他更好的方法删除类 只要问一下你是否需要澄清,因为我很难解释这一点 public override void Update(GameTime gameTime) { base.Update(gameTime); if (currentHealth <= 0) { alive = fa
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
if (currentHealth <= 0)
{
alive = false;
//This is not working \/
killswitch(ref Game1.ant1);
//Kills bug and gives out loot etc.
}
else if (position == house1 || position == house2 || position == house3 || position == house4
|| position == house5 || position == house6 || position == house7 || position == house8
|| position == house9 || position == house10 || position == house11 || position == house12)
{
killswitch(ref Game1.ant1);
}
public void killswitch(ref Ant ant1)
{
//This is where loot is given
Global.money += bountyGiven;
//delete class code here
}
公共覆盖无效更新(游戏时间游戏时间)
{
更新(游戏时间);
如果(currentHealth从头部写入…这可能会给你一个如何处理无限数量蚂蚁的提示
Public Class Ant
public position as vector2
public health as integer = 100
public isdead ad boolean = false
End class
Public Class Ants
Inherit list (of Ant)
Public Sub AddAnt(Position)
// add new ant to list
End Sub
Public Sub Update()
For Each ant As ant In ants
If Not(ant.isdead)
// update ants
End If
Next
Me.RemoveAll(function(c) c.isdead = true)
End Sub
Public Sub Draw()
For Each ant As ant In ants
If not(ant.isdead)
// draw ants
End If
Next
End Sub
End class
显示一些代码。您所做的与上一个问题完全相同…我们只能猜测您正在尝试做什么。向我们显示您正在做什么。不完全正确,但我将输入一些代码请参见,因此我需要传递对ant1的引用(在Game1.cs中制作)所以我可以删除这个类。什么是Game1.ant1
?killswitch
不接受任何参数,为什么要传递一个参数?没错。我已经更新了代码,但它仍然说:“非静态字段、方法或属性需要一个对象引用,这是一个sub(我是一个新程序员)很抱歉,我没有看到你要求c#…我用(伪)basic编写。sub在c中是无效的,你介意把它翻译成c吗?我以前从未用过basic。谢谢你,到目前为止,这已经很好地工作了。我唯一没有翻译的是“我。Removeall(…)”,但我会仔细阅读。无论如何,非常感谢!!!检查这里的Me Removeall()