You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用raylib与D语言开发游戏时遇LoadImage编译错误求助

解决D语言+raylib中LoadImage编译时错误的方案

问题原因

D编译器会尝试对数组字面量[LoadImage(...), ...]进行编译时求值,但LoadImage是raylib提供的C绑定函数,没有对应的D源码,导致编译时无法解析执行该函数,从而抛出错误。

解决方案

改用运行时初始化数组的方式,避免让编译器在编译时处理LoadImage调用。以下是两种可行的修改方式:

方式1:数组追加初始化

this() {
    Image[] images;
    images ~= LoadImage("res/bird1.png");
    images ~= LoadImage("res/bird2.png");
    super(SCREEN_WIDTH/2-MODEL_SIZE/2, SCREEN_HEIGHT/2-MODEL_SIZE/2, images);
    textureDead = imageToTexture(LoadImage("res/birdd.png"));
}

方式2:固定长度数组索引赋值

this() {
    auto images = new Image[2];
    images[0] = LoadImage("res/bird1.png");
    images[1] = LoadImage("res/bird2.png");
    super(SCREEN_WIDTH/2-MODEL_SIZE/2, SCREEN_HEIGHT/2-MODEL_SIZE/2, images);
    textureDead = imageToTexture(LoadImage("res/birdd.png"));
}

这两种写法都会让LoadImage在程序运行时才被调用,绕开编译时求值的限制,解决报错问题。

内容的提问来源于stack exchange,提问作者iasonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 15:03:17