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