少儿python编程之用海龟模块做弹球动画

我们可以用海龟画图来做弹球动画,在海龟模块中Turtle()这个命令实际的动作是类产生一个对象,我们可以用它来建立‘角色’。
用对象的shape()方法改变它的图片。所谓对象的方法,是属于对象的函数,只有对象才能调用它。在程序中,我们新建了一个x速度和一个叫y速度的变量。
它们用来做小球每次在水平和垂直方向移动的距离,每次移动的距离越长,速度好像就越快。

#下面是 源代码示例:

  
""" 062_弹球动画.py
    海龟本身的图形有“arrow”, “turtle”, “circle”, “square”, “triangle”, “classic”. 这几种。
    分别是:箭头,海龟,圆形,方形,三角形,经典形状。
    本节课,我们把小海龟的形状改变为圆形,让它像一个弹球一样在屏幕里弹来弹去。
"""
from winsound import PlaySound,SND_ASYNC   #从winsound模块,导入播放声音的命令和一个用于异步播放的常量。
from turtle import *
from random import randint
from time import sleep

碰撞声 = 'sound.wav'
球=Turtle(visible=False)           #新建海龟,让它的可见属性为False,即一出世是不可见的。
                
球.shape("circle")                 #改变‘球’对象的形状为圆形                
球.showturtle()                    #显示出来
w,h=window_width(),window_height() #获取屏幕的宽度和高度,分别赋值给w,h变量。
x速度=randint(-20,20)              #x速度是每次移动的水平距离
y速度=randint(-20,20)              #y速度是每次移动的垂直距离

球.penup()
while True:
    球.goto(球.xcor()+x速度,球.ycor()+y速度)    #球.xcor()能获取当前球的水平坐标,球.ycor()能获取当前球的垂直坐标
    #经过上一句后,球的水平位置增加了 x速度  的距离,球的垂直位置增加了  y速度的距离
    
    
    if 球.xcor()>w/2 or 球.xcor()<-w/2: x速度=-x速度 PlaySound(碰撞声, SND_ASYNC) #异步播放音效,这就不必等到声音播放结束后才能运行下面的代码。 if 球.ycor()>h/2 or 球.ycor()<-h/2:
        y速度=-y速度
        PlaySound(碰撞声, SND_ASYNC) #异步播放音效

少儿python编程培训预订开始,单击链接享受优惠:https://item.taobao.com/item.htm?id=544061935133