python起笔落笔_Python赤橙黄绿青蓝紫(落笔抬笔打点)教学演示幻灯片.pyw

1 """

2 第十课 赤橙黄绿青蓝紫(落笔抬笔打点)3 """

4 from sprites import *

5

6 s = '第十课 赤橙黄绿青蓝紫(落笔抬笔打点)'

7 screen =Screen()8 screen.bgcolor('blue')9 screen.titlebar(False)10 root = screen._root #窗口对象

11 root.wm_attributes('-alpha',0.7) #设置窗口为全透明(0到1.0)

12 screen.setup(800,800)13 screen.tracer(0,0)14

15 #下面的代码让窗口可以拖动.

16 oldx =017 oldy =018 defstartmove(event):19 globaloldx,oldy20 oldx =event.x21 oldy =event.y22 defstopmove(event):23 globaloldx,oldy24 oldx =025 oldy =026 defmovewindow(event):27 globaloldx,oldy28 dx = event.x -oldx29 dy = event.y -oldy30 root.move(dx,dy)31 screen.cv.bind("", startmove)32 screen.cv.bind("", stopmove)33 screen.cv.bind("",movewindow)34

35 #下面的代码按方向箭头则窗口能上下左右移动

36 screen.onkeypress(lambda:root.move(10),'Right')37 screen.onkeypress(lambda:root.move(-10),'Left')38 screen.onkeypress(lambda:root.move(0,-10),'Up')39 screen.onkeypress(lambda:root.move(0,10),'Down')40 screen.listen()41

42 ft_title = ('楷体',30,'bold')43 ft_context = ('宋体',18,'normal')44 t = Sprite(visible=False,pos=(-500,100))45 t.color('magenta')46 clock =Clock()47 for x in range(100):48 t.clear()49 t.write(s,align='center',font=ft_title)50 t.wait()51 t.fd(5)52 clock.tick(60)53

54 spacekey = Key('space') #空格键

55 m1 = Mouse() #鼠标左键

56 while notspacekey.down():screen.update()57

58 #简介

59 brief ="""

60 本节课,我们主要学习倒退命令、抬笔与落笔和打点命令。61 然后运用所学过的知识用程序的顺序结构画一个简单的彩色图形。62 在这个课程中,我们把画的步骤描述了一下,大家在观看视频的时候63 可以暂停一下,看看能不能自己先画出来。64 """

65 if brief!='': #如果有课程简介,则生成一个角色,

66 ftx = ('宋体',18,'normal')67 简介 = Sprite(visible=False,pos=(0,-100))68 简介.color('white')69 简介.write(brief,align='center',font=ftx)70 whilespacekey.down():screen.update()71 while notspacekey.down():screen.update()72

73 for x in range(66): #标题向右消失

74 t.clear()75 t.write(s,align='center',font=ft_title)76 t.fd(10)77 if brief!='':78 简介.clear()79 简介.write(brief,align='center',font=ftx)80 简介.bk(10)81 clock.tick(60)82 简介.clear()83

84 #以下是显示学习的内容段

85 studycontent = """

86 主要学习内容87

88 1、关于参数89

90 2、倒退命令91

92 3、落笔与抬笔93

94 4、dot打圆点命令95

96 5、编程画图形97

98 6、练习与作业99 """

100 t.color('white')101 t.clear()102 t.sety(-260) #这里修改菜单的显示y坐标

103 ft = ('楷体',24,'bold')104 s =studycontent105 while notspacekey.down():screen.update()106 #下面的代码显示主菜单

107 for x in range(130):108 t.clear()109 t.write(s,align='center',font=ft)110 t.bk(5)111 clock.tick(60)112

113 defslow_write(t,string):114 """

115 t:角色,string:要显示的字116 本函数慢慢的显示字。117 """

118 string = string.split('\n') #换成列表

119 oldxy = t.position() #记录老的坐标

120 t.goto(-360,330) #定位到标题的坐标

121 #显示标题,注意string[0]是一个空行

122 t.write(string[1],font=ft_title)123 t.addy(-50)124 for line in string[2:]: #每一行字

125 for char in line: #每一个字符

126 t.write(char,align='center',font=ft_context)127 t.wait(0.1)128 cd = len(bytes(char,'gb2312'))129 if cd == 1:130 t.addx(16)131 else:132 t.addx(24)133 t.setx(-360)134 t.addy(-30)135 t.goto(oldxy)136

