乌龟编程精讲版-54

程序·创造

软件·就是世界

代码难易度:稍难

这是一个“发射导弹”的小游戏。看完本节你肯定会有很多想法:这个游戏还可以做得更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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181005G07M7200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券