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

news2024/11/16 11:36:42

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

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.vx
        self.rect.top += self.vy
        if self.rect.left <= 0 or self.rect.left >= 750:
            self.vx = -self.vx
            self.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 pygame
    pygame.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 = 100
    mm = 1
    while 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+1
        for 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-1
        for 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 = 1333
        pygame.display.update()
        pygame.time.Clock().tick(20)
    import pygame
    import random as r
    pygame.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 = 1
    while 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 = 1333
        pygame.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 = 0
            self.rect.left = 0
        def update(self,v):
            self.rect.top += v
            if self.rect.top >= 600:
                self.kill()
    class Block2(Block):
        def __init__(self):
            super().__init__()
            self.rect.left = 400-self.kd
    class 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 = 400
            self.rect.left = 150
        def update(self):
            k = pygame.key.get_pressed()
            if k[pygame.K_RIGHT]:
                self.rect.left += 5
            elif k[pygame.K_LEFT]:
                self.rect.left -= 5
            if self.rect.left >= 400:
                self.rect.left = 400
            if self.rect.left <= 0:
                self.rect.left = 0
    def 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 = 0
    v = 3
    while 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.001
            i += 1
            jg = randint(20,50)  #间隔

            if i % jg == 0:
                group.add(Block())
            group.draw(screen)
            group.update(v)
            jg2 = randint(20, 50)  # 间隔2
            if 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 = 0
            v = 3
        if pygame.mouse.get_pressed()[1] and js == '结束':
            break
        pygame.display.update()
        pygame.time.Clock().tick(60)

2.滑雪 

代码太长了:294行

 提供一个创意思路

3.制作困难的游戏

提供思路

1.风叶穿行

被我爆改成了火山穿行

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

 2.鱿鱼游戏系列

 

 

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1693253.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

三前奏:获取/ 读取/ 评估数据【数据分析】

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 前面的博客 数据分析—技术栈和开发环境搭建 …

Excel提取某一列的唯一值

点击【筛选】&#xff08;【高级筛选】&#xff09;&#xff0c;参数里&#xff1a; 列表区域&#xff1a;为需要选择唯一值的那一列复制到&#xff1a;生成唯一值的目标区域 据说新版本的excel有了unique()函数&#xff0c;可以很快捷的选择某一列的唯一值&#xff0c;但是博…

深度学习500问——Chapter09:图像分割(3)

文章目录 9.8 PSPNet 9.9 DeepLab系列 9.9.1 DeepLabv1 9.9.2 DeepLabv2 9.9.3 DeeoLabv3 9.9.4 DeepLabv3 9.8 PSPNet 场景解析对于无限制的开放词汇和不同场景来说是具有挑战性的。本文使用文中的 pyramid pooling module 实现基于不同区域的上下文集成&#xff0c;提出了PS…

Java进阶学习笔记14——模板方法设计模式

面试和看源码。 谈到设计模式&#xff1a; 1、解决了什么问题&#xff1f; 2、怎么写&#xff1f; 模板方法设计模式解决了什么问题&#xff1f; 解决方法中存在重复代码的问题。 写法&#xff1a; 1&#xff09;定义一个抽象类&#xff1a; 2&#xff09;在里面定义两个方…

阅读笔记——《ProFuzzBench: A Benchmark for Stateful Protocol Fuzzing》

【参考文献】Natella R, Pham V T. Profuzzbench: A benchmark for stateful protocol fuzzing[C]//Proceedings of the 30th ACM SIGSOFT international symposium on software testing and analysis. 2021: 662-665.【注】本文仅为作者个人学习笔记&#xff0c;如有冒犯&…

Java反射角度简单理解spring IOC容器

概述 Java反射&#xff08;Reflection&#xff09;是Java编程语言的一个特性&#xff0c;它允许在运行时对类、接口、字段和方法进行动态查询和操作。反射提供了一种在运行时查看和修改程序行为的能力&#xff0c;这通常用于实现一些高级功能&#xff0c;如框架(Spring)、ORM&…

【正点原子Linux连载】 第四十七章 音频驱动实验摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南

1&#xff09;实验平台&#xff1a;正点原子ATK-DLRK3568开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id731866264428 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/docs/boards/xiaoxitongban 第四十…

EEGLAB的相关使用

目录 概念 1.安装EEGLAB 2.文件实例演示 导入数据集处理 &#xff08;1&#xff09;导入数据集 &#xff08;2&#xff09;画图 &#xff08;3&#xff09; 修改并存储数据集 &#xff08;4&#xff09; 保存数据集 &#xff08;5&#xff09; 删除数据集 &#xff0…

零基础HTML教程(33)--HTML5表单新功能

