用Python Pygame做的一些好玩的小游戏

2024-05-26 08:04
文章标签 python 小游戏 pygame 好玩

本文主要是介绍用Python Pygame做的一些好玩的小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有些游戏的代码比较长就不公布了

1.简简单单

1.疯狂的鸡哥

 你要准备的图片:

命名为:ji.png 

 代码:

import pygame
import random as r
pygame.init()
pygame.display.set_caption('aaa')
pm = pygame.display.set_mode((800,600))class Ls(pygame.sprite.Sprite):def __init__(self,pos):#pos 鼠标点击的位置super().__init__()self.image = pygame.image.load('ji.png')self.dx = r.randint(20,50)self.dx2 = r.randint(20, 50)self.image = pygame.transform.scale(self.image,(self.dx,self.dx2))self.rect = self.image.get_rect()self.rect.top = pos[0]self.rect.left =pos[1]self.vx = r.randint(-3,11)self.vy = r.randint(-2,12)# update方法def update(self):self.rect.left += self.vxself.rect.top += self.vyif self.rect.left <= 0 or self.rect.left >= 750:self.vx = -self.vxself.image = pygame.transform.scale(self.image,(self.dx,self.dx2))if self.rect.top <= 0 or self.rect.top >= 550:self.vy = -self.vy
group = pygame.sprite.Group()
while True:pm.fill((120,205,255))zt = pygame.mouse.get_pressed()zy = pygame.font.Font('叶根友刀锋黑草.ttf',50).render('左键增加滚轮碰到哪个哪个删除 ',True,(0,0,0))pm.blit(zy,(0,0))if zt[0]:group.add(Ls([100,200]))if zt[1]:wz = pygame.mouse.get_pos()for i in group:if i.rect.collidepoint(wz):     #给定点是否在给定矩形范围中,前面的是给定矩形,括号中的是点.i.kill()group.draw(pm)group.update()for event in pygame.event.get():if event.type == pygame.QUIT:exit()pygame.display.update()pygame.time.Clock().tick(20)

 2.智慧的随机分数系统

 

while True:import pygamepygame.init()pygame.display.set_caption('aaa')screen = pygame.display.set_mode((800,600))jts = pygame.image.load('照片\jts.png')jtx = pygame.image.load('照片\jtx.png')qd = pygame.image.load('照片\qd.png')a = 100mm = 1while mm == 1:screen.fill((255,255,255))ju = pygame.font.Font('字体\叶根友刀锋黑草.ttf', 100)s = ju.render(str(a), True, (1, 2, 200))ju2 = pygame.font.Font('字体\叶根友刀锋黑草.ttf', 100)s2 = ju2.render('满分:', True, (1, 2, 200))for event in pygame.event.get():if event.type == pygame.QUIT:exit()screen.blit(s,(300,300))screen.blit(qd, (620, 10))screen.blit(s2,(100,100))screen.blit(jts,(500,200))screen.blit(jtx,(500,400))x, y = pygame.mouse.get_pos()for i in range(111):for ii in range(101):if x == 500+i and y == 200 + ii and pygame.mouse.get_pressed()[0] == True:a = a+1for i in range(97):for ii in range(117):if x == 500+i and y == 400 + ii and pygame.mouse.get_pressed()[0] == True:a = a-1for i in range(154):for ii in range(79):if x == 620+i and y == 10 + ii and pygame.mouse.get_pressed()[0] == True:mm = 1333pygame.display.update()pygame.time.Clock().tick(20)import pygameimport random as rpygame.init()pygame.display.set_caption('aaa')screen = pygame.display.set_mode((800,600))qd = pygame.image.load('照片\qd.png')b = str(r.randint(0,a)) + '分'mm = 1while mm == 1:screen.fill((255,255,255))ju = pygame.font.Font('字体\叶根友刀锋黑草.ttf', 50)s = ju.render(b, True, (1, 2, 200))ju2 = pygame.font.Font('字体\叶根友刀锋黑草.ttf', 50)s2 = ju2.render('我预测你这次考试会考:', True, (1, 2, 200))for event in pygame.event.get():if event.type == pygame.QUIT:exit()screen.blit(s,(100,200))screen.blit(qd, (620, 500))screen.blit(s2,(100,100))x, y = pygame.mouse.get_pos()for i in range(154):for ii in range(79):if x == 620+i and y == 500 + ii and pygame.mouse.get_pressed()[0] == True:print(1)mm = 1333pygame.display.update()pygame.time.Clock().tick(20)

要准备的图片:

jts.png  #向上的箭头
jtx.png   #向下的箭头
qd.png  #确定

2.平平淡淡也挺好玩

1.极速赛车

准备一个汽车图片叫做:

qc.png

代码:

import pygame,sys
from random import*
while True:js = ''class Block(pygame.sprite.Sprite):def __init__(self):super().__init__()self.kd = randint(90,180)self.image = pygame.Surface((self.kd,20))self.image.fill((255,255,255))self.rect = self.image.get_rect()self.rect.top = 0self.rect.left = 0def update(self,v):self.rect.top += vif self.rect.top >= 600:self.kill()class Block2(Block):def __init__(self):super().__init__()self.rect.left = 400-self.kdclass Car(pygame.sprite.Sprite):def __init__(self):super().__init__()self.image = pygame.image.load('qc.png')self.image = pygame.transform.scale(self.image, (20, 50))self.rect = self.image.get_rect()self.rect.top = 400self.rect.left = 150def update(self):k = pygame.key.get_pressed()if k[pygame.K_RIGHT]:self.rect.left += 5elif k[pygame.K_LEFT]:self.rect.left -= 5if self.rect.left >= 400:self.rect.left = 400if self.rect.left <= 0:self.rect.left = 0def zi(dx,x,y):xz = pygame.font.Font('叶根友刀锋黑草.ttf', 50).render(str(dx), True, (0, 0, 0))screen.blit(xz,(x,y))pygame.init()screen = pygame.display.set_mode((400,600))pygame.display.set_caption("qc")group = pygame.sprite.Group()group2 = pygame.sprite.Group()group3 = pygame.sprite.Group()group3.add(Car())i = 0v = 3while True:screen.fill((0,0,255))for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()t = pygame.time.get_ticks()if js == '':miao = str(t / 1000)miao2 = int(miao[0])zi('速度:' + str(int(v)), 0, 0)if miao2 == 1 and miao2 != 0:v += 0.001i += 1jg = randint(20,50)  #间隔if i % jg == 0:group.add(Block())group.draw(screen)group.update(v)jg2 = randint(20, 50)  # 间隔2if i % jg2 == 0:group2.add(Block2())group2.draw(screen)group2.update(v)group3.draw(screen)group3.update()else:zi('Game Over',0,100)zi('按滚轮回去',50,200)#碰撞a = pygame.sprite.groupcollide(group,group3,False,False)b = pygame.sprite.groupcollide(group2, group3, False, False)if a or b:js = '结束'i = 0v = 3if pygame.mouse.get_pressed()[1] and js == '结束':breakpygame.display.update()pygame.time.Clock().tick(60)

2.滑雪 

代码太长了:294行

 提供一个创意思路

3.制作困难的游戏

提供思路

1.风叶穿行

被我爆改成了火山穿行

网站链接(B站的灵感):风叶穿行 (bilibili.com)

 2.鱿鱼游戏系列

 

 

4.我还有很多有意思的pygame游戏 

 

这篇关于用Python Pygame做的一些好玩的小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1003893

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At