当然了,贪吃🐍和普通的🐍不一样。他只会上下左右移动,而不是随意乱串的。而且他是由一个一个的小块块连接起来的。所以我们这里用线条表示蛇也是不合适的。应该换成一个一个的小块。既然是🐍是由小块练起来的,假如把🐍铺满地图,那么地图上肯定也是满屏的小块。所以,整个地图,就是一个一个的方格子。
接下来,我们画个地图。顺便淘汰掉这条不合格的蛇。
首先预定一下每个格子多大,我选择20px。(px是像素单位后续一律简写)
一条
N条....
这么半天才画了一半不到,实在是太累了。难道就不能告诉计算机规则,让他批量画线吗?
所以,我们需要告诉程序一下事情:
画一条顶边为20px从左边为0到右边为1024(这里是窗口和画板宽度为1024)的线。
在上一条线的顶变上加20px的位置画一条从左边为0到右边为1024的线。
重复第二步.....直到铺满最后画的一条线的顶变超过或者等于画板的高度。
上面是我们需要告诉程序的事情。但是,直接那样说,程序是听不懂的。一行代码一次只能做一件事情、做一个处理,所以我们应该变通下:
记住 20
画一条顶边为记住的数的px从左边为0到右边为1024(这里是窗口和画板宽度为1024)的线。
将之前记住的数加20
画一条顶边为记住的数的px从左边为0到右边为1024(这里是窗口和画板宽度为1024)的线。
...直到记住的数超过或者等于画板的高度。
这里除了基本运算和画直线外我们还需要让程序做两种处理,一种是记录线的顶边高度。
另一种是可以让他循环执行指令的东西。
先说让他记住一点东西。变量就刚好做到这一点。
变量有三种,分别是局部变量,程序集变量,全局变量。三种不同的变量,代表着在程序内部,不同的地方是否可以访问到他们。
->局部变量只能在当前子程序里访问,当然子程序执行结束时销毁。
->程序集只能在当前写代码的这一页里访问,如果是对象的话随着对象销毁。
->全局变量在哪里都可以访问,程序结束后才会销毁。
创建方式也不同。
->局部变量 在子程序里 ctrl+L 或者 菜单栏 -> 插入 -> 局部变量 创建。
->程序集变量
只能在窗口程序集那个表格里enter(回车键)创建。
->全局变量 ctrl + g 创建 或者 菜单栏 -> 插入 -> 局部变量 创建 或者 左侧面板 程序 -> 程序数据 -> 右键菜单里新全局变量 。
在创建变量的时候,应该尽量创建访问范围小的变量,用完让就让他销毁,腾出内存空间来。在这里,我们也就是画几根线而已,所以我们建立一个局部变量就行了。
这里有个数据类型,数据类型就是你要存放什么数据。
通过属性面板我们可以看到代表窗口大小的这四个属性都是整数型,所以我们的变量也是整数型。
像图中这样,我们可以批量复制相同的代码。来让程序自己计算高度,但是这并达不到我们的期望,我们还需要让他自己重复做计算和画线的操作。
我们还需要可以让他循环执行指令的东西,这种指令会控制他执行代码的流程(比如让几行代码循环执行多次),所以叫做“流程控制”语句。
在左侧面板支持库,系统核心支持库里可以看到有循环指令。
一般来说,易语言开发者几乎是无视变量循环的,只是用计次循环,判断循环、判断循环。至于变量循环在其他语言中是for循环,但是到了易语言中真的好难用....改来的具体如何使用,除了本教程介绍到的,可以自己看提示。
我们这里可以使用判断循环。
这样,4行代码就画完一页线了。
然后解释一下这几行代码的意思。
第一行告诉程序 线顶是0
第二行他会判断线顶是不是还没有到画板的高。如果是的话,那么他就会执行被判断循环包围的代码块。直到超出为止。
剩下的上面解释过了。
然后竖线也可以这么画。但是,上面创建的变量线顶,我们可以那过来重复使用,不需要额外创建变量。因为创建更多的变量会占用更多的内存空间。当然名字我们也可以改一下。
就这样,几行代码,画满了整个窗口。
这些线呢,是我们设计游戏时用的参考线。游戏做出来时会把他们关闭掉。
这层楼就结束了。就酱。我去休息啦ヾ(•ω•`)o