易码技术论坛

 找回密码
 加入易码
搜索
楼主: leesoft

4灰度Lvc(LavaX)官方正版制作计划

 关闭 [复制链接]
 楼主| 发表于 2006-11-26 22:25:29 | 显示全部楼层
c开发效率高啊
不鼓励,不支持,不反对别人用汇编做不应该由汇编完成的工作
发表于 2006-11-26 22:29:15 | 显示全部楼层
嘿嘿,也罢,我应该知道LEE不会写那样的东西的!!
 楼主| 发表于 2006-11-26 22:34:25 | 显示全部楼层
不要用大炮打蚊子
更不要用蚊子打大炮
发表于 2006-11-26 23:25:46 | 显示全部楼层
只看标题  就顶了
发表于 2006-11-27 10:41:19 | 显示全部楼层
精神上超级支持你!!
发表于 2006-11-27 12:54:14 | 显示全部楼层
太感谢LEE和各位了,早日出炉啊!
发表于 2006-11-27 12:55:45 | 显示全部楼层
嗯,4灰度~~叫LavaH好不好啊?
不希望增加SetGraphMode函数。直接SetFgColor,SetBfgColor,等于3时就相当于SetGraphMode(0),等于0时相当于反色。
增加BitBlt,从缓冲区取出一定区域底图片数据。
增加SetBuf,将一个数组定义成缓冲区,这样可以有多缓冲区,适合复杂的绘图。说一下,希望LavaX4灰度能取消缓冲区供内存使用,要用缓冲区时自己定义。另外定义了新的缓冲区则代表放弃旧的,就是说同一时间只可以有一个活动缓冲区。
增加Exec,可以运行别的LavaX4灰度程序,配套的还有GetCommandLine。
增加System系列函数(主要是那个PY2GB),取消Getword(或同时支持这两种输入风格)
增加FindFile,GetFileNum函数。增强FileList函数。
增加系统自带的菜单功能Menu函数。
增加NandRead,NandWrite,NorRead,NorWrite函数,使LavaX程序可以实现一些高级操作。
因为目前几乎所有的4灰度机型都有1)菜单,2)相同的文件系统,所以增加以上几个函数不妨碍跨平台(毕竟这里的平台只是指四灰度6502机器)。
Point,Line,Circle,Ellipse既可以在缓冲区画图,也可以直接在屏幕画图,因为可以另外定义缓冲区,所以可以实现通过画图函数更改图片数组里的数据,增加灵活性。
取消Box,由Rectangle和Block代替,这两个函数用法同以上四个函数:坐标加上type参数。
增加通讯函数,声音函数。所有的4灰度机器都有DSP和CR232通讯口,这样不妨碍跨平台。

强烈支持LavaX4灰度(如果Lee愿意的可以叫LavaH),希望Lee可以考虑一下上面的建议,特别是关于图形方面的(我参照了Laro,增加了动态缓冲区的主意)。其它方面的的确不影响跨平台,实在不行的化可以返回错误代码,毕竟这些指令不执行也不会有什么大的影响。
发表于 2006-11-27 13:07:28 | 显示全部楼层
LS建议不错的说,至于命名还是LEE说了算,我觉得新的四灰度解释器应该用新的操作目录而不要用原来的GVmaker,ftplink的传输路径也该改改
发表于 2006-11-27 13:15:59 | 显示全部楼层
演示一下SetBuf的强大功能~
  1. void main(){
  2. char pic[3200];
  3. char pic2[3200];
  4. char fp;
  5. fp=fopen("/pic.bin","r"):
  6. fread(pic,1,3200,fp);
  7. SetBuf(pic);//系统把从pic开始的3200字节直接当作缓冲区(这里数组长为3200,实际上系统不检查),Refresh时将该数组的图片数据写入显存显示
  8. Refresh();
  9. getchar();
  10. fread(pic2,1,3200,fp);
  11. fclose(fp);
  12. SetBuf(pic2);
  13. Refresh();//显示的是pic2的图形数据
  14. getchar();
  15. SetBuf(pic+1);
  16. Refresh();//显示图片发生侧移,这里只是演示SetBuf函数只是取缓冲区首地址,并不管它是不是数组(即不做越界检查)
  17. getchar();
  18. memcpy(pic,pic2,1600);//虽然被定义为缓冲区,但是数组仍是数组,还是可以进行各项操作。
  19. SetBuf(pic2);
  20. GetBlock(0,0,160,40,0,pic);这两句和memcpy句结果相同,演示这种方法的灵活性。从某种程度上来说,这样甚至不需要BitBlt函数了。
  21. }
