- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言魔方游戏
C语言魔方游戏
用C语言,在Win-TC编译环境下编写一个魔方游戏程序。游戏程序包括下面几方面内容:鼠标调用模块程序、魔方功能实现模块程序、主程序模块。
鼠标调用模块程序
任何游戏都少不了人机互动,因Win-TC (内核Turbo C 2.0)不支持鼠标器的操作,所以编写鼠标驱动程序。鼠标器驱动程序用INT 33H中断作为鼠标器操作中断,通过不同的鼠标操作将产生不同的中断。驱动程序按中断时的入口参数调用相应的功能来完成中断服务。
INT 33H中断调用功能号和对应功能
功能号 功能 功能号 功能 0 鼠标复位及取状态 7 设置水平位置最大值 1 显示鼠标光标 8 设置垂直位置最大值 2 不显示鼠标光标 9 设置图形光标 3 取按钮状态和鼠标位置 10 设置文本光标 4 设置鼠标光标位置 11 取鼠标移动的方向和距离 5 取按钮压下状态 12 设中断程序掩码和地址 6 取按钮松开状态 13 打开光标模拟 程序通过int int86(int intr_num,union REGS *integs,union REGS *outregs)函数来完成INT 33H
中断调用功能。
魔方功能实现模块程序
魔方功能实现模块程序是整个魔方游戏的核心部分,主要分三部分内容:
魔方体数据的建立,描绘魔方体的外形、尺寸大小。
判断魔方体的可见面,正确显示三维空间魔方形体。
操作控制键,实现魔方的各层面旋转或方位转向以及各面颜色分布情况。
Esc键 ―― 退出游戏
观察魔方方位控制键:X,x,键(绕x轴旋转),Z,z,键(绕z轴旋转)
各层面操作热键:
绕z轴 ―― s键(上边),d键(中间),f键(下边)
绕x轴 ―― j键(右边),k键(中间),l键(左边)
绕y轴 ―― u键(前面),i键(中间),o键(后面)
主程序模块
主程序模块,设计游戏界面,安装按钮以便鼠标输入操作;设计处理函数void Process(),处理
客户的鼠标或键盘输入工作,是整个游戏流程的中枢。
本魔方程序采用工程形式完成,共有四个文件:
MyGraph.h
MFOBJ.h
Mouse.h
MFGame.c
MyGraph.h文件存放整个游戏程序用到的库文件,MFOBJ.h文件是魔方功能实现模块程序,
Mouse.h文件是鼠标调用模块程序,MFGame.c文件是主程序。下面是整个程序清单:
MyGraph.h文件内容
#include graphics.h
#include stdio.h
#include dos.h
#include bios.h
#include math.h
#define VK_ESC 0x001b
MFOBJ.h文件内容
#ifndef MFOBJ_h_
#define MFOBJ_h_
/*定义魔方大小数据之半*/
#define MSIZE 55.0
/*定义魔方分隔线数据*/
#define LINEW 19.0
/*定义九分面大小调整数据*/
#define DML 2.0
#define FMAX (MSIZE-DML)
#define FMID (LINEW+DML)
#define FMIN (LINEW-DML)
/*圆周率*/
#define PI 3.1415926
/*定义视线向量角度*/
#define EHX 30
#define EHZ 30
/*定义坐标系原点数据*/
#define SCREENX 320
#define SCREENY 155
/*魔方立方体八顶点数据*/
float POINTS[8][3]={MSIZE,MSIZE,-MSIZE,
MSIZE,MSIZE,MSIZE,
MSIZE,-MSIZE,MSIZE,
MSIZE,-MSIZE,-MSIZE,
-MSIZE,-MSIZE,-MSIZE,
-MSIZE,MSIZE,-MSIZE,
-MSIZE,MSIZE,MSIZE,
-MSIZE,-MSIZE,MSIZE,
};
/*魔方体顶点数据表*/
int FACE[6][5]={0,1,2,3,0, /*ri
您可能关注的文档
- 2012单招联合体二模建筑.doc
- 2012单招联合体二模汽修.doc
- 2012单招联合体二模电子电工.doc
- 2012双11规则解读.pdf.pdf
- 2012国培心得体会 2篇.doc
- 2012复习题与提纲.doc
- 2012天津中医药大学研究生自然辩证法一.ppt
- 2012奥迪S8 发动机 培训.pdf.pdf
- 2012学年七年级下体育课教学计划.doc
- 2012小型项目管理师.ppt
- 鄂尔多斯市东胜国有资产投资控股集团有限公司招聘笔试题库2025.pdf
- 贵州黔东南州镇远县咨讯劳务服务有限责任公司招聘笔试题库2025.pdf
- 四川成都市青白江区弥牟城镇建设开发有限公司招聘笔试题库2025.pdf
- 安徽宜秀区龙山凤水文化旅游发展有限责任公司招聘笔试题库2025.pdf
- 安徽马鞍山郑蒲港新区综合保税区投资有限公司招聘笔试题库2025.pdf
- 山东青岛中船重工海洋装备研究院有限责任公司招聘笔试题库2025.pdf
- 浙江宁波市象山县大目湾新城投资开发有限公司招聘笔试题库2025.pdf
- 安徽省水利水电勘测设计研究总院股份有限公司招聘笔试题库2025.pdf
- 中国电建集团西北勘测设计研究院工程建设公司招聘笔试题库2025.pdf
- 山东潍坊市寿光市高新区基础设施开发有限公司招聘笔试题库2025.pdf
文档评论(0)