1

私のゲームProjectileでは、画面の右側に最初にスポーンするクラスがあります (コンストラクターでランダムに選択されます)。はProjectile自動的に画面の左側に移動し、画面の左側を離れるとProjectile、コンストラクターによって作成された新しい変数で既存の変数を再定義したいと考えています。しかし、私はこれを機能させることができないようです。として定義しようとしましProjectile *projectileたが、コードで「式にはクラス型が必要です」というエラーがスローされます。どうすれば次のように再定義できますか

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

動作とレンダリング コードは期待どおりに動作していますが、現在、Projectileが画面を 1 回横切って消えてしまいます。

4

1 に答える 1

1

この行の問題は、projectile = new Projectile()式からの戻り値がオブジェクトではなく であることです。次に、それを Projectile オブジェクトに割り当てようとしていますが、うまくいきません。new Projectile()Projectile*Projectile

projectile = Projectile()ポインターを使用するようにコードを変換したくない場合は、その行を に置き換えることでコードをコンパイルできるはずです。別のオプションは、Projectile オブジェクトを既定の状態にリセットするメンバー関数を追加することです。後者は、Projectile オブジェクトの構築とコピーにコストがかかる場合に非常に有益です。

于 2012-10-13T17:56:09.380 に答える