python海龟画图模块制作的拦球小游戏,谁说小海龟只会画图

""" 拦球小游戏.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'
w,h= 480,360
screen = Screen()
screen.delay(0)                     #屏幕延时为1豪秒
screen.bgcolor("black")
screen.setup(w,h)
screen.title("拦球小游戏_turtle海龟画图版_作者:李兴球")
#--------------------------------------------------------------
#封面设计
封面图 = "拦球小游戏封面设计.gif"
背景图 = "拦球小游戏背景.gif"

screen.bgpic(封面图)
screen.update()
sleep(2)
screen.bgpic(背景图)

#--------------------------------------------------------------

拦板  = Turtle(shape = 'square')
拦板.shapesize(0.5,5)               #长方形的长度为100x10像素
拦板.penup()
拦板.speed(0)
拦板.color("white","white") 
拦板.sety(50-h/2)
def 向右移():
    拦板.setx(拦板.xcor() + 10)
def 向左移():
    拦板.setx(拦板.xcor() - 10)
screen.onkeypress(向右移,"Right")
screen.onkeypress(向左移,"Left")
screen.listen()
#--------------------------------------------------------------
弹球=Turtle(shape='circle')           #新建海龟,形状为圆形 
弹球.speed(0)                         #速度为最快.
弹球.penup()
弹球.color("yellow","yellow")
x速度 = randint(2,3)              #设置初始水平速度
y速度 = randint(2,3)              #设置初始垂直速度

弹球丢失 =  False
while not 弹球丢失:
     
    x = 弹球.xcor() + x速度                #设置弹球在水平方向移动 x速度
    y= 弹球.ycor() + y速度                 #设置弹球在垂直方向移动 y速度
    弹球.goto(x,y)
      

    if  x>w/2 or x <-w/2:
        x速度  = - x速度
        PlaySound(碰撞声, SND_ASYNC)    #异步播放音效,这就不必等到声音播放结束后才能运行下面的代码。
        
    if  y>h/2 :
        y速度 = - y速度
        PlaySound(碰撞声, SND_ASYNC)
    if  y<-h/2:弹球丢失 = True
        

    拦板左x = 拦板.xcor() - 50
    拦板右x = 拦板.xcor() + 50
    拦板上y = 拦板.ycor() + 5
    拦板下y = 拦板.ycor() - 5

    if x< 拦板右x and x >拦板左x:
        if y < 拦板上y and y > 拦板下y :
            y速度 = - y速度
            PlaySound(碰撞声, SND_ASYNC)
    
    sleep(0.01)
    
screen.bgpic("拦球小游戏弹球丢了.gif")
screen.mainloop()
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李兴球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值