私はSFMLにかなり慣れていないので、スペースバーを押すたびに弾丸を発射するスクロール飛行機ゲームを作ろうとしています. すべての動きが機能するようになりましたが、弾丸を別のクラスファイルに配置して、後でそれらのセット全体を保持できるようにする方法を見つけようとしています (IE create.bullet(), create.missle ()など)。ここに私が今持っているコードがあります。
void create::bullet(int xPos, int yPos)
{
sf::Texture bulletTexture;
if(!bulletTexture.loadFromFile("bullet.png"))
cout << "There was an error loading the bullet texture file." << endl;
sf::Sprite bulletSprite;
bulletSprite.setTexture(bulletTexture);
bulletSprite.setPosition(xPos, yPos);
window.draw(bulletSprite);
}
メインクラスに window という sf::RenderWindow インスタンスがあるのですが、別のクラスから直接参照できないようです。ベロシティもまだ実装できていませんが、実装できるはずです。しかし、私が助けを必要としているもう1つのことは、発射できる弾丸の数に制限がないようにすることです. スペースバーが押されるたびにこの関数を実行すると、スプライトが新しい位置にリセットされ、古い位置が削除されるようです。助けてくれてありがとう!