EasyX教程.docx

上传人:b****1 文档编号:2100382 上传时间:2022-10-26 格式:DOCX 页数:35 大小:667.49KB
下载 相关 举报
EasyX教程.docx_第1页
第1页 / 共35页
EasyX教程.docx_第2页
第2页 / 共35页
EasyX教程.docx_第3页
第3页 / 共35页
EasyX教程.docx_第4页
第4页 / 共35页
EasyX教程.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

EasyX教程.docx

《EasyX教程.docx》由会员分享,可在线阅读,更多相关《EasyX教程.docx(35页珍藏版)》请在冰豆网上搜索。

EasyX教程.docx

EasyX教程

一创立新工程c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=15

VC写程序要有工程的概念,一个工程可以有多个.cpp文件,多个工程构成一个工作区。

先记住这两个英文单词吧:

•Workspace:

工作区

•Project:

工程

现在开场创立一个新工程。

•VC6创立新工程请参考这个视频:

.easyx./news/View.aspx?

id=65

•VC2008创立新工程请参考这个视频:

.easyx./news/View.aspx?

id=85

•VC2010与VC2008相似。

看明白后,自己动手建立工程试试,并输入以下代码:

尤其是之前用tc的同学,请务必创立新工程试一试。

成功执行后,会看到屏幕上有“HelloWorld!

〞几个字符。

然后,再重新输入以下代码试试〔无需理解代码含义〕:

执行后应该可以看到屏幕正中央有一个十字。

看到该十字后,本节课完毕。

二简单绘图,学习单步执行c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=16

学会简单绘图,并学会简单调试。

先看看上一课的代码,我加上了注释

#include

//绘图库头文件,绘图语句需要

#include

//控制台输入输出头文件,

getch()语句需要

voidmain()

{

initgraph(640,480);

//初始化640x480的绘图屏幕

line(200,240,440,240);

//画线(200,240)-(440,240)

line(320,120,320,360);

//画线(320,120)-(320,360)

getch();

//按任意键

closegraph();

}

//关闭绘图屏幕

解释一下:

1.创立的绘图屏幕640x480,表示横向有640个点,纵向有480个点。

注意:

左上角是原点(0,0),也就是说,y轴和数学的y轴是相反的。

2.getch实现按任意键功能,按任意键后,程序继续执行。

否那么,程序会立刻执行closegraph以至于看不到绘制的内容。

[作业]

用线条画出更多的图形,要求不少于10条直线。

[学习单步执行]

完成作业后〔务必完成〕,开场试着单步执行刚刚的程序,由于绘图和多线程等因素的限制,请务必按照以下步骤尝试〔熟练了以后就不用了〕:

1.将VC取消最大化,并缩小窗口,能看到代码就行。

2.按一下F10〔单步执行〕,会看到屏幕上出现一个黄色的小箭头,指示将要执行的代码。

3.当箭头指向initgraph语句时,按F10,能看到窗口发生了变化。

4.将新的绘图窗口和VC并排放,相互不要有覆盖。

这步很重要,否那么绘图内容将会被VC窗口覆盖。

5.F10执行getch后,记得激活绘图窗口,并按任意键,否那么程序不会继续执行。

6.closegraph后,直接按F5执行全部剩余程序,完毕。

单步执行很重要,可以让你知道程序执行到哪里是什么效果,哪条语句执行出了问题等等。

更详细的调试资料,请看这里:

pan.baidu./s/1eR6HTc:

\iknow\docshare\data\cur_work\pan.baidu\s\1eR6HT

该文档写的调试的东西比拟多,看一下大概有个了解,以后都会用到〔不过以后我就不再讲了〕

[作业2]

仍然是写一个用直线绘制的图形,并熟悉调试过程。

注:

1.许多学校都忽略了调试局部,如果你不曾用过调试,请务必熟练该过程。

2.win-tc不带有任何调试功能,即便你不用vc,也请不要使用win-tc。

调试是相当相当重要的。

三学会更多的绘图语句

[常用的绘图语句]

•line(x1,y1,x2,y2);//画直线(x1,y1)-(x2,y2),都是整形

•circle(x,y,r);//画圆,圆心为(x,y),半径为r

•putpixel(x,y,c);//画点(x,y),颜色c

还有很多,如画椭圆、圆弧、矩形、多边形,等等,请参考绘图帮助文件〔第

一课的绘图库的下载里面有〕

[设置颜色]setlinecolor(c);//设置画线颜色,如setlinecolor(RED)设置画线颜色为红色

常用的颜色常量可以用:

•BLACK黑DARKGRAY深灰

•BLUE蓝LIGHTBLUE亮蓝

•GREEN绿LIGHTGREEN亮绿

•CYAN青LIGHTCYAN亮青

•RED红LIGHTRED亮红

•MAGENTA紫LIGHTMAGENTA亮紫

•BROWN棕YELLOW黄

•LIGHTGRAY浅灰WHITE白

[配出更多的颜色]颜色除了前面写的16种以外,还可以自由配色。

格式:

RGB(r,g,b)

r/g/b分别表示红色、绿色、蓝色,范围都是0~255。

例如,RGB(255,0,0)表示纯红色。

红色和绿色配成黄色,因此RGB(255,255,0)表示黄色。

嫌调色麻烦可以用画笔里面的调色试试,调好了以后直接将数值抄过来就行。