文章目录 1. 背景2. HTML5新增表单元素2.1 number (数字输入框)2.2 email (邮箱输入框)2.3 url (链接输入框)2.4 tel (电话输入框)2.5 range (范围选择框)2.6 color (颜色选择框)2.7 datetime (日期时间选择框)2.8 search (搜索框) 3. placeholder &#xff08;占位属性&#x…

php TP8 阿里云短信服务SDKV 2.0

安装&#xff1a;composer require alibabacloud/dysmsapi-20170525 2.0.24 官方文档&#xff1a;短信服务_SDK中心-阿里云OpenAPI开发者门户 (aliyun.com) 特别注意&#xff1a;传入参数获得值形式 正确&#xff1a; $PhoneNumbers $postData[PhoneNumbers];$signName $po…

Vue集成Iframe

一、应用场景&#xff0c;为什么要集成Iframe&#xff1f; 1、庞大项目拆分后&#xff0c;便于管理和部署&#xff0c;用集成Iframe的方法合并 2、避免功能重复开发&#xff0c;共用模块可单独开发为一个项目&#xff0c;既可独立部署&#xff0c;也可集成到中台系统 二、集成…

【feature selection】特征选择学习笔记

文章目录 1. 什么是特征选择2. 特征选择与特征提取的区别3. 特征选择的方法3.1 Filtering过滤法3.2 Wrapper包装法3.3 Embedding嵌入法 4. 特征选择示例4.1 方差选择法示例4.2 递归特征消除法示例 1. 什么是特征选择 特征选择是特征工程的内容, 其目标是寻找最优特征子集。剔除…

暴雨“彩虹”行业大模型加速器平台全新发布

近日&#xff0c;在第七届数字中国建设峰会期间&#xff0c;暴雨信息全新发布“彩虹”行业大模型加速器平台&#xff0c;聚焦于为客户降本增效减负&#xff0c;将海量通用数据与行业特有数据融合&#xff0c;专注于流程工艺的智能化改进&#xff0c;因地制宜深挖业务需求&#…

图像上下文学习|多模态基础模型中的多镜头情境学习

【原文】众所周知&#xff0c;大型语言模型在小样本上下文学习&#xff08;ICL&#xff09;方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口&#xff0c;为探索其执行 ICL 的能力提供了机会&#xff0c;并提供了更多演示示例。在这项工作中&#xff0c;我…

【论文速读】GPT-1:Improving Language Understanding by Generative Pre-Training

摘要 自然语言理解包括广泛的不同的任务&#xff0c;如文本隐含、问题回答、语义相似性评估和文档分类。虽然大量的未标记文本语料库非常丰富&#xff0c;但用于学习这些特定任务的标记数据非常稀缺&#xff0c;这使得经过区别训练的模型要充分执行任务具有挑战性。我们证明&a…

mongoengine,一个非常实用的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - mongoengine。 Github地址&#xff1a;https://github.com/MongoEngine/mongoengine 在现代应用程序开发中&#xff0c;NoSQL数据库因其灵活性和高性能而广受欢迎。MongoD…

基于Android Studio图书管理,图书借阅系统

目录 项目介绍 图片展示 运行环境 获取方式 项目介绍 用户 书架&#xff1a;搜索书籍&#xff0c;查看书籍&#xff0c;借阅书籍&#xff0c;收藏书籍&#xff0c;借阅书籍必须在一个月之内还书&#xff1b; 我的&#xff1a;可以修改密码&#xff0c;退出登录&#xff…

M功能-支付平台(三)

target&#xff1a;离开柬埔寨倒计时-221day 前言 今天周六&#xff0c;但是在柬埔寨还是工作日&#xff0c;想着国内的朋友开始休周末就羡慕呀&#xff0c;记不清在这边过了多少个周六了&#xff0c;多到我已经习惯了。而且今天技术部还停电了&#xff0c;真的是热的受不了呀…

网络安全的重要组成部分:数据库审计

数据库审计&#xff08;简称DBAudit&#xff09;以安全事件为中心&#xff0c;以全面审计和精确审计为基础&#xff0c;实时记录网络上的数据库活动&#xff0c;对数据库操作进行细粒度审计的合规性管理&#xff0c;对数据库遭受到的风险行为进行实时告警。它通过对用户访问数据…

MCU复位电路

【单片机复位电路&#xff0c;巧妙的RC无处不在。】https://www.bilibili.com/video/BV1XW4y1571r?vd_source3cc3c07b09206097d0d8b0aefdf07958 左侧的RESET引脚正常情况下是低电平&#xff0c;是高电平复位&#xff1b;右侧的RESET引脚正常情况下是高电平&#xff0c;是低电…