我们可以用海龟画图来做弹球动画,在海龟模块中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
发表评论