這是我用python編的一個小遊戲,需要下載simpleaudio庫,喜歡的可以玩。
以下是源代碼:
import turtle as t
import simpleaudio as sa
yeah=sa.WaveObject.from_wave_file(‘bounce.wav’)
#創建背景
game = t.Screen()
game.title(‘雙人乒乓球’)
game.bgcolor(‘black’)
game.setup(800,600)
#創建球拍
racket1 = t.Turtle()
racket1.ht()#隱藏
racket1.up()
racket1.speed()
racket1.color(‘white’)
racket1.shape(‘square’)
racket1.shapesize(5,1)
racket1.goto(-350,0)
racket1.st()#顯示
#創建2號球拍
racket2 = t.Turtle()
racket2.ht()#隱藏
racket2.up()
racket2.speed()
racket2.color(‘yellow’)
racket2.shape(‘square’)
racket2.shapesize(5,1)
racket2.goto(350,0)
racket2.st()#顯示
#添加乒乓球
table = t.Turtle()
table.up()
table.speed()
table.color(‘white’)
table.shape(‘circle’)
table.st()
table.dx = 5
table.dy = 5
player_speed = 50
racket1_score=0
racket2_score=0
#顯示分數
pen=t.Turtle()
pen.ht()
pen.up()
pen.color(‘white’)
pen.goto(-30,250)
score_text=‘玩家A的分數:{} 玩家B的分數:{}’.format(racket1_score,racket2_score)
pen.write(score_text,align=‘center’,font=(‘Arial’,20))
def racket1_up():
y=racket1.ycor()
y=y+player_speed
racket1.sety(y)
def racket1_down():
y=racket1.ycor()
y=y-player_speed
racket1.sety(y)
def racket2_up():
y=racket2.ycor()
y=y+player_speed
racket2.sety(y)
def racket2_down():
y=racket2.ycor()
y=y-player_speed
racket2.sety(y)
game.listen()
game.onkey(racket1_up,‘w’)
game.onkey(racket1_down,‘s’)
game.onkey(racket2_up,‘Up’)
game.onkey(racket2_down,‘Down’)
#遊戲主循環
while True:
table.setx(table.xcor()+table.dx)
table.sety(table.ycor()+table.dy)
if (table.ycor()>290 or (table.ycor()<-290)):
table.dy*=-1
#球拍接球
y_up=racket2.ycor()+50
y_down=racket2.ycor()-50
if (table.ycor()<y_up and table.ycor()>y_down and table.xcor()>340):
table.dx*=-1
table.setx(339)
yeah.play()
if (table.ycor()<racket1.ycor()+50 and table.ycor()>racket1.ycor()-50 and table.xcor()<-340):
table.dx*=-1
table.setx(-339)
yeah.play()
#判斷球出界
if (table.xcor()>380):
table.goto(0,0)
racket1_score+=1
pen.clear()
score_text='玩家A的分數:{} 玩家B的分數:{}'.format(racket1_score,racket2_score)
pen.write(score_text,align='center',font=('Arial',20))
if(table.xcor()<-380):
table.goto(0,0)
racket2_score+=1
pen.clear()
score_text='玩家A的分數:{} 玩家B的分數:{}'.format(racket1_score,racket2_score)
pen.write(score_text,align='center',font=('Arial',20))
game.mainloop()