📄 readme.txt
字号:
********************************************************************************************
* ___ _______ TM
* /\_ \ /\_ __ \
* \//\ \ \//\ \ \ \
* \ \ \ \ \ \ \ \
* \_\ \____ \_\ -- \
* /\_______\/\_______\
* \/_______/\/______/
*
* 作者:林伟 :-)
* 无名鸟工作室:http://newbird.126.com
* 云南省昆明市关上关兴路万兴花园 F18. 现就读成都电子科大
* TEL: (0871)7167710, mail:lwwind@yeah.net
*
* LDraw v2.21 Game SDK for Watcom C++ 10.0 or above
* 以前总习惯于 Borland C++后当我处理到大图片时碰到了难题,内存处理一直是个大难题,后来写了一个
* Borland C++下的保护模式库,寻址空间虽然达到了4G,但1MB以上的内存访问必须通过汇编来完成,
* Borland C++所有的工作还是只能在常规内存中进行,况且这套功能会跟Windows冲突。一段时间后我终于
* 放弃了 Borland C++.直到两年前,我得到了心爱的 Watcom C++10.0情况有了转机 Watcom C++一向是DOS
* 游戏的最高境界,经过一年半年的努力终于写出了 LDraw.
安 装
1.自动:在LDRAW的目录中执行 LDRAW.BAT就行
2.手动:将所有.H文件copy到你Watcom目录中的H\子目录。将所有.LIB文件copy到你
Watcom目录中的LIB386\子目录
2.用wcl386 /cc++ /4r /s filename编译
在源文件头加入下面几句:
#include <lsys.h>
#include <ldraw.h>
#include <lkey.h>
#pragma library("lsys.lib")
#pragma library("ldraw.lib")
#pragma library("lkey.lib")
就可以使用了
3.执行 LDRAW.BAT后在子目录 examples\中有几个实列,
playmidi.exe 播放 .MID
playvoc.exe 播放 .VOC
vpic.exe 显示256的GIF,PCX,BMP
demo.exe 模拟空战
examples\demo.mid demo.voc demo.pcx demo2.mid 资料 自己看看吧 :-)
4.你可以到http://newbird.126.com寻找最新版本。
5.你有权修改源代码,本人不负任何法律责任,如果你有好的想发,请与我联系:lwwind@yeah.net
介 绍
1.什么是 LDraw?
它是本人为 Watcom C++写的游戏开发包,DOS下Watcom C++的开发包实在挺贵,Djgpp下的 Allegro
的确很COOL,但用别人的东西我心中挺不自在,况且掌握Allegro还需要一定的时间,而且我对没有 DPMI
就不能运行的Djgpp实在没好感,最重要的还是我想自己写一个开发包。
LDraw v1.2只提供256图形模式:320x200, 640x480, 800x600等,还有著名的ModeX 320x240x256c。
和DirectX一样采用表面(Surface)作图,采用图层方式实现,所有作图相对图层(Surface Layer)进行,
因此有了很大的灵活性。页面翻转是一项落后的技术,因此我没有采用。
作图功能有基本点,线,圆,多边形处理。位图(bitmap)显示,多层卷轴,图形缩放,汉字输出,调
色板处理包括:位图的明暗显示,两个不同调色板图形的色彩匹配,调色板流动等。
支持中英文字库,如 HZK16。能够读取/保存 BMP,PCX,GIF几种图形格式,但在游戏中,所有图形用以
上两种格式来储存是中笨拙的方法,因此我提出LPC格式,将图形按序号分页储存,将一个类型的图形放在
一页中,在由这样的许多页组成LPC文件。方便读取。
支持所有与 Sound Blaster兼容的声卡,MIDI播放采用《仙剑》中的FM Synth方式支持.MID和.XMI
(extend midiformat扩展MIDI)两种格式. 音频播放目前只支持.SND和.VOC。我打算在以后的版本中提供软
播表(softwave table),立体声,提供Wave和CD音轨支持。
提供后台处理,能同时将16个void proc()类型的函数挂到后台,并以不同的速度执行。提供了一个新
的键盘中断服务程序,处理多键同时按下。支持鼠标,
2.模块介绍 LSYS LSYS 时钟,模拟多任务,基本表面操作,DMA
__________|__________ LDRAW 常规作图,图形文件操作,鼠标
| | | LKEY 键盘,声卡FM,DSP,MIDI,WAVE的播放
LDRAW LKEY LUTILS LUTILS实用程序,包括缩放,物体远近显示等特效
____|___ ___|___ |
| | | | Extend Functions
Ordinary Graph Mouse Sound Keyboard
3.LDraw和游戏开发:
以上的说的都是游戏开发的基本函数,毕备功能。而写出来又太费精力,因此LDraw的目的也在于想让游
戏开发者专心于高层设计,写出高质量的游戏。毕竟LDraw!=游戏,写出一个完整游戏还需要开发者的努力。
我写了一半天才发现这只是一些很低级的函数,但也算尽了一方力。
我 的 开 发 日 志
1999年底:完成了大部分基本功能
2000年一月16日: 开发出了320x240x256c的ModeX !
2000年一月17日: 将大部分核心汇编代码进行了486优化,我还在用486 :-(
2000年二月 7日: 从一星期前到此时,我一直在开发MIDI播放函数。终于成功了!
2000年二月13日: 由原来的图层功能增加了图层环境,见struct lenvironment!
2000年二月19日: 通过链表排序,增加了位图远近显示功能!
2000年二月25日: 修正了一个时间后台功能的大BUG, 提出了LPC图形格式,见新增 函数: lLoadLpcImage
(TLpcImage *lpc,char *fname); 增加了LUTILS部件它通过调用 LDraw基本函数完成许多常见、有用的功能。
2000年五月COOL: 将 Time,Surface二功能独立出来, 组成 LSYS这一最基本的模块。系统升级到 2.0。
2000年七月 9日: 我改善了MIDI播放,增加了对特殊线性的显存的支持 (VBE2.0以上)的 ModeX的 320 x 240模式运行再线性显存中,增加近一倍的速度。
2000年八月29日: 完成了几个实例。
林伟,于2000年八月30日
lwwind@yeah.net
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -