接球小游戏

import pygame as pg
import sys
from random import randint
import time
pg.init()
game_window = pg.display.set_mode((600, 500))
# bk=pg.display.set_mode(size=(400,600),flags=0,depth=0)
# game_window=pg.image.load("back1.jpg")
# game_window=pg.transform.smoothscale(game_window ,(400,600))
# pg.display.set_caption("接弹珠游戏")
score = 0
font = pg.font.Font(None, 60)
window_color = (2, 120, 110)  # 设置窗口颜色——黑色
ball_color = (255,20, 120)  # 设置球的颜色-——绿色
rect_color = (255,130, 0)  # 设置挡板颜色——红色
ball_color1=(0,0,0)
move_x = 3
move_y = 3
move_y1=2
ball_x = randint(20, 580) #球的初始位置随机
ball_y = randint(20, 480)
points = 1
count = 0
while True:
    fg=randint(1,5)
    pg.mouse.set_visible(False)
    game_window.fill(window_color)
    for event in pg.event.get():
        if event.type == pg.QUIT:
            sys.exit()
    # bk.blit(game_window,(0,0))

    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      
        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秒走一个像素

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值