我尝试更改颜色函数,使草皮像背景一样被涂成黑色,但这不起作用我不知道还能做什么,因为这是我第一次使用 sfml 代码:
#include <SFML/Graphics.hpp>
#include <iostream>
class Player
{
public:
Player()
: position(500,500), angle(45), array(sf::Quads, 4)
{
array[0].position = sf::Vector2f(0, -100);
array[1].position = sf::Vector2f(-100, 100);
array[2].position = sf::Vector2f(0,25);
array[3].position = sf::Vector2f(100, 100);
for (size_t i = 0; i < array.getVertexCount(); i++)
{
array[i].color = sf::Color::White;
array[2].color = sf::Color::Black;
}
}
void Draw(sf::RenderWindow& window)
{
sf::Transform transform;
transform.translate(position).rotate(angle);
window.draw(array, transform);
}
如果设置每个顶点的颜色,您应该得到一个纯色的四边形。 如果将一半顶点设置为白色,其余顶点设置为黑色,您将获得两种颜色之间的渐变。
您可能无法按预期工作,并且只有四个顶点,您最好直接设置它。
array[0].position = sf::Vector2f(0, -100);
array[0].color = sf::Color::White;
array[1].position = sf::Vector2f(-100, 100);
array[1].color = sf::Color::White;
array[2].position = sf::Vector2f(0,25);
array[2].color = sf::Color::White;
array[3].position = sf::Vector2f(100, 100);
array[3].color = sf::Color::White;
另请注意,如果你将其设置为黑色并且背景颜色为黑色,你当然不会看到任何东西。