C 我正在运行gbdk一个gameboy游戏制作程序,下面的代码中出现了解析错误
你可能缺少一个包含uByth.< /p>< p>的包含文件,你的问题是你在函数的中间定义新的变量。无论出于何种原因,GBDK编译器都不允许这样做。(这显然是ANSI C/C89标准的一部分) 您可以通过从更改C 我正在运行gbdk一个gameboy游戏制作程序,下面的代码中出现了解析错误,c,gameboy,C,Gameboy,你可能缺少一个包含uByth.< /p>< p>的包含文件,你的问题是你在函数的中间定义新的变量。无论出于何种原因,GBDK编译器都不允许这样做。(这显然是ANSI C/C89标准的一部分) 您可以通过从更改main()的顶部来解决此问题 Parse error before ubyte line 108 Parse error before scroll x Parse error before scroll y Parse error before scxCnt
main()
的顶部来解决此问题
Parse error before ubyte line 108
Parse error before scroll x
Parse error before scroll y
Parse error before scxCnt
Parse error before ScyCnt
Parse error before 32
为此:
int main(void){ //starts the main function
int x,y,st,key,z; //define the integers x and y wich will be used to define the hero position, key will be used later
int x1,y1,st1;
int x2,y2,st2;
int x3,y3,st3;
或者,您可以将从这些变量开始的所有代码移动到另一个函数,然后这些变量将与该函数一起声明,一切都将正常。当前sdcc 4.1.0和gbdk-2020 4.0.3不应出现UBYTE错误 GBDK的上一次更新是在2001年左右 尽管其他错误来自于代码无效 这不是有效的C代码:
ScrollX++;或滚动X-;
ScrollY++;或者卷轴--;
SCXCnt++;或SCXCnt++;
SCYCnt++;或SCYCnt--;
我不认为这是你想要的:
#定义MapSizeX 256;
#定义mapsizey256;
定义总是不受范围限制的,因为它们是由预处理器而不是编译器处理的。而您更希望#定义MapSizeX 256U
您编写的内容将与您的代码一起使用。
Cnt=Cnt+MapSizeX代码>变成Cnt=Cnt+256
没什么大不了的,但它可能会在以后中断。我想添加行号,很抱歉我自己做了评论//我运行了提示符,出现了以下错误//ubyte第108行之前的解析错误//滚动前的解析错误x147//滚动前的解析错误y149//scxCnt 151之前的解析错误//ScyCnt 153之前的解析错误//第32行207之前的解析错误请重新格式化代码,空格太多,无法查看发生了什么。如果我知道如何正确执行,我会。:/你想让线靠得更近些还是怎么的?行与行之间没有空格?尝试过,但仍然不起作用:(但谢谢你试图帮助我:)嘿,谢谢。我已经有一段时间没有做这个项目了,因为我一直在做我的ds游戏,但我会回顾这个项目,并纠正我做错了什么。
int main(void){ //starts the main function
int x,y,st,key,z; //define the integers x and y wich will be used to define the hero position, key will be used later
int x1,y1,st1;
int x2,y2,st2;
int x3,y3,st3;
int main(void){ //starts the main function
int x,y,st,key,z; //define the integers x and y wich will be used to define the hero position, key will be used later
int x1,y1,st1;
int x2,y2,st2;
int x3,y3,st3;
//These variables are used later on.
UBYTE ScrollXCnt;
UBYTE ScrollYCnt;
BYTE SCXCnt;
BYTE SCYCnt;
UBYTE tempa, tempb;
UWORD Cnt;