1. 程式人生 > >python海龜畫圖模組製作的攔球小遊戲,誰說小海龜只會畫圖

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()