易码技术论坛

 找回密码
 加入易码
搜索
查看: 271078|回复: 6

太奇怪了,郁闷啊~

[复制链接]
发表于 2007-3-25 00:36:22 | 显示全部楼层
LavaIDE和GVMIDE有一些渊源,但并不是同一个人写的。基本上你按照说明写的东西,在LavaIDE里面都可以正常运行,但是GVM的IDE你就要自己试试看了,如果不行,那就改一改,不要迷信说明=.=

有时候说明和GVM的IDE并不相符。

这里绘制在缓冲区的参数,其实Lava设计的比较奇怪。在WriteBlock这种函数里面,0x41这种是绘制在屏幕的,而0x01是缓冲区。在Circle或者line等函数中,却反了过来。好在说明上面有写,所以姑且算奇怪的设计……
 楼主| 发表于 2007-3-25 12:58:06 | 显示全部楼层
那用LavaXIde编写的LavaXIde1.0的代码(无GetWord之类的)能放在我NC3000中的解释其中运行吗?

这真是太麻烦了~
发表于 2007-3-28 11:23:12 | 显示全部楼层
你是NC3000的话,用GVM0.9来写吧,这样最保险。
发表于 2007-3-30 13:47:25 | 显示全部楼层
Circle(x,y,5,1,0x41);

问题的确是出在这句上的,因为感觉circle与ellipse不能在缓冲区绘制,如果你换成block就可以正常了!
发表于 2007-3-30 19:23:00 | 显示全部楼层
LAVAX3.0以后是支持的.
不过GVmaker是不支持的.
发表于 2007-4-8 01:52:17 | 显示全部楼层
引用第1楼FantasyDR2007-03-25 00:36发表的“”:
LavaIDE和GVMIDE有一些渊源,?并不是同一个人写的。基本上你按照说明写的东西,在LavaIDE里面都可以正常运行,但是GVM的IDE你就要自己试试看了,如果不行,那就改一改,不要迷信说明=.=

有时候说明和GVM的IDE并不相符。

这里绘制在缓冲区的参数,其实Lava设计的比较奇怪。在WriteBlock这种函数里面,0x41这种是绘制在屏幕的,而0x01是缓冲区。在Circle或者line等函数中,却反了过来。好在说明上面有写,所以姑且算奇怪的设计……
高见````
 楼主| 发表于 2007-3-24 23:34:06 | 显示全部楼层 |阅读模式
void main()
{
   int x,y;
   char key;
   x=80;
   y=40;
   while(key != 27)
   {
       ReleaseKey(128);
       key=getchar();
       if(20 == key && y>0)    y--;
&#160; &#160; &#160; &#160;else if(21 == key && y<79) &#160; &#160;y++;
&#160; &#160; &#160; &#160;else if(23 == key && x>0) &#160; &#160;x--;
&#160; &#160; &#160; &#160;else if(22 == key && x<159) &#160; &#160;x++;
&#160; &#160; &#160; &#160;ClearScreen();
&#160; &#160; &#160; &#160;Circle(x,y,5,1,0x41);  //这句放的位置是我的疑问所在
&#160; &#160; &#160; &#160;Refresh();
&#160; &#160; &#160; &#160;Delay(10);
&#160; &#160;}
&#160; &#160;getchar();
}
Lee的LavaXIde中编译运行,随着方向键的按动小球会移动。
但是在这段代码在ggv的GVmakerIDE1.1和文曲星端中编译运行后,不会显示小球,但是我通过printf得知x,y的坐标变化正常。

可我改一下代码:
ClearScreen();
Refresh();
Circle(x,y,5,1,0x41);
Delay(10);

这样后在GVmakerIDE和文曲星上都可以显示小球了。反而LavaXIde中不能显示小球了,坐标正常变化。~0x41改成1就可以。

Circle(x,y,5,1,0x41);中的type,也就是0x41代表在缓冲区绘图吧,照道理ClearScreen()把缓冲区清空后,Circle就在缓冲区绘图了,然后Refresh()把图刷新到屏幕。
现在这个问题让我觉得Circle函数在GVmakerIDE里就只能直接在屏幕绘图,无法在缓冲区。我觉得LavaXIde是正确遵守语法的。

两个地方都可以通过修改tpye参数0x41或1来实现效果的,但为什么同样的代码编译出来却不一样???
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-24 10:01 , Processed in 0.010398 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表