易码技术论坛

 找回密码
 加入易码
搜索
查看: 247148|回复: 17

有史以来最大的BASIC游戏_校园风云录

[复制链接]
发表于 2006-4-2 14:06:00 | 显示全部楼层
沙发 顶先了~£
发表于 2006-4-2 14:38:00 | 显示全部楼层
有这分执着的毅力还不如制作LAVA或者BIN呢 200K的BIN一定是名垂青史的
发表于 2006-4-2 14:43:00 | 显示全部楼层
以下是引用rocxu在2006-4-2 14:38:00的发言:[BR]有这分执着的毅力还不如制作LAVA或者BIN呢 200K的BIN一定是名垂青史的
   9494
发表于 2006-4-2 16:09:00 | 显示全部楼层
我真的不想打击你……但是……其实我挺佩服你有这份毅力,可以写这么长的三个文件。

不过,难道你不会用DATA么?安装文件里用了那么多“R=R+1”和“WRITE #1,……”,真的不累么?

游戏容量是不少,可是大小与容量不成比例啊~~~

回去,把文件尽可能简化,再简化,然后我相信你可以做的更好…………
发表于 2006-4-4 22:55:00 | 显示全部楼层
可惜我的TC800用不了BAS......不知道好不好玩??
发表于 2006-4-4 23:27:00 | 显示全部楼层
以下是引用gyx007在2006-4-2 16:09:00的发言:[BR]我真的不想打击你……但是……其实我挺佩服你有这份毅力,可以写这么长的三个文件。

不过,难道你不会用DATA么?安装文件里用了那么多“R=R+1”和“WRITE #1,……”,真的不累么?

游戏容量是不少,可是大小与容量不成比例啊~~~

回去,把文件尽可能简化,再简化,然后我相信你可以做的更好…………


唉,不容易啊...
发表于 2006-4-8 19:40:00 | 显示全部楼层
学会优化代码啊 仅仅埋头写代码不注意提高效率是不好的。
 楼主| 发表于 2006-4-11 13:02:00 | 显示全部楼层
谢谢批评
发表于 2006-4-11 13:19:00 | 显示全部楼层
不是批评啊 互相提高

有空学学LAVA吧
 楼主| 发表于 2006-4-16 18:14:00 | 显示全部楼层
给我传一本LAVA教程吧,容易看懂的那种
发表于 2006-4-17 13:12:00 | 显示全部楼层
好吧

大家一起学LAVA(一)
好久没上网了,前几天才发现Lava这东西。仔细研究了两天,觉得这个语言
非常是适合在文曲星上面写程序,但网上的文章和源码太少了。高手们又不
屑于写起步的文章,于是发扬自力更生的精神,同时写些心得于大家分享,
欢迎大家扔鸡蛋。
行动准备,硬件:NC2000a/c 电脑
          软件:Lava编译器,Lava的模拟器,ftpLink传输程序
          其他:聪明大脑 + 永不言败
Let's GO.
源码:
       void main()
            {
            printf("HELLO WORLD!");    //输出字符串
            getchar();                //要求输入任意一个字符,用来产生停顿
            }   
把这段源码拷到文本文件里,保存到编译器的目录下,文件名是main.txt。
运行编译器,顺利的话就会产生一个 main.lav的文件。现在你可以用模拟器
或直接下载到文曲星上运行。是不是很简单,如果你喜欢的话还可以试试中
文, printf("大家好")  。
注意不要把 main 函数写成 mian 这样编译器不会报错,但运行却没有任何结果。
因为Lava把main函数作为程序的入口,如果写错,编译器就会把它当成你自己的
函数,整个程序就没有入口了。

