sounds
This commit is contained in:
BIN
images/1.png
Normal file
BIN
images/1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
images/2.png
Normal file
BIN
images/2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
images/ball.png
Normal file
BIN
images/ball.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
images/bg.png
Normal file
BIN
images/bg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
12
index.html
Normal file
12
index.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header></header>
|
||||||
|
<main></main>
|
||||||
|
<footer></footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
97
main.py
Normal file
97
main.py
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
import pgzrun
|
||||||
|
|
||||||
|
music.play('bgm')
|
||||||
|
# 窗口参数
|
||||||
|
WIDTH = 1920
|
||||||
|
HEIGHT = 1080
|
||||||
|
TITLE = "Ping_Pang"
|
||||||
|
|
||||||
|
# 左右球拍
|
||||||
|
paddle1 = Actor("1")
|
||||||
|
paddle1.x = 80
|
||||||
|
paddle1.y = HEIGHT / 2
|
||||||
|
paddle_speed = 8
|
||||||
|
|
||||||
|
paddle2 = Actor("2")
|
||||||
|
paddle2.x = WIDTH - 80
|
||||||
|
paddle2.y = HEIGHT / 2
|
||||||
|
|
||||||
|
# 乒乓球
|
||||||
|
ball = Actor("ball")
|
||||||
|
ball.pos = (WIDTH//2, HEIGHT//2)
|
||||||
|
ball_speed_x = 7
|
||||||
|
ball_speed_y = 7
|
||||||
|
|
||||||
|
# 游戏状态: playing / gameover
|
||||||
|
game_state = "playing"
|
||||||
|
lose_text = ""
|
||||||
|
|
||||||
|
# 球拍上下限位
|
||||||
|
half_h = paddle1.height / 2
|
||||||
|
top = half_h
|
||||||
|
bottom = HEIGHT - half_h
|
||||||
|
|
||||||
|
bg = Actor("bg")
|
||||||
|
|
||||||
|
def draw():
|
||||||
|
screen.clear()
|
||||||
|
bg.draw()
|
||||||
|
paddle1.draw()
|
||||||
|
paddle2.draw()
|
||||||
|
ball.draw()
|
||||||
|
|
||||||
|
# 游戏结束提示
|
||||||
|
if game_state == "gameover":
|
||||||
|
screen.draw.text(lose_text, center=(WIDTH//2, HEIGHT//2), fontsize=80, color="red")
|
||||||
|
screen.draw.text("click space to restar", center=(WIDTH//2, HEIGHT//2+80), fontsize=40, color="white")
|
||||||
|
|
||||||
|
def update():
|
||||||
|
global ball_speed_x, ball_speed_y, game_state, lose_text
|
||||||
|
if game_state != "playing":
|
||||||
|
return
|
||||||
|
|
||||||
|
# 左拍 W S
|
||||||
|
if keyboard.w and paddle1.y>top:
|
||||||
|
paddle1.y -= paddle_speed
|
||||||
|
if keyboard.s and paddle1.y<bottom:
|
||||||
|
paddle1.y += paddle_speed
|
||||||
|
# 右拍 ↑ ↓
|
||||||
|
if keyboard.up and paddle2.y>top:
|
||||||
|
paddle2.y -= paddle_speed
|
||||||
|
if keyboard.down and paddle2.y<bottom:
|
||||||
|
paddle2.y += paddle_speed
|
||||||
|
|
||||||
|
# 小球移动
|
||||||
|
ball.x += ball_speed_x
|
||||||
|
ball.y += ball_speed_y
|
||||||
|
|
||||||
|
# 上下墙壁反弹
|
||||||
|
if ball.top <= 0 or ball.bottom >= HEIGHT:
|
||||||
|
ball_speed_y *= -1
|
||||||
|
sounds.bump.play()
|
||||||
|
|
||||||
|
# 球拍碰撞反弹
|
||||||
|
if ball.colliderect(paddle1) or ball.colliderect(paddle2):
|
||||||
|
ball_speed_x *= -1
|
||||||
|
sounds.bump.play()
|
||||||
|
|
||||||
|
# 出左右边界直接失败
|
||||||
|
if ball.left <= 0:
|
||||||
|
game_state = "gameover"
|
||||||
|
lose_text = "Himeko win!"
|
||||||
|
sounds.zhanbai.play()
|
||||||
|
if ball.right >= WIDTH:
|
||||||
|
game_state = "gameover"
|
||||||
|
lose_text = "Theresa Apocalypse win!"
|
||||||
|
sounds.zhanbai.play()
|
||||||
|
|
||||||
|
# 空格重新开局
|
||||||
|
def on_key_down(key):
|
||||||
|
global game_state, ball_speed_x, ball_speed_y
|
||||||
|
if key == keys.SPACE and game_state == "gameover":
|
||||||
|
game_state = "playing"
|
||||||
|
ball.pos = (WIDTH//2, HEIGHT//2)
|
||||||
|
ball_speed_x = 7
|
||||||
|
ball_speed_y = 7
|
||||||
|
|
||||||
|
pgzrun.go()
|
||||||
BIN
music/bgm.mp3
Normal file
BIN
music/bgm.mp3
Normal file
Binary file not shown.
BIN
sounds/bump.wav
Normal file
BIN
sounds/bump.wav
Normal file
Binary file not shown.
BIN
sounds/zhanbai.wav
Normal file
BIN
sounds/zhanbai.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user