0

介绍

你好!我最近一直在研究 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()函数正在被调用,因为从此处获取的示例(形状/基​​本形状)正确执行,但我不确定为什么我的代码中显示的值没有任何事情!

注意和建议

首先,我要感谢社区,因为我是 Stack Overflow 的新手,可能在这里至少犯了一个错误。其次,请注意,问题很可能(如果不是肯定的话)出在我输入的DrawTriangle()而不是我的代码的逻辑部分,就像raylib 网站上的示例一样。

编辑

最小可重现示例:

// 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();
    }
}
4

1 回答 1

0

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

// draw triangle
DrawTriangle(
    {100, 10},  // point a
    {10, 100},  // point b
    {100, 100}, // point c
    BLACK       // triangle color
);
于 2021-04-24T20:40:56.760 回答