精灵不显示我希望它们显示的方式

Sprites not displaying how I want them to display

本文关键字:显示 方式 我希望 精灵      更新时间:2023-10-16

我正在制作一个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);
}

我认为指针有问题。只能显示其中一个项目符号,其余项目符号即使在单击后也不会显示。不会引发异常,并且内存正常。

所有子弹都在同一位置生成,因此它们彼此重叠绘制。

pociski[i] = new Bullet("pocisk.png", sf::Mouse::getPosition().x, sf::Mouse::getPosition().y, 23, 20);