我正在尝试制作一个看起来像鼠标光标但看起来像三角形的几何体

问题描述 投票:0回答:1

我尝试更改颜色函数,使草皮像背景一样被涂成黑色,但这不起作用我不知道还能做什么,因为这是我第一次使用 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);
    }
c++ sfml
1个回答
0
投票

如果设置每个顶点的颜色,您应该得到一个纯色的四边形。 如果将一半顶点设置为白色,其余顶点设置为黑色,您将获得两种颜色之间的渐变。

您可能无法按预期工作,并且只有四个顶点,您最好直接设置它。

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;

另请注意,如果你将其设置为黑色并且背景颜色为黑色,你当然不会看到任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.