c语言常用条件函数大全,C语言做游戏常用到的一些函数大全

时间延迟函数

函数名: delay

功 能: 将程序的执行暂停一段时间(毫秒)

用 法: void delay(unsigned milliseconds);

重画屏幕区域的函数

函数名:getimage

功 能:将指定区域的一个位图存到主存中

用 法:void far getimage( int left, int top, int right, int bottom, void far *bitmap);

函数名:putimage

功 能:在屏幕上输出一个位图

用 法:void far putimage( int x, int y, void far *bitmap, int op );

图像大小函数

函数名: imagesize

功 能: 返回保存位图像所需的字节数

用 法: unsigned far imagesize( int left, int top, int right, int bottom );

异或模式函数

函数名: setwritemode

功 能: 设置图形方式下画线的输出模式

用 法: void far setwritemode(int mode);

参数MODE可以被设置位COPY_PUT或者XOR_PUT两种模式。当mode被设置为XOR_PUT,其后的图形操作将都采用异或方式。此外之前提到的putimage()函数也可以采用异或模式向屏幕复制图像。

检测键盘输入函数

函数名: kbhit

功 能: 检查当前按下的键

用 法: int kbhit(void);

键盘接口函数

函数名: bioskey

功 能: 直接使用BIOS服务的键盘接口

用 法: int bioskey(int cmd);

该函数通过bois中断0×16执行键盘操作,由参数cmd来决定具体的操作。

Cmd 具体操作

0 读取按键的ascii码

1 测试是否有按键 如果没有按键 返回0 如果按键为ctrl+brk 返回-1 如果是其他按键 返回按键本身键值(直到此按键被取出后恢复0)

2 返回shift key 状态

以下是当cmd为2的时候,返回值的具体含义

cmd返回值 触发特殊键

0X01 Left ctrl

0X02 Left alt

0X04 Right ctrl

0X08 Right alt

0X10 Scroll lock

0X20 Num lock

0X40 Caps lock

0X80 Sys rq

bioskey()函数的优点在于:

1.和kbhit()函数一样可以在不影响主程序运行的情况下检测是否有按键;

2.可以方便地检测普通键具体ASCII码和扫描码;

3.可以方便地检测功能键具体扫描码;

4.可以检测特殊按键;

5.只需要一个函数就能解决检测按键和读入按键的任务。

声音与延迟函数

函数名: sound

功 能: 以指定频率打开PC扬声器

用 法: void sound(unsigned frequency);

函数名: nosound

功 能: 关闭PC扬声器

用 法: void nosound(void);

函数名: delay

功 能: 将程序的执行暂停一段时间(毫秒)

用 法: void delay(unsigned milliseconds);

sound()函数用于让pc喇叭发声,nosound()函数用于使正在发声的pc喇叭静音。要使程序中的发声的具体方法,是调用sound()函数并延迟一定时间,然后使用nosound()函数静音,具体语句实现方法如下:

sound(100);

delay(100);

nosound();

产生随即数函数

函数名: rand

功 能: 随机数发生器

用 法: void rand(void);

函数名: random

功 能: 随机数发生器

用 法: int random(int num);

初始化随机数函数

函数名: randomize

功 能: 初始化随机数发生器

用 法: void randomize(void);

in86()函数

函数名: int86

功 能: 通用8086软中断接口

用 法: int int86( int intr_num, union REGS *inregs, union REGS *outregs );

其中intr_num为软中断号,函数通过inregs寄存器向中断发出具体功能命令,函数将中断调用结果返回寄存器outregs。

memset()函数

函数名: memset

功 能: 设置s中的所有字节为ch, s数组的大小由n给定

用 法: void *memset(void *s, char ch, unsigned n);

标准VGA显示模式表

模式(16进制) 适配器 显示类型 颜色 字符格式 屏幕大小 字符大小 缓冲区首址 属性类型

0/1 CGA 文本 16/16 40*25 320*200 8*8 B8000 彩色

EGA 文本 16/64 40*25 320*350 8*14 B8000 彩色

VGA 文本 16/256K 40*25 360*400 9*16 B8000 彩色

CGA 文本 16/16 80*25 640*200 8*8 B8000 彩色

2/3 EGA 文本 16/64 80*25 640*350 8*14 B8000 彩色

VGA(3+) 文本 16/256K 80*25 720*400 9*16 B8000 彩色

