ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:22.61KB ,
资源ID:16264358      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16264358.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VCeasyx绘图游戏简易教程Word格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VCeasyx绘图游戏简易教程Word格式.docx

1、常用的绘图语句line(x1, y1, x2, y2); 简单看一下绘图库的帮助文件,了解更多的绘图语句。2. 绘制更丰富的图形内容,不低于20行。3. 将延时语句适当的插入上个作业的代码中,看看执行效果。注:绘图语句不需要记住,用的时候翻翻手册就行。-4:结合流程控制语句来绘图范例例如,画10条直线的代码: for(int y=100; y200; y+=10) line(100, y, 300, y);换一下循环的范围和间隔,看看效果。还可以用来画渐变色,例如: for(int y=0;256; y+) setcolor(RGB(0,0,y); 熟悉if语句这步需要自学,看看自己手边的书,

2、是怎样讲if语句的,简单看看就行。配合if语句,实现红色、蓝色交替画线: if ( y/10 % 2 = 1) 画围棋棋盘。2. 画中国象棋的棋盘3. 画国际象棋的棋盘,看手册找到颜色填充语句,实现过期象棋棋盘的区块填充。4. 自学while语句。学到这里,已经可以画出很多东西了。把自己想象中的图案绘制一下吧。5:数学知识在绘图中的运用1. 最简单的,来个全屏的渐变色吧,是上一课的扩展。就是需要将0255的颜色和0479的y轴对应起来c 表示颜色,范围0255y 表示y轴,范围0479于是:c / 255 = y / 479c = y / 479 * 255 = y * 255 / 479 (

3、先算乘法再算除法可以提高精度)看代码: int c;480; c = y * 255 / 479; setcolor(RGB(0,0,c); line(0, y, 639, y);试试效果吧。2. 画一个圆形的渐变色首先,我们要用到圆形的基本公式:x*x + y*y = r*r让弧度从02*,然后需要根据弧度和半径算出(x,y),用pi表示圆周率用r表示半径用a表示弧度(小数)用c表示颜色x=r*cos(a)y=r*sin(a)c=a*255/(2*pi)看看代码: double a; int x, y, r=200; for(a=0; aPI*2; a+= x=(int)(r*cos(a)

4、+ 320 + ; y=(int)(r*sin(a) + 240 + ; c=(int)(a*255/(2*PI) + ; setcolor(RGB(c,0,0); line(320, 240, x, y);6:实现简单动画所谓动画,其实是连续显示一系列图形而已。结合到程序上,我们需要以下几个步骤:1. 绘制图像2. 延时3. 擦掉图像循环以上即可实现动画。举一个例子,我们实现一条直线从上往下移动: 。每隔 100 毫秒输出一次。按 ESC 退出。ESC 的 ASCII 码是 27。完整代码如下: char c = 0; while(c != 27) if (kbhit() c = getch

5、(); else c = .;%c, c); Sleep(100);结合上一课的简单动画,就可以做出来靠按键移动的图形了吧,看以下代码,实现 a s 控制圆的左右移动: int x = 320; 上下的控制;2. 边界检测;3. 结合 kbhit 实现惯性移动(即按一下方向键,圆就会一直向这个方向移动)上下左右等按键的控制,会返回 2 个字符。由于该系列教程面向初学者,因此有兴趣的请查看 MSDN。8:用函数简化相同图案的制作实际中有许多类似的图案,如果一一单独绘制,太麻烦。于是,我们需要一个公用的绘制过程,就是函数。例如,我们需要画5个三角形,位于不同的位置。我们可以将绘制单个三角形的过程写

6、成函数,函数内是一个独立的程序段,这个绘制过程很简单。然后,在需要绘制的时候,调用这个函数即可。可以通过参数来解决细微差异(图案的坐标、颜色等),例如:绘制 Windows 自带游戏“扫雷”的初始界面。9:绘图中的位运算位运算和绘图有什么关系?先举个例子来个感性认识:使用XOR运算可以实现擦除图形后不破坏背景,这在时钟程序中绘制表针是很有用的。稍后我们会给出这样的例子。一、位运算的运算法则位运算主要分4种:NOT、AND、OR、XOR位运算的运算对象是二进制数(十进制要转换为二进制,计算机会自动转换)。运算法则如下:1. NOT表示“取反”,将二进制位的1变0、0变1。C语言用符号 表示。如:

7、二进制: 1101 = 0010用十进制表示就是:13 = 22. AND表示“并且”,只有两数的对应二进制位都为1,结果的二进制位才为1;否则,结果的二进制位为0。C语言用符号 & 表示。1101 & 0110 = 010013 & 6 = 43. OR表示“或者”,两数的对应二进制位只要有一个是1,结果的二进制位就是1;C语言用符号 | 表示。0101 | 0110 = 01115 | 6 = 74. XOR表示“异或”,两数的对应二进制位不同,结果的二进制位为1;相同,结果的二进制位为0。C语言用符号 表示。0101 1110 = 1011以上只是简单介绍一下,详细的还是请大家看课本上的

8、讲解。二、位运算的应用位运算的应用很多,例如 AND 和 OR 在获取和设置标志位时经常使用。更多的,以后大家会逐渐遇到,暂时先记下有这么回事。这里着重说一下 XOR 运算,它有一个重要的特性:(a b) b = a也就是说,a b 之后可能是某些其它数字,但是只要再 b 一下,就又成了 a。一些简单的加密就用的 XOR 的这个特性。至于绘图,假如 a 是背景图案,b 是将要绘制的图案,只要用 XOR 方式绘图,连续绘两次,那么背景是不变的。三、演示我们来一个简单的绘图 XOR 运算演示: .下面举一个综合的例子(我偷点懒,直接粘贴的绘图库帮助里面的鼠标范例),该程序会用红色的点标出鼠标移动的

9、轨迹,按左键画一个小方块,按Ctrl+左键画一个大方块,按右键退出: 画一个填充的三角形,要用鼠标点选三角形的三个顶点。提示:可以用 fillpoly 函数画多边形。2. 写一个“涂格子(也叫点灯)”的游戏。详细规则可以试玩网上的各种版本。3. 如果有精力,尝试写一个扫雷吧(这个有点难度,能实现多少就实现多少,无法实现的功能先放下)。11:随机函数随机函数简介游戏中,许多情况都是随即发生的。还有一些图案程序,例如屏保,也是随即运动的。这就需要用随机函数。随机函数很简单,只有一个:rand()该函数返回 032767 之间的一个整数。(不需要记住 32767 这个数字,大概知道这个范围就行了)该

10、函数在头文件 中,使用前记得引用。简单测试来写个程序测试一下: int r; for(int i=0; i10; i+) r = rand();%dn, r);执行后,可以看到输出了 10 个随机数字。指定范围的随机函数实际中,我们经常要产生指定范围的随机函数,通常我们用求余数的办法。例如,产生 09 之间的随机数,只需要将任意产生的随机数除以 10 求余数即可。求余数的运算符号是 %,我们可以这样做: r = rand() % 10;修改前面的测试程序执行后可以看到,产生的数字都是小于 10 的。如果是 16 之间的怎样求呢? r = rand() % 6 + 1;无论产生什么样范围的随机函

11、数,都是通过各种运算将随机数的范围 0, 32767 修改为自己需要的范围。随机种子做了多次试验,我们会发现一个问题:虽然产生的数字是随机的,但每次产生的数字序列都一样。为了解决这个问题,我们需要用“随机种子”。随机函数的产生原理简单来说,就是:前一个随机函数的值,决定下一个随机函数的值。根据这个原理我们可以知道:只要第一个随机函数的值确定了,那么后面数字序列就是确定的。如果我们想的得到不同的数字序列,我们需要确定第一个随机函数的值,对于设置第一个随机函数的值,叫做设置“随机种子”。易知,随机种子设置一次即可。设置随机种子的函数如下:srand(种子);通常,我们用当前时间来做随机种子:sra

12、nd( (unsigned)time( NULL ) );因为使用 time 函数,所以记得引用 16 2至20位精度的系数:Gray = (R*1 + G*2 + B*1) 2Gray = (R*2 + G*5 + B*1) 3Gray = (R*4 + G*10 + B*2) 4Gray = (R*9 + G*19 + B*4) 5Gray = (R*19 + G*37 + B*8) 6Gray = (R*38 + G*75 + B*15) 7Gray = (R*76 + G*150 + B*30) 8Gray = (R*153 + G*300 + B*59) 9Gray = (R*306 + G*601 + B*117) 10Gray = (R*612 + G*1202 + B*234) 11Gray = (R*1224 + G*2405 + B*467) 12Gray = (R*2449 + G*4809 + B*934) 13Gray = (R*4898 + G*9618 + B*1868) 14Gray = (R*9797 + G*19235 + B*3736) 15Gray = (R*39190 + G*76939 + B*14943)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1