大家一起学LAVA(二)  数据类型、小数、指针
Lava的基本数据类型很简单,只有3种,编译器不作类型匹配检查。
类型转换问题,
看源码:
void main()
{
int  a;
char b;
a=32767;
b=a;
printf("%d",b);
}
结果是255。显然在 int 向 char 转换时只把低位字节付给char。
如何处理小数,
看源码:
void main()
{
int a,b;
int part1,part2;
a=3;
b=5;
part1=a/b;                 //求整数部分
part2=(a%b)*10000/b;       //求小数部分  
printf("%d / %d=%d.%d",a,b,part1,part2);
}
Lava里面没有浮点型,假如我想处理小数怎么做呢?
就要把所求的数分为整数部分和小数部分处理。小数部分的精度由所乘的倍数决定,
例如要求精确到小数点后4位,就要乘 10000。
如果你要经常处理小数,建议你写一个 float 的struct。
指针问题:
看源码:
void main()
{
int a[10];
int b;
int i;
b=a;                    //b存放a 的内存地址
for(i=0;i<10;i++)
   {
   *(b+i*2)=i;          //对数组a付值
   printf("%d ",a);
   }
printf("\n上面数组的首地址是:%d\n",b);
}
lava没有指针类型,却可以通过*运算符来进行付值操作。
同时lava里没有取地址的方法(在c语言里面是&操作符),唯一可能获得地址的方法是把数组地址付给整形变量。
在使用指针运算时时要注意付值的数据类型大小,char型加1 int型加2 long 型加4。
大家一起学LAVA(三) 文本显示
文曲星提供3种显示模式,一种图形模式两种文本模式(大字体,小字体)
图形模式和文本模式在缓冲区,函数等方面都是不同的,今天我们来研究
一下文本模式。

在大字体模式下 屏幕可以显示 20*5个英文字母或是10*5个汉字,小字体
模式下则是 26*6 和13*6。
看源码:
void main()
{
SetScreen(0);
printf("现在是大字体模式");
getchar();
SetScreen(1);
printf("现在是小字体模式");
}
大家可以看看大小字体的对比效果。注意的是大小字体不能共存,你不能用大字体
写一行又用小字体写一行。(不知道有没有高手能实现)在字体模式切换时会自动
清屏。我们可以利用这个特性来实现字体模式下的清屏函数。
void cleartext()
     {
     SetScreen(1);
     SetScreen(0);
     UpdateLCD(0);  
     }
好了,现在大家可以把 cleartext(); 加到第一段代码的getchar();后面仔细观察
一下结果有什么不同。
最后讲一下文本缓冲区 _TEXT。
所谓文本缓冲区就是我们所看到的屏幕内容,存放在内存中的位置。我们可以先修改
这些内存中的内容,再通过UpdateLCD(0)命令来达到显示的目的。
看代码:
void main()
{
int point;
SetScreen(0);
point=_TEXT;
*(point)=65;             //左上角
*(point+19)=65;
*(point+20*4)=65;
*(point+20*4+19)=65;     //右下角
UpdateLCD(0);
}   
上面这段代码是在屏幕的4个角上写字母A。
或许你会注意到大小字体模式的缓冲区大小是不同的,在大字体下缓冲区的大小是20*5个
字节,每个字节对应屏幕上的一个字符。小字体下大小是26*6个字节。
一般不建议使用修改缓冲区的方法来显示字符,因为 Locate()函数可以解决问题了。

大家一起学LAVA(四) 数值输入
Lava在输入方面处理起来比较复杂的,在C语言里的一句简单 scanf("%d",&value)的语句,要用差不多50行程序来实现。下面的代码只是输入一个整数,(可以输入负数),输入字符串的情况以后再实现。
源码:
#define ENTER_KEY 13         //定义确定键
#define LEFT_KEY 23          //定义退格键
#define VAL_LEN 9            //定义允许输入的整数长度  
#define MINUS_KEY 20         //定义代表负号的键 (向上的箭头号)
char numberc[]="bnmghjtyu";
char string[10];
char get_key(char c)         //get_key的作用是返回 0-9的字符值
            {
             int i;
             for(i=0;i<9;i++)
             if(c==numberc){c=i+'1';break;}
             return c;
            }                     

long string_to_value()              //用来将字符串转化成数值
              {
              int i,ch,sign;
              long value;
              i=0;
              value=0;
              sign=1;
              if(string[0]=='-') {i=1;sign=-1;}   //判断字符串的第一个字符是不是‘-’号  
              for(;i<strlen(string);i++)
                 {
                 ch=string;
                 value=value*10+(ch-48);
                 }
               return sign*value;
               }
long input_number(char y,char x)      //在y行x列的地方输入一个整数,这里要求一定要输入
           {                          //它的返回值就是我们输入的数值
            int i,j,sign;
            char ch;
            long value;
            i=0;            
            value=0;
            for(;;)
               {
               ch=get_key(getchar());
               if(ch>='0'&&ch<='9'&&i<VAL_LEN)      //如果是‘0’-‘9’的字符,显示并存入字符串
                 {Locate(y,x+i);putchar(ch);string=ch;i++;}
               else if (ch==MINUS_KEY&&i==0) {Locate(y,x+i);putchar('-');string='-';i++;}
               else if (ch==LEFT_KEY&&i){i--;Locate(y,x+i);putchar(0);string=0;}
               else if (ch==ENTER_KEY&&i) {value=string_to_value();return(value);}
               }
           }

     void main()
         {
         long value;
         SetScreen(1);
         value=input_number(2,10);
         printf("\n%d",value);
         getchar();
         }

