问题描述
简介
你好!我最近一直在研究 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
);