Raylib DrawTriangle() 用法

Raylib DrawTriangle() usage

简介

您好!我最近一直在研究 Asteroids 克隆,但有一些问题,其中之一与 Raylib 的 DrawTriangle() 函数有关。

代码

// player triangle
static Triangle PlayerTriangle = {
    // point positions
    {100, 10}, // point A
    {10, 100}, // point B
    {10, 10},  // point C
    
    // player color
    BLACK
};

// player window element
static const WindowElement PlayerElement = {
    // element type: triangle
    TRIANGLE,

    // element data (type Triangle)
    &PlayerTriangle
};

问题

然后通过 drawElement() 函数来渲染玩家的 WindowElement。我确信 Raylib 的 DrawTriangle() 函数正在被调用,因为取自 here(shapes/basic 形状)的示例已正确执行,但我不确定为什么我的代码中显示的值不是 任何事!

注意与建议

首先,我要感谢社区,因为我是 Stack Overflow 的新手,可能在这里至少犯了一个错误。其次,请注意,问题很可能发生在 values 中,我将 in to DrawTriangle(),不是我代码的逻辑部分,因为 raylib's website 中的示例有效。

编辑

最小可重现示例:

// dependencies
#include<raylib.h>
#include<stdlib.h>

// driver code
int main(int argc, char** argv)
{
    // window width/height
    const unsigned int screenWidth = 1000;
    const unsigned int screenWidth = 1000;

    // initialize window
    InitializeWindow(screenWidth, screenHeight, "Amazing Window");

    // game loop
    while(! WindowShouldClose())
    {
        // begin drawing
        BeginDrawing();

        // draw triangle
        DrawTriangle(
            // triangle vertices
            {100, 10},
            {10, 100},
            {10, 10},

            // triangle color
            BLUE
        );

        // end drawing
        EndDrawing();
    }
}

好的,所以我做了一些研究(基本上是向我的朋友寻求帮助),我们得出结论,Raylib 的 DrawTriangle() 函数只接受逆时针方向的值,否则,屏幕上不会绘制任何内容。以下是我们使用的值:

// draw triangle
DrawTriangle(
    {100, 10},  // point a
    {10, 100},  // point b
    {100, 100}, // point c
    BLACK       // triangle color
);