137 s1 = """

138 1、关于参数139

140 所谓参数,它可能是一个数据,也可能是一个变量,141 关于参数我们以后还会讲解。在这里把它理解为写142 到命令小括号中的数据。如turtle.fd(100),143 那么100就是参数。而在print(32,76)这句代码中,144 print命令有两个参数,它们以逗号进行隔开。145

146 """

147 defpress1():148 t.clear()149 slow_write(t,s1)150 while notspacekey.down():screen.update()151 t.clear()152 t.write(s,align='center',font=ft)153 screen.onkeypress(press1,'1')154

155

156 s2 = """

157 2、倒退命令158

159 如果要让海龟倒退的话,我们可以在forward命令中用负数。160 当然,也可以直接用海龟画图提供的backward、back和bk命令。161 它们都是能让海龟往后退。162 如turtle.backward(100)就能让海龟倒退100个单位了。163 当然,我们写成turtle.back(100)或者turtle.bk(10)164 都是完全没有问题的。165

166 """

167 defpress2():168 t.clear()169 slow_write(t,s2)170 while notspacekey.down():screen.update()171 t.clear()172 t.write(s,align='center',font=ft)173 screen.onkeypress(press2,'2')174

175

176 s3 = """

177 3、落笔与抬笔178

179 海龟默认就是落笔的,当我们移动它时,它就会留下轨迹。180 如果不希望它留下轨迹,那么我们可以用抬笔命令让它抬笔。181 pendown,pd,down这三个是落笔命令,没有参数。182 penup,pu,up这三个是抬笔命令,没有参数。183 isdown命令判断是否是落笔还是抬笔状态。184 """

185 defpress3():186 t.clear()187 slow_write(t,s3)188 while notspacekey.down():screen.update()189 t.clear()190 t.write(s,align='center',font=ft)191 screen.onkeypress(press3,'3')192

193

194 s4 = """

195 4、dot命令196

197 dot命令能打圆点,它有两个参数,第一个表示直径,第二个表示颜色。198 如果不写颜色,则以海龟的颜色为圆点的颜色。199 假设海龟的颜色为红色,那么dot(100)会打一个直径为100的红圆。200 dot(100,'blue')则不管海龟什么颜色,海龟都会在屏幕上201 会打一个直径为100的蓝色的圆。202 """

203 defpress4():204 t.clear()205 slow_write(t,s4)206 while notspacekey.down():screen.update()207 t.clear()208 t.write(s,align='center',font=ft)209 screen.onkeypress(press4,'4')210

211

212 s5 = """

213 5、编程画图形214

215 现在来练习编程,让海龟从屏幕的左边到右边打不同颜色的圆点。216 颜色依次是赤、橙、黄、绿、青、蓝、紫。217 由于黑色的背景能更加衬托出彩色的效果,所以当导入海龟模块后,218 我们获取了屏幕,把它命名为screen,然后把屏幕的背景色设为黑色。219 接着,为了让海龟在移动的过程中不留下轨迹,所以让它抬笔了。220 我们希望海龟从左边到右边打圆点,所以让海龟倒退了300个单位。221 最后,我们不断地打一个不同颜色的圆点,然后前进100个单位,222 一共打了7个点。223

224 """

225 defpress5():226 t.clear()227 slow_write(t,s5)228 while notspacekey.down():screen.update()229 t.clear()230 t.write(s,align='center',font=ft)231 screen.onkeypress(press5,'5')232

233 s6 = """

234 6、练习与作业235

236 ★ 画两条并排的竖线条,长度为100,隔50个单位237

238 ★ 打两行甚至更多行的赤橙黄绿青蓝紫圆点图形。239

240 ★ 打点时只写直径这个参数,重新编制赤橙黄绿青蓝紫图形。241

242 """

243 defpress6():244 t.clear()245 slow_write(t,s6)246 while notspacekey.down():screen.update()247 t.clear()248 t.write(s,align='center',font=ft)249 screen.onkeypress(press6,'6')250

251

252

253 byebye = """

254 下次再见!255 """

256 defpressq():257 t.clear()258 t.color('cyan')259 t.home()260 t.write(byebye,align='center',font=('宋体',38,'bold'))261 while notspacekey.down():screen.update()262 screen.bye()263 screen.onkeypress(pressq,'q')264

265

266 screen.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值