基于Python实现牛牛套圈小游戏的示例代码
作者:木木子学python 时间:2022-04-04 03:50:23
前言
“幸运牛牛套圈圈”套住欢乐,圈住幸福,等你来挑战!
哈喽,大家上午好,我是你们的栗子同学,今天来给大家带来一款新游戏,是不是很久没给大家更新游戏板块了呀~期不期待呢? 哈哈哈。——忆童年
没有网络也没有智能手机的年代,现在回想起来,那么多无聊的时间,我们是怎么打发的呢?
每个“大孩子”应该都有自己的游戏回忆录,见证了那个时候的天马行空。
那个时候的我们边玩着古董游戏机,边哼唱超级玛丽和魂斗罗的配乐,偶尔逛逛公园里摆满玩具物件的套圈摊子,偷偷在课间翻看风靡儿时的连环画……
童年匆匆,没有任何仪式与记载便从我们的年华里溜走,幸好它还留下了一些天真烂漫的日子供我们怀念。今天来给大家做了一个新款的斗牛士的套圈小游戏,希望大家喜欢哦~
当然,嫌弃牛牛的话可以换成其他的可爱的小宠物哦!
一、环境配置
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)套中胜利
来源:https://juejin.cn/post/7198715401442197564
标签:Python,套圈,游戏
0
投稿
猜你喜欢
基于PyQT5制作一个课堂点名系统
2023-10-08 20:52:13
HTML邮件的又一点思考
2009-05-06 13:33:00
最新google pr查询接口
2012-03-12 20:00:39
JS弹出可拖拽可关闭的div层完整实例
2024-04-19 09:50:56
用python打印菱形的实操方法和代码
2023-03-18 19:17:18
asp内置对象Application详解
2007-09-19 12:08:00
Python进程间通信Queue实例解析
2023-11-06 13:50:08
oracle数据库下统计专营店的男女数量的语句
2012-07-11 16:01:17
JSP读取文件实例
2023-07-10 05:16:20
vuex state及mapState的基础用法详解
2024-05-13 09:07:23
python排序算法之希尔排序
2023-03-03 13:50:48
低效的键盘和高效的登录框
2007-08-22 09:17:00
MS Server和Oracle中对NULL处理的一些细节差异
2009-06-10 17:35:00
Oracle开发之分析函数简介Over用法
2024-01-17 08:40:45
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2022-03-31 17:26:15
在Python中表示一个对象的方法
2023-12-25 20:04:22
Python多线程正确用法实例解析
2022-03-22 14:31:58
SQL Server数据库的高性能优化经验总结
2024-01-18 17:04:55
Python实现统计文本文件字数的方法
2023-05-24 11:46:04
Python中变量的输入输出实例代码详解
2022-11-26 00:47:56