我正在尝试制作游戏界面,并且我有一些图像文件(所有这些都是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;
}
我想知道如何添加更多精灵..我想把它们放在地图上。
答案 0 :(得分:1)
您只需创建更多纹理对象 - 每个图像一个sf::Texture
,并按照与目前相同的方式加载文件:
sf::Texture texMap;
sf::Texture texTank;
texMap.loadFromFile("map.png");
texTank.loadFromFile("tank.png");
至于绘图,有多种方法。你可以为每种类型的东西创建一个精灵,或者你可以为每个实际的游戏对象创建一个精灵(例如2个坦克使用相同的精灵或两个独立的精灵):
sf::Sprite sprMap;
sf::Sprite sprTank;
sprMap.setTexture(texMap);
sprTank.setTexture(texTank);
然后像往常一样画出你的精灵:
window.draw(sprMap);
window.draw(sprTank);
当然你可以使用sf::Sprite::setPosition()
等来移动精灵。