在我的游戏中,我有一个Projectile
类,该类最初在屏幕的右侧(高电平或低电平)生成(在构造函数中随机选择)。 Projectile
自动移动到屏幕的左侧,当它离开屏幕的左侧时,我想用构造函数创建的新Projectile
重新定义现有变量。但是,我似乎无法正常工作。我尝试将其定义为Projectile *projectile
,但随后我的代码抛出“表达式必须具有类类型”错误。我该如何重新定义
if (projectile.getX()<=0)
projectile = new Projectile();
else
(projectile.move(x--, y)
我的移动和渲染代码按预期工作,但现在
Projectile
遍历屏幕一次,然后消失了。 最佳答案
projectile = new Projectile()
行的问题在于,表达式new Projectile()
的返回值是Projectile*
,而不是Projectile
对象。然后,您尝试将其分配给Projectile对象,但这将无法正常工作。
如果您不想将代码转换为使用指针,则应该可以通过用projectile = Projectile()
替换该行来编译代码。另一种选择是添加一个成员函数,该函数将Projectile对象重置为其默认状态。如果射弹对象的构造和复制成本很高,则后者可能非常有益。