我正在制作一个SFML游戏,我想将屏幕上同时存在的子弹数量限制为5个。
这是所需的最小代码:
#define max_bullets_displayed 5
//...
Bullet* pociski[max_bullets_displayed];
//...
for (int i = 0; i < 5; i++)
{
pociski[i] = 0;
}
//...
//creating bullets when needed
if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
{
for (int i = 0; i < 5; i++)
{
if (pociski[i] == 0)
{
pociski[i] = new Bullet("pocisk.png", sf::Mouse::getPosition().x, sf::Mouse::getPosition().y, 23, 20);
}
}
}
//...
//displaying
for (int i = 0; i < 5; i++)
{
if (pociski[i] != 0) window.draw(pociski[i]->sprite);
}
我认为指针有问题。只能显示其中一个项目符号,即使单击后其余项目也不会显示。没有抛出异常,内存也很好。
答案 0 :(得分:0)
所有的子弹都在相同的位置产生,所以它们被绘制在一起。
pociski[i] = new Bullet("pocisk.png", sf::Mouse::getPosition().x, sf::Mouse::getPosition().y, 23, 20);