我们都已经学了不少东西了,明天我们可以写一个实用的小程序拉。


这篇教程的作者偶不知是谁,知道的话说明下 毕竟是人家的版权啊
 楼主| 发表于 2006-4-23 08:05:00 | 显示全部楼层
校园5.5版已经完成,加入了完整的剧情。

http://www.ggv.com.cn/wqx/forum/showthread.php?s=7a67fb27a2e44a88ff41d0e41c6d9044&threadid=56764

正在开发5.6版(优化代码版),把24个DAT压缩为2个。

随后便着手6.0版(LAVA版)
 楼主| 发表于 2006-5-13 19:23:00 | 显示全部楼层
欢迎大家下载。5.6版内测中……
发表于 2006-5-20 14:28:00 | 显示全部楼层
建议楼主学学lava 一定会出名的

加入LavaX月刊了
 楼主| 发表于 2006-6-2 12:53:00 | 显示全部楼层
发表于 2006-6-2 18:56:00 | 显示全部楼层
可惜 pc2000c 坏掉了
现在只剩TC800了
不过听起来蛮不错的
还是建议楼主学学LavaX
发表于 2006-6-2 18:59:00 | 显示全部楼层
支持6.0

汗~14楼!
 楼主| 发表于 2006-4-2 13:38:17 | 显示全部楼层 |阅读模式
[必读] [下载] 校园风云录II隆重发布!


校园风云录V5.5(规划中……)
1.彻底消灭乱码
2.任务剧情适当增长(GGV把BASIC限制在64K以内,真是太可恶了!)
校园风云录V5.35
1.增加魔法背景,战斗画面更加绚丽
2.原枯燥的解说词(如:精力不足)有所修改
校园风云录V5.30
1.增加人物头像预览
2.解决了跳转地图的错误
校园风云录V5.26
1.修正了除乱码外的所有BUG
2.地图场景进行了美化
校园风云录V5.25
1.修正的大部分的乱码,读取更加快速。
2.改进了安装程序,安装更加方便。
3.修正了魔法爆炸的BUG。
4.修正了哲学,经济学的BUG,使用限制7次。
5.增加简短的人物介绍。
6.人物属性攻击力等降低,这样就不会出现60级帐号秒杀200级帐号的情况
7.修正了其他BUG
V5.20:
本游戏由3个主文件组成,安装后共24个DAT文件,总大小217K,这无论是BASIC还是整个文曲星游戏,都是绝无仅有的突破.
本游戏是从2年前李晋同学的<黄金浴血>发展而来,经过我4个月不懈的努力下,终于横空出世.
它除继承了原有的优点之外,又有了其他的发展:
1.地图从原先的一条直线发展为一个平面
2.增加主线剧情,这是英雄坛说所不具备的
3.增加了很多原来没有的功能:
召唤兽系统,PK魔法系统,连线对战,商店系统等
4.原有的元素进一步扩充:
地图:10场景120地图→40场景360地图
怪物:40种→60种普通怪物10大BOSS
魔法:30种→37种(理科25种,文科12种)
装备:40种→110种
职业:4种→6种
5.原有功能的优化:
物理实验室,化学实验室,自行车功能,荣誉封号系统等
本游戏同时也有一定的不足:
1.容易乱码,在游戏中可以按P键重新载入
2.读取比较慢:相对比较旧的机型,毕竟文件太大了
但本游戏终究是所有星迷共同的财富,它的原代码是公开的,所有大虾都可以对它进行进一步的优化,它最大的优点,那就是特别贴近同学们的生活.你可以玩原版的,也可以把里面的内容改为自己的学校,自己的同学,以便于进一步推广.
这个游戏在本人的城市用户数已经突破一千大关,如果在大虾们的帮助下,解决现有的问题,那么,统治星坛8年之久的英雄坛说就要彻底走下神坛了
14005_38914_5741.rar (90 KB, 下载次数: 307)
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2025-4-29 12:52 , Processed in 0.014661 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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