我正在学习D语言,主要有C#的经验。具体来说,我在尝试使用Derelict3 Binding 到SDL2。我已经能够成功地得到一些基本功能的工作,但我遇到了一个问题:如何为特定的调用创建一个数组参数。
这个库包含一个调用:
此函数的SDL文档指出,该参数是一个
以下是我目前的示例:
这个库包含一个调用:
SDL_RenderDrawLines(SDL_Renderer*, const(SDL_Point)*, int) //Derelict3 Binding
我一直无法正确地形成这个论点
const(SDL_Point)*
此函数的SDL文档指出,该参数是一个
SDL_Point
数组,但我不清楚如何创建适合传递给此函数的数组。以下是我目前的示例:
void DrawShape(SDL_Renderer* renderer)
{
SDL_Point a = { x:10, y:10};
SDL_Point b = { x:500, y:500};
const(SDL_Point[2]) points = [a,b];
Uint8 q = 255;
SDL_SetRenderDrawColor(renderer,q,q,q,q);
SDL_RenderDrawLines(renderer,points,1);
}
编译器报错,提示我在points
中没有传递正确类型的参数const(SDL_Point)*
。
Error: function pointer SDL_RenderDrawLines (SDL_Renderer*, const(SDL_Point)*, int)
is not callable using argument types (SDL_Renderer*, const(SDL_Point[2u]), int)
我怀疑这是我基本的误解,所以非常感谢您的帮助。
SDL_RenderDrawLines(renderer, points.ptr, points.size);
。 - ratchet freak.length
,所以我将其删除了。但我会重新加入类似的内容,谢谢! - MrJolo