程序·创造
软件·就是世界
代码难易度:稍难
这是一个“发射导弹”的小游戏。看完本节你肯定会有很多想法:这个游戏还可以做得更cool一些。确实如此,不过为了尽量降低难度,让大家有个逐步的接受过程,我只把核心的东西做了出来,等你有了更高的水平自然可以将它做得更炫。游戏的界面是这样:
图1:游戏界面
中间位置的是你的飞船,红色小三角形是你的“导弹”,右上角附近的橙色正方形是你要击中的目标,开始玩的时候,命令窗口会出现下面的提示:要你输入导弹的角度和导弹的力度(1-10之间选一个数字),你输入完之后——“嗖”导弹就发射出去了。
命令行提示
导弹发射
好,我们一点点开始写代码...
开头设置
至于开头的设置,都是和以前一样的标准流程:import导入模块后(这里面又导入了random模块了,后面画星星会用的),设一个变量wn引用“屏幕”对象,然后设置屏幕大小和背景,我还用“stars.gif”这个图片当成背景了。
代码段1
需要注意的是:上面的代码还预先建了许多的“变量”——这里面是常量值,都是大写的字母一般表示“”常量——也就是不改变值的量称为常量。以后编程中会经常用到,比如EAST=0,那我后面程序想写0的时候,就可以用EAST代替了。
画“任务目标”
就是右上角的橙色方块。造一个“乌龟”——名字叫"a",goto走到目标位置后,设置fillcolor填充颜色和pencolor画笔颜色,然后是for循环画正方形。因为要填充颜色,所以要将for循环放在begin_fill()和end_fill()之间。
代码段2
画一些星星
星星我们用“点”代替,所以命令会用turtle.dot()命令;至于星星的位置,我这里用random随机模块的randint方法随机产生(x,y)坐标点。将这些放在一个函数stars里——所以调用这个函数就产生了一个位置随机的“星星”,然后用for循环执行stars函数50次,就在50个随机的位置产生了50颗星星。
代码段3
画大行星
这里面大的行星我画了3个。颜色分别是绿色、蓝色和棕色;形状当然是circle圆形的,而且位置坐标我是随便选择的。
代码段4
画飞船
说是飞船,其实就是两个圆形而已。毕竟这里追求的不是写真,而是写意。代码很容易懂,你应当可以理解的。
代码段5
目标位置写字
目标位置写几个字,当然是write函数了,你想写什么就写什么,也可以把你恨的人的名字写上;然后让乌龟goto走到原点(0,0)的位置,然后showturtle一下显示出“乌龟箭头”来(之前我们画所有东西都是在隐藏“乌龟”的情况下画的)
代码段6
运行下看看
将上面的6段代码连起来执行,是不是出现了图1的游戏界面?嗯嗯!好了,今天先到这里。明天继续写处理代码。如果你觉得这个游戏界面不好看,其实你现在就可以自作主张开始改了:比如将目标变成别的样子,而不是仅仅一个方块;或者你把那3颗大行星弄得漂亮一些让他们更像真的行星,好了,决定权在你手里。
代码段7
领取专属 10元无门槛券
私享最新 技术干货