易码技术论坛

 找回密码
 加入易码
搜索
查看: 80609|回复: 1

[原创]自己写的一些函数,很有用的,大家看看吧,作为学习材料更好,嘿嘿

[复制链接]
发表于 2005-11-20 02:36:00 | 显示全部楼层
[attachment:4687]
文件包含一个PAC包和未经压缩文件

共有有十个函数,

有源码,有函数库文件(,h做后缀的)有预览效果的Lav程序,也有所须的图片资源

源码中使用了#include,请用LAVA编译器(修改版)进行编译,或按#include文件的顺序用相应函数源码替换

1.

long CutBmp(int x,int y,int width,int height,long pic_name,long pic_data)

是从BMP文件中读取指定范围和大小的图象数据,只支持2色和16色(废话了~),例如一个320*240的BMP,想读(32,32)起160*80的数据到指定内存地址,就是CutBmp(32,32,160,80,pic_name,pic_data_addr);

有关大小的参数必须是2或8的倍数(2色的是须8的倍数,16色的是2的倍数)

这样,在程序中调用图片资源的某一部分就非常的方便了,因为是直接从BMP文件中读取

后面的SeeBmp函数和PrintText函数,都用到了此函数,都是直接从BMP文件中读取所须区域的图象

2.

long GetWord(long mode)

顾名思义就是支持TC800的GetWord函数,但我的TC800挂掉了,没法继续写完整了,这个差的就只是标点符号的输入了,我预留为PGDOWN键

mode=   0 英文,1  数字,2  汉字,  3 是半角符号方式,不是用来保持原输入方式

返回值的低16位是字符或汉字的数据,但高16位是返回的mode值

可以用mode=GetWord(mode)实现保持原先的输入方式



3.

long ListFile(long filename)

列出文件,是可以返回上级目录的,比FileList要实用,但也可根据你自己的具体需要改动



4.
long SeeBmp(long pic_name,long redata)
浏览指定路径的BMP文件,上下翻页键是调整移动速度(0-8)但16色的BMP横向移动速度只能是2的倍数,2色的横向只能是8,

我写这个本来是要用来提取BMP图片中的特定范围并将所选矩形范围内的图象(不限大小,但不能太大)另存为BMP或读取到内存的,嗨~~~TC800一时是没法修的,无奈有心无力了



5.

void PrintText(int x,int y,long string,long ziku_name,int type)

这个,在我正在做的游戏中非常有用,是在TextOut的基础上加了,使用指定8*8字库的功能

bit5为1 原本是左右反转,我改的是 设成1是使用指定字库显示8*8的字母或符号,0是正常的6*12或8*16字符,

所上传文件中的ZIKU16.bmp就是游戏MetalMax的字符字库,以及特殊符号,都是8*8的

参数ziku_name为0时函数使用默认的"/我的图片/ZIKU.bmp"文件,

要改用字库的话,换掉ZIKU16.bmp就行,或在PrintText的参数中ziku_name指向字库文件的路径

  

type=105,或98试试字库的效果把



6.
long Input_str(long textAdd,char length,char textX,char textY,int type)

好象是根据谁的函数改的,加入了支持PrintText的8*8字库的显示,和汉字的输入

type参数支持使用默认字库,只要参数的bit5的值是1

基本按键和操作已经非常接近PacMgr的输入函数了,而且输入的8*8字库的字符和普通字符一样编辑



7.
long Input_val(int x,int y,int type)
输入一个11位的十进制数字字符串,转换成数值并返回,支持负数,不支持浮点数

type参数支持使用默认字库,只要参数的bit5的值是1



8.

long Replace(long chazhao,long tihuan,int num,char fp)

替换文件中的字符串为指定字符串,和电脑上的替换功能一样,chazhao和tihuan都是什么意思应该知道吧,num是替换的字符个数,fp是文件的句柄

呼呼~~~我快困死了,还有两个就完了

9.
long Time(char i)
这个简单,作用和GetTime差不多,但不用steuct结构体声明,一次只取出一个数据
0或1是year,2是month,3是day,4是hour,5是minute,6是second,7是week


10.
long WaitKey(char x,char y)//标号等待按键按下
最后这个是要给和我同是做MM的gameghost的,

我看到你那演示版的MM里,对话的一句结束后没有一个闪烁的等待按键的三角标号,FC的MetalMax游戏中可是有,一兴起就写个给你看看,你要多注意移植游戏的细节哦OOOO





测试函数.lav的 type=105,或98,试试字库的效果吧

还有个  替换换行符.lav ,对TC800也非常有用,我今天没时间说了,,,以后吧

写完拉,我也该找我 的周公去了,

大家有什么意见和建议尽管提吧,我写的这些也许会不太有用,但对我要做我的游戏是一定会大有用处的,所以我才这么认真的写

可是,无奈啊,我的TC800屏幕排线4天前就断了,要抽时间去送修的话没几个星期是不够的

555~~~~



[此贴子已经被作者于2005-11-20 3:21:10编辑过]

11805_21138_4687.rar

42 KB, 下载次数: 241

 楼主| 发表于 2005-11-19 15:34:37 | 显示全部楼层 |阅读模式



因为现在我没有解压PAC的软件,只有整体上传了

大部分为TC800所用

详解我现在实在是没时间写了,

下到TC800中用,最好有LAVA的编译器的,我用了#include


管理员来了请把这帖移到C专区好吗?发错地方了,不好意思~
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2025-5-2 17:29 , Processed in 0.018222 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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