Python接弹珠小游戏源代码
日期: 2020-05-25 分类: 个人收藏 368次阅读
接弹珠游戏,弹珠碰到上方及左右两侧的墙壁进行反弹,反弹,可以理解成弹珠的坐标值变成相反数。当弹珠的圆心坐标值到达上方墙壁时,只需要让坐标变成负数,弹珠就可以向相反的方向移动了。
import pygame as pg
import sys
from random import randint
import time
pg.init()
game_window = pg.display.set_mode((600, 500))
pg.display.set_caption("接弹珠游戏")
score = 0
font = pg.font.Font(None, 60)
window_color = (0, 0, 0) # 设置窗口颜色——黑色
ball_color = (0, 255, 0) # 设置球的颜色-——绿色
rect_color = (255, 0, 0) # 设置挡板颜色——红色
move_x = 1
move_y = 1
ball_x = randint(20, 580) #球的初始位置随机
ball_y = randint(20, 480)
points = 1
count = 0
while True:
game_window.fill(window_color)
for event in pg.event.get():
if event.type == pg.QUIT:
sys.exit()
mouse_x, mouse_y = pg.mouse.get_pos()
pg.draw.circle(game_window, ball_color, (ball_x, ball_y), 20) #在窗口内画球
pg.draw.rect(game_window, rect_color, (mouse_x, 490, 100, 10)) #在窗口内画矩形接拍
ball_x += move_x
ball_y += move_y
my_score = font.render(str(score), False, (255, 255, 0)) #设置分数显示,黄色
game_window.blit(my_score, (500, 30))
ball_x += move_x
ball_y += move_y
if ball_x <= 20 or ball_x >= 580: #左右两侧墙壁
move_x = -move_x #碰到左右两侧墙壁时,X坐标变为反方向
if ball_y <= 20: #碰到上方墙壁时,Y坐标改变方向
move_y = -move_y
elif ball_x >(mouse_x - 20) and ball_x <(mouse_x + 120) and ball_y >= 470:
move_y = -move_y #下方接到球,改变Y坐标方向,并加分
score += points
count += 1 #接球次数加1
if count == 5:
count = 0
points += points #分数翻倍
if move_x > 0:
move_x += 1
else:
move_x -= 1
move_y -= 1
elif ball_y > 480 and (ball_x <= mouse_x - 20 or ball_x >= mouse_x + 120):
ball_y = 490 #没有接到球,退出程序
break
pg.display.update() #更新窗口,保证窗口始终打开
time.sleep(0.03) #球运动的速度0.03秒走一个像素
更多Python源代码,请微信关注:Python代码大全,
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