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