Python实现怀旧风斗牛士套圈小游戏完整教程

程一诺
程一诺
发布时间:2026-10-12 | 1人浏览过
原创

本文详细介绍如何使用Python和Pygame库开发一款怀旧风格的斗牛士套圈小游戏。内容涵盖环境配置、第三方库安装及素材准备,提供完整的主程序代码示例,并展示游戏运行效果,包括界面交互、移动控制及胜负判定逻辑,适合Python初学者进行实战练习。

前言

“幸运牛牛套圈圈”:套住欢乐,圈住幸福,等你来挑战!

大家好,上午好!我是栗子同学。今天为大家带来一款全新游戏,是不是很久没更新游戏板块了?大家期待吗?哈哈。——重温童年时光

在没有网络和智能手机的年代,回想起来,那些漫长的无聊时间我们是如何度过的呢?

每个“大孩子”心中都有一份属于自己的游戏回忆录,记录着那个时代天马行空的想象。

那时的我们,一边玩着老旧的游戏机,一边哼着《超级玛丽》和《魂斗罗》的配乐;偶尔逛逛公园里摆满玩具的套圈摊位,课间偷偷翻阅风靡一时的连环画……

童年匆匆流逝,没有仪式也没有记载,便从我们的年华中溜走。幸好,它留下了一些天真烂漫的日子供我们怀念。今天,我为大家制作了一款新款斗牛士套圈小游戏,希望大家喜欢!

当然,如果你不喜欢斗牛士的形象,也可以替换成其他可爱的小宠物哦!

一、环境配置

1)运行环境

需要Python 3、PyCharm以及Pygame库。其他内置模块在安装好Python环境后即可使用。

(Windows系统中,按Win+R键输入cmd打开命令行,然后输入安装命令:pip install 模块名。如果安装速度较慢,可以切换国内镜像源以提高下载速度。)

2)第三方库安装

使用命令:pip install + 模块名,或者指定镜像源安装:pip install -i pypi.douban.com/simple/ + 模块名。

3)素材内容

二、代码展示

1)主程序

import pygame,sys
from pygame.locals import *

pygame.init()

canvas = pygame.display.set_mode((1000,700))

pygame.display.set_caption("无敌斗牛士套圈小游戏")

bg = pygame.image.load("images/bg.png")
bull_img = pygame.image.load("images/bull.png")
rope_img = pygame.image.load("images/rope.png")
win = pygame.image.load("images/win.png")
lose = pygame.image.load("images/lose.png")
bow = pygame.image.load("images/bow.png")

print("测试Test")

print("[测试Test:1]碰撞检测:False")

state = "RUNNING"
print("[测试Test:4]state更改为RUNNING")

on_off = 0

def handleEvent():
    global on_off,state
    for event in pygame.event.get():
        if event.type == QUIT or event.type == KEYDOWN and event.key == K_ESCAPE:
            print("[测试Test:2]结束测试Test")
            print("结束测试Test")
            if state == "RUNNING":
                raise UserWarning("[Error:1]中途退出")
            pygame.quit()
            sys.exit()
        if event.tye == KEYDOWN and event.key == K_SPACE:
            on_off = 1
            print("[测试Test:3]on_off更改为1")

class Rope():
    def __init__(self,x,y,width,height,img):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.img = img
        self.speedY = -1
    def paint(self):
        canvas.blit(self.img,(self.x,self.y))
    def move(self):
        global on_off
        if on_off == 1:
            self.y += self.speedY * 10
            if self.y < 400:
                self.speedY = 1
            elif self.y > 600:
                self.speedY = -1
                on_off = 0
                print("[测试Test:3]on_off更改为0")
    def hit(self,b):
        return self.y == b.y and self.x + 40 > b.x and self.x < b.x + 40
        
class Bull():
    def __init__(self,x,y,width,height,img):
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.img = img
    def paint(self):
        canvas.blit(self.img,(self.x,self.y))
    def move(self):
        self.x = self.x + 10
        if self.x > 1000:
            self.x = 0
            
def comPaint():
    canvas.blit(bg,(0,0))
    bull.paint()
    rope.paint()

def comMove():
    bull.move()
    rope.move()

def checkHit():
    global on_off,state
    if rope.hit(bull):
        print("[测试Test:1]碰撞检测:True")
        on_off = 0
        state = "SUCCESS"
        print("[测试Test:4]state更改为SUCCESS")
        print("[测试Test:5]停止运动")

rope = Rope(385,600,39,52,rope_img)
print("[测试Test:6]rope创建")
bull = Bull(0,400,192,141,bull_img)
print("[测试Test:6]bull创建")
while True:
    if state == "RUNNING":
        comPaint()
        comMove()
        checkHit()
    elif state == "SUCCESS":
        comPaint()
        canvas.blit(win,(0,0))
    handleEvent()

    pygame.display.update()

    pygame.time.delay(10)

三、效果展示

这款游戏逻辑简单,效果并未做得过于复杂:主要包含斗牛士的动态效果,通过空格键控制套圈移动,套中目标即可判定游戏胜利并结束。

1)界面截图

2)套空情况

3)套中胜利状态

到此,这篇关于基于Python实现牛牛套圈小游戏的示例代码文章就介绍到这里。更多相关Python牛牛套圈游戏内容,请搜索本站以前的文章或继续浏览下面的相关文章。希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表