CGA 图形 4/16 40*25 320*200 8*8 B8000 彩色

4/5 EGA 图形 4/64 40*25 320*200 8*8 B8000 彩色

VGA 图形 4/256K 40*25 320*200 8*8 B8000 彩色

CGA 图形 2/16 40*25 640*200 8*8 B8000 单色

6 EGA 图形 2/64 40*25 640*200 8*8 B8000 单色

VGA 图形 2/256K 40*25 640*200 8*8 B8000 单色

7 MDA/EGA 文本 单色 80*25 720*350 9*14 B0000 单色

VGA(7+) 文本 单色 80*25 720*400 9*16 B0000 单色

D EGA 图形 16/64 40*25 320*200 8*8 A0000 彩色

VGA 图形 16/256K 40*25 320*200 8*8 A0000 彩色

E EGA 图形 16/64 80*25 640*200 8*8 A0000 彩色

VGA 图形 16/256K 80*25 640*200 8*8 A0000 彩色

F EGA/VGA 图形 单色 80*25 640*350 8*14 A0000 单色

10 EGA 图形 16/64 80*25 640*350 8*14 A0000 彩色

VGA 图形 16/256K 80*25 640*350 8*14 A0000 彩色

11 VGA 图形 2/256K 80*30 640*480 8*16 A0000 彩色

12 VGA 图形 16/256K 80*30 640*480 8*16 A0000 彩色

13 VGA 图形 256/256K 40*25 320*200 8*8 A000 彩色

常规内存函数

申请函数:malloc(),farmalloc(),calloc(),farcalloc(),realloc(),farealloc()

函数名: malloc

功 能: 内存分配函数

用 法: void *malloc(unsigned size);

函数名: farmalloc

功 能: 从远堆中分配存储块

用 法: void far *farmalloc(unsigned long size);

函数名: calloc

功 能: 分配主存储器

用 法: void *calloc(size_t nelem, size_t elsize);

函数名: farcalloc

功 能: 从远堆栈中申请空间

用 法: void far *farcalloc( unsigned long units, unsigned ling unitsz );

函数名: realloc

功 能: 重新分配主存

用 法: void *realloc(void *ptr, unsigned newsize);

函数名: farrealloc

功 能: 调整远堆中的分配块

用 法: void far *farrealloc( void far *block, unsigned long newsize );

使用函数:memcpy(),memset(),memmove(),movedata()

函数名: memcpy

功 能: 从源source中拷贝n个字节到目标destin中

用 法: void *memcpy(void *destin,void *source,unsigned n);

函数名: memset

功 能: 设置s中的所有字节为ch, s数组的大小由n给定

用 法: void *memset(void *s, char ch, unsigned n);

函数名: memmove

功 能: 移动一块字节

用 法: void *memmove(void *destin,void *source,unsigned n);

函数名: movedata

功 能: 拷贝字节

用 法: void movedata(int segsrc, int offsrc, int segdest, int offdest, unsigned numbytes);

释放函数:free(),farfree()

函数名: free

功 能: 释放已分配的块

用 法: void free(void *ptr);

函数名: farfree

功 能: 从远堆中释放一块

用 法: void farfree(void);

指针操作函数:MK_FP(),FP_OFF(),FP_SEG()

函数名: MK_FP

功 能: 设置一个远指针

用 法: void far *MK_FP(unsigned seg, unsigned off);

函数名: FP_OFF

功 能: 获取远地址偏移量

用 法: unsigned FP_OFF(void far *farptr);

函数名: FP_SEG

功 能: 获取远地址段值

用 法: unsigned FP_SEG(void far *farptr);

XMS功能调用索引表:

功能号 功能 版本

功能00H 功能01H 功能02H 功能03H 功能04H 功能05H 功能06H 功能07H 功能08H 功能09H 功能0AH 功能0BH 功能0CH 功能0DH 功能0EH 功能0FH 功能10H 功能11H 取XMS版本号 请求高内存区HMA 释放高内存区HMA 全程启用A20 全程停用A20 局部启用A20 局部停用A20 查询A20状态 查询自由扩展内存 分配扩展内存块 释放扩展内存块 移动扩展内存块 锁住扩展内存块 扩展内存块解锁 取EMB句柄信息 重新分配扩展内存块 请求上位存储块UMB 释放上位存储块UMB XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0 XMS规范V2.0

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值