Turtle(8)

前言

Turtle库的内容学习到现在,基本已经完成了.
本节课,在上节课的内容基础上,做了一个简单的升级,多对象的简单动画效果
当然,turtle不是一擅长做动画的库.只是想告诉大家,这个库可以做到这个事情.
并以事实说明,这是真的可行的,且给大家做一个简单的演示

完整示例代码如下

import turtle as t
import time
import random



def snow_down(tt: t):
'''函数说明'''
'''
负责对雪花进行下落的处理.
tt参数是一个turtle对象.
下落过程中,有左右的随机运动,也有向下掉落速度的随机改变.
'''
    x, y = tt.pos()
    x += random.randint(-5,5)
    y -= random.randint(1, 5)
    tt.goto(x,y)
    

def show_text(content, pos):
'''函数说明'''
'''
用来在指定位置显示文本内容
第一个参数:content为要显示的内容
第二个参数:pos为要显示的内容的左上角坐标,是一个元组 
'''
    t.penup()
    t.goto(pos)
    t.pendown() 
    t.write(content, font=("宋体", 18, "normal"))



def creat_snow():
'''函数说明'''
'''
用来生成一个雪花
并将之移动到合适的位置
'''
    t_temp = t.clone()  # 所有克隆出来的turtle 都在t.turtles()列表中
    x = random.randint(-200, 200)
    y = random.randint(300, 360)
    t_temp.penup()
    t_temp.goto(x, y)
    t_temp.showturtle()


def init_game():
''' 函数说明 '''
'''  
对程序的基本内容进行初始化
'''
    # 初始化程序
    # 初始化
    t.tracer(0)  # 设置全屏刷新
    t.setup(800, 800)  # 设置画布大小
    screen = t.Screen()  # 准备添加雪花形状
    img_path = "F:\MyProject\PythonCode\Python教程\Turtle教程\Turtle8\img\snow_small.gif"
    screen.addshape(img_path)
    t.shape(img_path)
    t.penup()
    
    # 写文字
    show_text("元旦快乐", (-50, 350))
    
def main():
'''   函数主程序 '''
'''
负责控制整个程序的逻辑与调度
'''
    T = 1 / 40  # 1秒 40帧
    time_pass = 1  # 每隔一秒生成一个雪花
    while 1:
        
        if time_pass >= 1:
            creat_snow()
            time_pass = 0
            
        for each in t.turtles():
            if each.ycor()>= -300:
                each.penup()
                snow_down(each)
            else:
                each.hideturtle()
        time_pass += T
        t.update()
        time.sleep(T)



# 主程序
if __name__ == "__main__":
    init_game()  # 初始化程序
    main()
    t.done()

效果图如下:

pythonturtle库改变图纸的大小 turtle库设置画布大小_turtle

代码要点分析

  • 代码说明
    代码长度过长,对代码进行了一定的分类处理.这也是我们处理长代码的一种重要手段.将不同的功能,用不同的函数来处理.以增加代码的可读性与可维护性
  • 第一个函数:snow_down()
    负责对雪花进行下落的处理.
    下落过程中,有左右的随机运动,也有向下掉落速度的随机改变.
  • 第二个函数:show_text()
    负责在指定位置显示文本内容,第一个参数为要显示的内容,第二个参数为要显示的位置坐标(元组)
  • 第三个函数:creat_snow()
    负责克隆雪花,并对克隆出来的雪花做一些简单的位置处理.使之移动合适的位置以便后续的下落
  • 第四个函数: init_game()
    负责对程序的一些基本设置进行初始化
  • 第一个函数:main()
    整个程序的主程序.负责调度,什么时候生成雪花,什么时候降落,什么时候隐藏等等总的把控.

正常情况下,代码的组织是把主要的函数写在上面,被调用的函数写在下面.这里方便解析.做了一个简要的倒序处理.

后记:

turtle是一个非常强大的库,其内容也非常丰富.
学习到这里,基本上一个基本的python程序要有的东西都给大家介绍了一遍.
后续的内容,有两个方向

  1. 基于现有的知识的项目与作品构思与完成
  2. 学习新的库,掌握更加强大的功能