C 我正在运行gbdk一个gameboy游戏制作程序,下面的代码中出现了解析错误

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

你可能缺少一个包含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
   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;