作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作游戏界面,并且我有一些图像文件(所有这些都是 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/
我是一名优秀的程序员,十分优秀!