返回第十九章 快跑灰太狼(2 / 2)任煦之秋首页

关灯 护眼     字体:

上一页 目录 下一章

我若有所思道。

「如果你暂时理解不了也没有关系,我们现在的学习重点并不是UI的机制。那我们现在分析一下我们在键盘输入事件里面需要添加哪些内容:

首先,我们需要在事件中用一个char类型的变量来获取键盘输入按键的键码,就取名叫做keyCode吧。至于如何获取,MFC已经给我们留好方法了,这个暂且不提。

接下来我们就应该用switch来进行逻辑处理:

switch(keyCode)

{

case 38:/*上*/

灰太狼向上移动

break;

case 40:/*下*/

灰太狼向下移动

break;

case 37:/*左*/

灰太狼向左移动

break;

case 39:/*右*/

灰太狼向右移动

break;

&:/*其他按键*/

什么都不做

break;

}

上下左右的键码分别38、40、37、39,接下来我们要做的就是实现灰太狼的移动逻辑了。」

「嗯~」

我应了一声,在脑中想了一下老爹刚刚说的内容,确认没有什么问题后点了点头。

「还记得第一天我跟你说过,电脑的显示屏其实是一个个排列的点阵吧?应该说是像素点。」

「记得!」

毕竟当时老爹让我亲自动手实现了大写字母「Y」的显示过程,所以我对这个知识点的印象还是很深刻的。

「记得就好,对于每一个像素点来说,它们都有自己的位置,就像是五指棋盘行数用数字表示,列数用字母表示,当我们描述一个格子的位置时,就会A1,B2等来表示第一行第一列和第二行第二列的格子。

同样,像素点也有自己位置的描述方式,它是用x和y来记录,其中x代表列号,y代表行号,它们都是从0开始的,x从左到右依次增大,y从上到下依次增大。

像你房间里这台电脑的显示器分辨率是1920x1080,这代表着台显示器像素点一共有1080行,每一行有1920个像素点。最左上角的那个像素点位置是x=0,y=0,最右上角那个像素点的位置是1920,0。你能告诉老爹最左下角和最右下角的两个点的像素位置么?」

老爹拿着屏幕跟我细细讲道。

「这有什么难的,左下角像素点的位置是x=0,y=1080,右下角的像素点是x=1920,y=1080。」

「不错,正是如此。其实我们在移动灰太狼的时候,本质上就是在改变灰太狼图片在屏幕中的位置。比如说我们要把灰太狼向上移动10个像素,那么只需要让灰太狼的x保持不变,让y减去10;如果要向下移动,就让y加上10。

同理,要向左移动,就是对x做减法,向右则是对x做加法。」

有了老爹的理论支持和技术支持,很快我就将移动灰太狼的逻辑写好了。费了这么大的劲,我肯定要好好玩一下,于是在我的控制下,灰太狼在屏幕中到处乱跑。

『加入书签,方便阅读』

上一页 目录 下一章