介绍模块

本游戏使用的是由Pycharm中的pygame模块来实现的,也可以在python中运行。通过Pygame制作一个接球游戏,来考验你的反应力。

最小开发框架

详情请看此文章:Pygame游戏模块介绍二:最小开发框架代码

Pygame和sys模块

import pygame # 制作游戏时要使用的模块

import sys # python的标准库,对内部各功能模块进行初始化创建,系统模块

random模块

需要在屏幕上随机生成气球的位置

from random import randint

详情请看此文章:Pygame游戏模块介绍一:random模块简介

相关功能

窗口尺寸改变

可以调节游戏屏幕的大小

self.setWindowTitle("疯狂打气球")
self.setGeometry(100, 100, 800, 600)

气球创建

创建气球图标

# 创建一个标签控件balloon,设置文本为"🎈",样式为字号36px,并设置其位置和大小。
# 然后将控件的mousePressEvent事件绑定到hit_balloon方法
self.balloon = QLabel(self)
self.balloon.setText("🎈")
self.balloon.setStyleSheet("font-size: 36px;")
self.balloon.setGeometry(400, 300, 50, 50)
self.balloon.mousePressEvent = self.hit_balloon

定时器

用于固定刷新屏幕上气球的位置

self.timer = QTimer()
self.timer.timeout.connect(self.update_game)
self.timer.start(1100)

鼠标控制

鼠标点击气球,在界面进行更新

def hit_balloon(self, event):
    """
    在点击气球时更新得分,并调用update_score方法
    :param event:
    :return:
    """
    self.score += 1
    self.update_score()

界面内容显示

当每次点击气球时,更新分数,并实时递减设置的时间

def update_score(self):
    """
    更新得分标签的文本
    :return:
    """
    self.label_score.setText(f"得分: {self.score}")

def update_time(self):
    """
    更新剩余时间标签的文本
    :return:
    """
    self.label_time.setText(f"剩余时间: {self.time_remaining} 秒")

图片界面

图1 界面1

图2 界面2 

疯狂打气球

扩展可添加功能

  1. 在界面设置时间和
  2. 在界面设置气球刷新时间
  3. 添加背景音乐
  4. 更改界面控件

源码获取

GitHub 疯狂打气球

 欢迎关注我的公众号:@AI算法与电子竞赛    

硬性的标准其实限制不了无限可能的我们,所以啊!少年们加油吧!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