gpt4 book ai didi

c++ - 如何在 SFML 上添加更多 Sprite ?

转载 作者:行者123 更新时间:2023-11-28 04:40:16 25 4
gpt4 key购买 nike

我正在尝试制作游戏界面,并且我有一些图像文件(所有这些都是 PNG)。这些是图像文件:Tank、map、statusbar、barguage

这是我的代码

    #include <SFML/Graphics.hpp>
#include <cassert>
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "SFML works!");
sf::Texture tex;
sf::Sprite map;
sf::Sprite tank;
enter code here

assert(tex.loadFromFile("map_skybridge.png"));

map.setTexture(tex);
tank.setTexture(tex);

sf::Event event;
while (window.isOpen())
{
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(map);

window.display();
}
return 0;
}

我想知道如何添加更多 Sprite 。我想将它们放在 map 图像上。

最佳答案

您只需创建更多纹理对象 – 每个图像一个 sf::Texture 并以与目前相同的方式加载文件:

sf::Texture texMap;
sf::Texture texTank;

texMap.loadFromFile("map.png");
texTank.loadFromFile("tank.png");

至于绘图,有多种方法。您可以为每种要绘制的东西只创建一个 sprite,或者您可以为每个实际游戏对象创建一个 sprite(例如,2 个坦克使用相同的 sprite 或两个不同的 sprite):

sf::Sprite sprMap;
sf::Sprite sprTank;

sprMap.setTexture(texMap);
sprTank.setTexture(texTank);

然后像往常一样绘制 Sprite :

window.draw(sprMap);
window.draw(sprTank);

当然,您可以使用 sf::Sprite::setPosition() 等移动 Sprite

关于c++ - 如何在 SFML 上添加更多 Sprite ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50328119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com