基于Python实现牛牛套圈小游戏的示例代码
木木子学python 人气:0前言
“幸运牛牛套圈圈”套住欢乐,圈住幸福,等你来挑战!
哈喽,大家上午好,我是你们的栗子同学,今天来给大家带来一款新游戏,是不是很久没给大家更新游戏板块了呀~期不期待呢? 哈哈哈。——忆童年
没有网络也没有智能手机的年代,现在回想起来,那么多无聊的时间,我们是怎么打发的呢?
每个“大孩子”应该都有自己的游戏回忆录,见证了那个时候的天马行空。
那个时候的我们边玩着古董游戏机,边哼唱超级玛丽和魂斗罗的配乐,偶尔逛逛公园里摆满玩具物件的套圈摊子,偷偷在课间翻看风靡儿时的连环画……
童年匆匆,没有任何仪式与记载便从我们的年华里溜走,幸好它还留下了一些天真烂漫的日子供我们怀念。今天来给大家做了一个新款的斗牛士的套圈小游戏,希望大家喜欢哦~
当然,嫌弃牛牛的话可以换成其他的可爱的小宠物哦!
一、环境配置
1)运行环境
Python 3 、Pycharm、Pygame。其他内置模块,安装好python环境就可以了。
(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)套中胜利
加载全部内容