复制代码
LavaX3.5.1有一点Bug,单色时GetBlock是忽略低3位,16灰时应该只忽略低1位才对,可是还是忽略了低三位。希望4灰度Lava可以改过来。
发表于 2006-11-27 13:21:26 | 显示全部楼层
写到这里发现了最后(真的是最后!)的一个问题,就是PutPicture函数。
希望增加PutPicture函数,可以将数组中的局部图案绘制在屏幕或缓冲区内。
加入fprintf函数,这个只是请求,能实现就好,不行就算了~
 楼主| 发表于 2006-11-27 15:10:34 | 显示全部楼层
关于图形,说一说我的构想:
为了最大限度的跨平台(注意:包括各种厂商的4灰度机器),不开放图形缓冲给程序员,所有绘图操作必须通过api,既不可直接操作显存,也不提供显存或缓冲区地址给程序员,当然更谈不上另设图形缓冲区了。
因为仅支持4灰度模式,既不支持黑白,也不支持16灰度,所以也不会有图形模式设置函数。
 楼主| 发表于 2006-11-27 15:22:28 | 显示全部楼层
为了防闪烁,双缓冲还是必要的。
将以Lavo的图形函数为蓝本,即:所有绘图函数(包括Line,Box,WriteBlock等),都只能画到缓冲区中,只有执行Refresh才能把缓冲区内容更新到屏幕,没有任何绘图函数可直接写屏。
发表于 2006-11-27 15:31:06 | 显示全部楼层
引用第132楼leesoft2006-11-27 15:22发表的“”:
为了防闪烁,双缓冲还是必要的。
将以Lavo的图形函数为蓝本,即:所有绘图函数(包括Line,Box,WriteBlock等),都只能画到缓冲区中,只有执行Refresh才能把缓冲区内容更新到屏幕,没有任何绘图函数可直接写屏。


缓冲区作图好呀
 楼主| 发表于 2006-11-27 15:45:14 | 显示全部楼层
做游戏,防闪烁是基本的要求,我就非常反感某些以牺牲眼球为代价换取的游戏画面刷新高速度。

当然,我以上提出的只是图形函数库的指导原则,至于具体实现,大家可以多提宝贵意见。
还有一个原则,就是:图形函数库尽量简洁,因为4灰度LavaX虚拟机将尽量控制在12KB以内,以腾出更多RAM给4灰度LavaX应用程序。
发表于 2006-11-27 16:00:41 | 显示全部楼层
问一下,LavaX4阶灰度版的汉字输入仍然象原来那样复杂么
还有每一个游戏的开发都要授权么
 楼主| 发表于 2006-11-27 16:17:01 | 显示全部楼层
LavaX4灰度版将不提供汉字输入函数,因为要控制在12KB内,所以连PY2GB也不会提供。如果一定要输入汉字,可以自行设计汉字输入函数。
游戏的开发采用电视游戏机业界的通行做法:授权发行。每个通过授权的游戏都将得到一个唯一的游戏编码。当然,授权是免费的。
发表于 2006-11-27 17:27:39 | 显示全部楼层
引用第69楼leesoft2006-11-25 23:54发表的“”:
唯一不反感的是学习编程
学好c语言,走遍天下都不怕

呵呵!  学好c语言,走遍天下都不怕!

这句话经典阿,在大学的朋友们,真的好好学习c语言吧!
发表于 2006-11-27 17:38:20 | 显示全部楼层
YES!!!
其实个人认为:即使是文盲,有很多的钱才是"走遍天下都不怕"~~~~
lee,加油啊!大概要做多久才可以呢?
给点进度大家看看
发表于 2006-11-27 17:41:38 | 显示全部楼层
不要老是要求别人!
发表于 2006-11-27 18:01:06 | 显示全部楼层
那这种4灰度能参赛吗?
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2025-4-29 22:50 , Processed in 0.014827 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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