![ASYX(课堂PPT)_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/efcc8925-5cde-4b8e-a98c-09fed85ec0a5/efcc8925-5cde-4b8e-a98c-09fed85ec0a51.gif)
![ASYX(课堂PPT)_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/efcc8925-5cde-4b8e-a98c-09fed85ec0a5/efcc8925-5cde-4b8e-a98c-09fed85ec0a52.gif)
![ASYX(课堂PPT)_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/efcc8925-5cde-4b8e-a98c-09fed85ec0a5/efcc8925-5cde-4b8e-a98c-09fed85ec0a53.gif)
![ASYX(课堂PPT)_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/efcc8925-5cde-4b8e-a98c-09fed85ec0a5/efcc8925-5cde-4b8e-a98c-09fed85ec0a54.gif)
![ASYX(课堂PPT)_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/8/efcc8925-5cde-4b8e-a98c-09fed85ec0a5/efcc8925-5cde-4b8e-a98c-09fed85ec0a55.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n4月20日 晚上 18:30-22:40 n地点:西苑3#504 512n安排:两人一组n结果:程序代码,调试成功。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n含有多个C源文件.n将一类完成一个特定任务的函数放在一个C文件中,便于管理。n再编写.H文件,声明在.C文件中实现了的函数,方便其他文件调用。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础/ C File GUI.Cvoid GUI_DrawPiont(int x, int y) pr
2、intf(Draw Piontn);void GUI_DrawLine(int beginx, int beginy, int endx, int endy) printf(Draw Linen);void GUI_DrawCircle(int x, int y, int radius) printf(Draw Circlen);机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础/ H File GUI.H#ifndef _GUI_H_#define _GUI_H_void GUI_DrawPiont(int x, int y);void GUI_DrawLine(int begin
3、x, int beginy, int endx, int endy);void GUI_DrawCircle(int x, int y, int radius);#endif/ C File main.c#include “GUI.H”Int main() int x, y; x = 10, y = 10; GUI_DrawPiont(x, y);机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n Turbo C 的环境实在太老了,很不方便n VC下只能做一些文字性的练习题,想画条直线画个圆都很难,还要注册窗口类、建消息循环等等,初学者会受严重打击的。初学编程想要绘图就得用 TC,
4、很是无奈。n 还有计算机图形学,这门课程的重点是绘图算法,而不是 Windows 编程。n EasyX, 就是VC方便的开发平台和TC简单的绘图功能相结合。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n http:/ 其他类似的库 EGE机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n EasyX绘图库支持绘图库支持Visual C+ 6.0/2008/2010。下载的压缩包解压缩后,执行下载的压缩包解压缩后,执行Setup.hta 即可。即可。n 本质是,查找本质是,查找Visual C+ 开发系统的安装目录,开发系统的安装目录,并将相关文件分别拷贝至开发系统的
5、并将相关文件分别拷贝至开发系统的LIB目录和目录和INCLUDE目录。目录。n 成 功 安 装 后 , 使 用 方 法 和成 功 安 装 后 , 使 用 方 法 和 T C / B C 里 面 的里 面 的 graphics.h 没太大区别没太大区别机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n EasyX在使用上,基本和在使用上,基本和TC / BC 里面的里面的 graphics.h 没太大区别没太大区别#include stdafx.h#include #include int main(int argc, char* argv) initgraph(640, 480);
6、 circle(100, 100, 60); getch(); closegraph(); return 0;机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 基于基于Windows图形编程,将图形编程,将Windows下的复杂下的复杂程序过程进行封装,将程序过程进行封装,将Windows下的编程过程隐下的编程过程隐藏,给用户提供一个简单熟悉的接口。用户对于藏,给用户提供一个简单熟悉的接口。用户对于图形库中函数的调用,最终都会由图形库中函数的调用,最终都会由Windows的底的底层层API实现。实现。n 通过学习通过学习Windows程序设计,我们也可以实现这程序设计,我们也可以
7、实现这样一个类似的库。样一个类似的库。n EasyX不开源,不开源,EGE开源,可供参考。开源,可供参考。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n EasyX 使用 24bit 真彩色常量值颜色 常量值颜色BLACK0黑DARKGRAY0 x555555深灰BLUE0 xAA0000蓝LIGHTBLUE0 xFF5555亮蓝GREEN0 x00AA00绿LIGHTGREEN0 x55FF55亮绿CYAN0 xAAAA00青LIGHTCYAN0 xFFFF55亮青RED0 x0000AA红LIGHTRED0 x5555FF亮红MAGENTA0 xAA00AA紫LIGHTMA
8、GENTA0 xFF55FF亮紫BROWN0 x0055AA棕YELLOW0 x55FFFF黄LIGHTGRAY0 xAAAAAA浅灰WHITE0 xFFFFFF白机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 用用 16 进制的颜色表示,形式为:进制的颜色表示,形式为:n 用用 RGB 宏合成颜色宏合成颜色。0 xbbggrr (bb=蓝,gg=绿,rr=红)RGB 宏用于通过红、绿、蓝颜色分量合成颜色。COLORREF RGB( BYTE byRed, / 颜色的红色部分 BYTE byGreen, / 颜色的绿色部分 BYTE byBlue / 颜色的蓝色部分 );set
9、color(0 xff0000);setcolor(BLUE);setcolor(RGB(0, 0, 255);机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 在 EasyX 中,坐标分两种:逻辑坐标和物理坐标。n 物理坐标 :物理坐标是描述设备的坐标体系。坐标原点在屏幕的左上角,X 轴向右为正,Y 轴向下为正,度量单位是象素。坐标原点、坐标轴方向、缩放比例都不能改变。n 逻辑坐标:逻辑坐标是在程序中用于绘图的坐标体系。坐标默认的原点在屏幕的左上角,X 轴向右为正,Y 轴向下为正,度量单位是象素。n 坐标原点可以通过 setorigin() 函数修改;坐标轴方向可以通过 set
10、aspectratio() 函数修改;缩放比例可以通过 setaspectratio() 函数修改。n 凡是没有注明的坐标,均指逻辑坐标。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础设备:简单来说,就是绘图表面。在 EasyX 中,设备分两种,一种是默认的绘图窗口,另一种是 IMAGE 对象。通过 SetWorkingImage() 函数可以设置当前用于绘图的设备。设置当前用于绘图的设备后,所有的绘图函数都会绘制在该设备上。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 绘图环境相关函数绘图环境相关函数n 颜色模型颜色模型n 图形颜色及样式设置相关函数图形颜色及
11、样式设置相关函数n 图形绘制相关函数图形绘制相关函数n 文字输出相关函数文字输出相关函数n 图像处理相关函数图像处理相关函数n 鼠标相关函数鼠标相关函数n 其它函数其它函数机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述cleardevice清除屏幕内容。initgraph初始化绘图窗口。closegraph关闭图形窗口。getaspectratio获取当前缩放因子。setaspectratio设置当前缩放因子。graphdefaults恢复绘图环境为默认值。setorigin设置坐标原点。setcliprgn设置当前绘图设备的裁剪区。clearcliprgn清除裁剪
12、区的屏幕内容。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述getbkcolor获取当前绘图背景色。getfillcolor获取当前填充颜色。getfillstyle获取当前填充样式。getlinecolor获取当前画线颜色。getlinestyle获取当前画线样式。getrop2获取前景的二元光栅操作模式。setbkcolor设置当前绘图背景色。setfillcolor设置当前填充颜色。setfillstyle设置当前填充样式。setlinecolor设置当前画线颜色。setlinestyle设置当前画线样式。setrop2设置前景的二元光栅操作模式。机械电子工程
13、教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述arc画椭圆弧。circle画圆。clearrectangle清空矩形区域。ellipse画椭圆。polygon画多边形。fillcircle画填充圆(有边框)。fillellipse画填充椭圆(有边框)。fillpolygon画填充多边形(有边框)。fillrectangle画填充矩形(有边框)。floodfill填充区域。getheight获取绘图区的高度。getpixel获取点的颜色。getwidth获取绘图区的宽度。getx获取当前 x 坐标。gety获取当前 y 坐标。line画线。linerel画线。lineto画线。m
14、overel移动当前点。moveto移动当前点。pie画填充椭圆扇形。putpixel画点。rectangle画空心矩形。solidrectangle画无边框填充矩形。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述getfont获取当前字体样式。gettextcolor获取当前字体颜色。LOGFONT保存字体样式的结构体。outtext在当前位置输出字符串。outtextxy在指定位置输出字符串。drawtext在指定区域内以指定格式输出字符串。setbkmode设置输出文字时的背景模式。setfont设置当前字体样式。settextcolor设置当前字体颜色。te
15、xtheight获取字符串实际占用的像素高度。textwidth获取字符串实际占用的像素宽度。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述IMAGE保存图像的对象。loadimage读取图片文件。saveimage保存绘图内容至图片文件。getimage从当前绘图设备中获取图像。putimage在当前绘图设备上绘制指定图像。GetWorkingImage获取指向当前绘图设备的指针。rotateimage旋转 IMAGE 中的绘图内容。SetWorkingImage设定当前绘图设备。Resize调整指定绘图设备的尺寸。GetImageBuffer获取绘图设备的显存指
16、针。GetImageHDC获取绘图设备句柄。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础函数或数据描述FlushMouseMsgBuffer清空鼠标消息缓冲区。GetMouseMsg获取一个鼠标消息。如果当前鼠标消息队列中没有,就一直等待。MouseHit检测当前是否有鼠标消息。MOUSEMSG保存鼠标消息的结构体。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础kbhit()检查当前是否有键盘输入,若有则返回一个非检查当前是否有键盘输入,若有则返回一个非0值,值,否则返回否则返回0 机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础getch()Get
17、a character from the console without echo The getch function reads a single character from the console without echoing. Neither function can be used to read CTRL+C. When reading a function key or an arrow key, getch must be called twice; the first call returns 0 or 0 xE0, and the second call returns
18、 the actual key code.Return Valuegetch return the character read. There is no error return.机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础特殊按键特殊按键ASCII值值#define ESC 0 x1b#define KEY_UP 0 x48#define KEY_DOWN 0 x50#define KEY_RIGHT 0 x4d#define KEY_LEFT 0 x4b机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础
19、机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础 产品描述:贪食蛇是一个经典的小游戏。玩家使用方向键操控一条长长的蛇不断吞下豆子,同时蛇身随着吞下的豆子不断变长,当蛇头撞到蛇身或障壁时游戏结束。 功能说明: 初始化游戏界面,显示游戏名称三秒。 在程序中用格子初始蛇长及蛇的位置,并以默认速度开始自动移动。用户用方向键控制蛇为上下左右移动。 移动过程中每吃到一次食物,蛇的长度加1,玩家得分增加,分数增加的多少和蛇的移动速度有关在蛇的长度达到一定时,移动速度加快。 移动过程中如果蛇头碰到自己或者围墙,显示用户得分,显示选择界面,询问用户是否结束游戏和继续游戏。机械电子工程教研室机械电子工
20、程教研室软件技术基础软件技术基础 性能要求:在设计方面本着方便、实用及娱乐性高的宗旨,在对界面进行设计的过程中,始终坚持清晰明了,在性能方面能够实现效率高,不易出错等优点。游戏主界面应该力求美观,赏心悦目。游戏控制模块应做到易懂、易操作,而且准确率高,不易出错。 运行环境:windows XP系统系统/windows 2000以上系统以上系统中进行,程序设计要求在中进行,程序设计要求在visual C+6.0平台中平台中利用利用EasyX图形库图形库进行,完成代码的编写、编译、调试、测试等工作进行,完成代码的编写、编译、调试、测试等工作。本游戏对计算机硬件和操作系统要求极低。本游戏对计算机硬件
21、和操作系统要求极低,目前一般配,目前一般配置的计算机都可进行。置的计算机都可进行。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础u游戏采用模块化设计。整个系统分为:游戏采用模块化设计。整个系统分为:u初始化模块初始化模块u游戏控制模块游戏控制模块u食物模块食物模块u蛇模块蛇模块u画图模块画图模块u退出选择模块退出选择模块机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础u初始化模块:初始化模块: 图形库初始化图形库初始化,屏幕初始化用于显示游戏信息,屏幕初始化用于显示游戏信息“贪吃蛇贪吃蛇”;初始化游戏运行画面,包括颜色边框;初始化游戏运行画面,包括颜色边框等;初始化蛇
22、的数据及状态。等;初始化蛇的数据及状态。u游戏控制模块游戏控制模块 处理按键,各种逻辑关系处理按键,各种逻辑关系u食物模块食物模块根据逻辑生成食物根据逻辑生成食物u蛇模块蛇模块定时移动,增加长度,前进方向定时移动,增加长度,前进方向机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础u画图模块画图模块 根据数据和状态画出食物和蛇根据数据和状态画出食物和蛇u退出选择模块退出选择模块 游戏失败时,显示用户得分,给出退出或是继续游游戏失败时,显示用户得分,给出退出或是继续游戏选择;运行中按戏选择;运行中按ESCESC键,给出退出选择键,给出退出选择机械电子工程教研室机械电子工程教研室软件技术
23、基础软件技术基础u逻辑流程图逻辑流程图机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础u数据结构数据结构u食物的数据结构食物的数据结构u蛇的数据结构蛇的数据结构u各模块函数定义各模块函数定义机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础u模块间逻辑关系模块间逻辑关系机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 蛇、石头、食物的表示方法蛇、石头、食物的表示方法 把把显示区看做一个大大的表格,里面的格子就是组显示区看做一个大大的表格,里面的格子就是组成蛇的基本单位,一个格子就表示一块石头或代表成蛇的基本单位,一个格子就表示一块石头或代表一个事物。几个连在一起的格子就可以代表一条蛇。一个事物。几个连在一起的格子就可以代表一条蛇。使用坐标来区分这些格子使用坐标来区分这些格子。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 格子的坐标和像素坐标格子的坐标和像素坐标 由于画蛇、食物、石头我们只是填充一个矩形,或由于画蛇、食物、石头我们只是填充一个矩形,或者在相应位置显示一张图片,所以我们要知道每个者在相应位置显示一张图片,所以我们要知道每个格子的坐标。格子的坐标。机械电子工程教研室机械电子工程教研室软件技术基础软件技术基础n 食物的生成食物的生成机械电子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度电商渠道拓展与营销合作合同范本
- 2025年度个人住房按揭贷款合同范本-@-1
- 2025年度肉羊屠宰加工企业战略合作框架合同4篇
- 班级历史文化月活动计划
- 2025年理发、美容服务合作协议书
- 以消费者为中心的品牌策略计划
- 幼儿园园所文化建设的教研活动计划
- 推动护理专科发展与提升的策略计划
- 教学目标达成情况分析计划
- 长期财务规划方案计划
- 复工复产全员安全培训内容
- 护理组长个人述职报告
- 预防艾梅乙的课件
- 检验批划分及容量
- 人教版(2019) 选择性必修第三册 Unit 1 Art Assessing Your Progress课件
- 六年级下册数学应用题练习100题及答案
- 5系铝合金制备工艺
- 数学与日常生活的关系
- 急诊科护士的妇产科急症急救
- 《案场服务礼仪》课件
- 印刷服务投标方案(技术方案)
评论
0/150
提交评论