使用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
相关产品推荐
相关产品推荐

