Raylib DrawTriangle() 用法

问题描述

简介

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

代码

// player triangle
static Triangle PlayerTriangle = {
    // point positions
    {100,10},// point A
    {10,100},// point B
    {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(形状/基​​本形状)中获取的示例正确执行,但我不确定为什么我的代码显示的值不是 任何事!

注意事项和建议

首先,我要感谢社区,因为我是 Stack Overflow 的新手,可能在这里至少犯了一个错误。其次,请注意,问题很可能(如果不是肯定的话)在我将 in 放入 DrawTriangle()values 中,而不是我的逻辑部分代码,正如 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,// triangle color
            BLUE
        );

        // end drawing
        EndDrawing();
    }
}

解决方法

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

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