例如,画两条红色浓度为200的直线,可以这么写:

[用数字表示颜色]

除了用RGB(r,g,b)方式外,还可以用16进制表示颜色,格式:

0xbbggrr例如,setlinecolor(0x0000ff)和setlinecolor(RGB(255,0,0))是等效的。

[延时语句]

这个很简单,Sleep(n)就可以表示n毫秒的延时。

例如延时3秒,可以用

Sleep(3000);

[作业]

1.简单看一下绘图库的帮助文件,了解更多的绘图语句。

2.绘制更丰富的图形内容,不低于20行。

3.将延时语句适当的插入上个作业的代码中,看看执行效果。

注:

绘图语句不需要记住,用的时候翻翻手册就行。

四结合流程控制语句来绘图c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=18

熟练使用循环、判断语句

[熟悉for语句]

这步需要自学,看看自己手边的书,是怎样讲for语句的,简单看看就行。

[范例]

例如,画10条直线的代码:

换一下循环的范围和间隔,看看效果。

还可以用来画渐变色,例如:

[熟悉if语句]

这步需要自学,看看自己手边的书,是怎样讲if语句的,简单看看就行。

配合if语句,实现红色、蓝色交替画线:

1.画围棋棋盘。

2.画中国象棋的棋盘

3.画国际象棋的棋盘,看手册找到颜色填充语句,实现国际象棋棋盘的区块填充。

4.自学while语句。

学到这里,已经可以画出很多东西了。

把自己想象中的图案绘制一下吧。

五数学知识在绘图中的运用c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=19

理解数学的重要性

1.最简单的,来个全屏的渐变色吧,是上一课的扩展。

就是需要将0~255的颜色和0~479的y轴对应起来c表示颜色,范围0~255y表示y轴,范围0~479

于是:

c/255=y/479

c=y/479*255=y*255/479〔先算乘法再算除法可以提高精度〕看代码:

试试效果吧。

2.画一个圆形的渐变色

首先,我们要用到圆形的根本公式:

x*x+y*y=r*r

让弧度从0~2*3.14,然后需要根据弧度和半径算出(x,y),用pi表示圆周率用r表示半径

用a表示弧度〔小数〕用c表示颜色

于是:

x=r*cos(a)y=r*sin(a)

c=a*255/(2*pi)

看看代码:

[作业]

这次没什么作业,只是理解一下数学的重要性而已。

如果读者还在念书,请重视数学。

六实现简单动画c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=20

所谓动画,其实是连续显示一系列图形而已。

结合到程序上,我们需要以下几个步骤:

1.绘制图像

2.延时

3.擦掉图像

循环以上即可实现动画。

举一个例子,我们实现一条直线从上往下移动:

再看一个例子,实现一个圆从左往右跳动:

#include

也就是说,移动的间距小、延时短,动画就会越细腻。

但当画面较复杂时,会带来画面的闪烁〔怎样消除闪烁是以后的话题〕。

[作业]

绘制一个沿45度移动的球,碰到窗口边界后反弹。

七捕获按键,实现动画的简单控制c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=21

最常用的一个捕获按键的函数:

getch()

前几课,都把这个函数当做“按任意键继续〞来用,现在我们用变量保存这个按键:

charc=getch();

然后再做判断即可。

不过程序执行到getch()是会阻塞的,直到用户有按键才能继续执行。

可游戏中总不能因为等待按键而停顿游戏执行吧?

所以,要有一个函数,判断是否有用户按键:

kbhit()

这个函数返回当前是否有用户按键,如果有,再用getch()获取即可,这样是不会阻塞的。

即:

举一个简单的例子,如果有按键,就输出相关按键。

否那么,输出“.〞。

每隔100毫秒输出一次。

按ESC退出。

注:

ESC的ASCII码是27。

完整代码如下:

printf("%c",c);

Sleep(100);

}

}

结合上一课的简单动画,就可以做出来靠按键移动的图形了吧,看以下代码,实现as控制圆的左右移动:

//绘制新的图形

setcolor(YELLOW);

setfillcolor(GREEN);

fillcircle(x,240,20);

//延时

Sleep(10);

}

closegraph();

}

[作业]

请继续完成这个程序,实现以下功能:

1.上下的控制;

2.边界检测;

3.结合kbhit实现惯性移动〔即按一下方向键,圆就会一直向这个方向移动〕

注:

上下左右等按键的控制,会返回2个字符。

由于该系列教程面向初学者,因此有兴趣的请查看MSDN。

八用函数简化一样图案的制作c:

\iknow\docshare\data\cur_work\.easyx\skills\View.aspx?

id=22

实际中有许多类似的图案,如果一一单独绘制,太麻烦。

于是,我们需要一个公用的绘制过程,就是函数。

例如,我们需要画5个三角形,位于不同的位置。

我们可以将绘制单个三角形的过程写成函数,函数内是一个独立的程序段,这个绘制过程很简单。

然后,在需要绘制的时候,调用这个函数即可。

可以通过参数来解决细微差异〔图案的坐标、颜色等〕,例如:

}

再结合循环等控制条件,就能绘制更复杂漂亮的图案了。

试试运行下面程序,理解一下函数的用处:

运行效果:

本节作业:

1.绘制W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 军事政治

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

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