1

在我的游戏中,我有一个Projectile最初在屏幕右侧高或低(在构造函数中随机选择)生成的类。Projectile自动移动到屏幕左侧,当它离开屏幕左侧时,我想用构造函数创建的新变量重新定义现有变量Projectile。但是,我似乎无法让这个工作。我尝试将其定义为,Projectile *projectile但随后我的代码抛出“表达式必须具有类类型”错误。我怎样才能重新定义它

if (projectile.getX()<=0)
  projectile = new Projectile();
else 
  (projectile.move(x--, y)

我的移动和渲染代码按预期工作,但现在Projectile穿过屏幕一次并消失。

4

1 回答 1

1

该行的问题projectile = new Projectile()是表达式的返回值new Projectile()是 a Projectile*,而不是Projectile对象。然后,您尝试将其分配给 Projectile 对象,但这是行不通的。

projectile = Projectile()如果您不想将代码转换为使用指针,您应该能够通过替换该行来编译代码。另一种选择是添加一个成员函数,将 Projectile 对象重置为其默认状态。如果 Projectile 对象的构建和复制成本很高,则后者可能非常有用。

于 2012-10-13T17:56:09.380 回答