python弹球游戏 第三章、计算分数、显示分数、更新难度、游戏结束判断

本文介绍了Python使用pygame库开发弹球游戏的第三阶段,包括实现计分系统、显示分数、调整游戏难度以及游戏结束条件。通过碰撞检测增加玩家分数,用进度条展示分数,随着游戏进程提高小球速度、木板移动速度和单次得分。游戏结束时,当某玩家分数达到阈值。此外,提出了优化建议,如增加小球速度的随机性和与碰撞位置相关的变化,以提升游戏挑战性。
摘要由CSDN通过智能技术生成

设计概要

前两章我们实现了界面、球、木板的创建,并使得球可以相对边缘弹来弹去,木板可以通过ws,上下键来移动,构成了游戏的基本框架。接下来需要添加函数来实现游戏的可玩性

1、左右板子玩家的分数。通过检测小球与板子的碰撞来增加玩家的分数,因此需要调节的量:

                1)对象板子应该具有分数属性

                2)对象板子应该具有单次分数增加量的属性,以及难度相关的属性

                3)对象小球的碰壁检测应该修改,分为一般碰壁和碰撞板子的两种情况

                4)对象小球应该具有游戏难度相关的属性

2、左右玩家分数的显示。进度条显示是街机类游戏常用技巧,这里也采用。因此需要:

                1)有一个画分数进度条的函数

                2)显示分数数字的函数

3、随着游戏进程难度的增加。难度增加的点应该是球碰撞木板之后,分别有三个需要改变的值:

                1)小球运动速度增加

                2)木板移动速度增加(灵敏度)

                3)游戏单次得分增加(越到后面一次接球得分越多)

4、游戏结束判断。左右有一个人的游戏得分达到某个阈值就结束

五个模块的代码

game_main.py

import pygame
from game_settings import Settings
from board import Board
from ball import Ball
import game_function as gf
pygame.init()#初始化
settings=Settings()#获取设置参数
screen=pygame.display.set_mode((settings.screen_width,settings.screen_height))#创建一个界面,限制长宽
screen.fill(settings.screen_color)#界面上色
pygame.display.set_caption(settings.screen_text)#界面上文字
bd1=Board(screen,settings,'left')#定义左板,定义只需要一次
bd2=Board(screen,settings,'right')#定义右板
ball=Ball(screen,settings)#定义球
while True:
    gf.update_screen(settings,screen,ball,bd1,bd2)

这个模块和第二章一样,无需任何改变


game_settings.py

class Settings():
    def __init__(self):
        self.setting_screen()
        self.setting_board()
        self.setting_ball()
        self.setting_score()
        self.game_active=False
        
    
    def setting_screen(self):#设置界面
        self.screen_color=[0,250,250]
        self.screen_width=420
        self.screen_height=600
        self.screen_text='弹球游戏'
    
    def setting_board(self):#设置板子
        self.board_height=100
        self.board_width=5
        self.board_colorl=[0,250,0]
        self.board_colorr=[0,0,250]
        self.board_location=int(self.screen_height/2-self.board_height/2)
        self.board_speed=0.4#只有一个维度运动
        self.board_increase_speed=1.
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值