当前位置: 首页 > news >正文

用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.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游戏 

 

相关文章:

  • 转运机器人负载最高可达 1000kg,重复精度高达±5mm
  • 新人攻略:避开这3大坑,让老员工主动带你飞!
  • 常用损失函数学习
  • 521源码-免费代码基础学习-PHP如何运用变量教程
  • 线程生命周期
  • 音频剪辑技巧:音频压缩怎么不损失质量?分享6个小妙招
  • mysql内存结构
  • UTF-8、GBK等格式互相转换 【Windows/Linux 通用】
  • 英语学习笔记25——Mrs. Smith‘s kitchen
  • 探索大模型技术:AI的未来与挑战
  • Jmeter例题分析-作业一
  • Docker部署Minio小记
  • C:技术面试总结
  • C# 实现腾讯云 IM 常用 REST API 之会话管理
  • 2024年华为OD机试真题-停车场车辆统计-C++-OD统一考试(C卷D卷)
  • 全栈式数据统计:SqlAlchemy怎样连接MsSql Server获取视图列表
  • 音视频开发5 补充 - Nginx搭建rtmp流媒体服务器,目的是让ffmpeg 可以直播推流
  • 编程实战:类C语法的编译型脚本解释器(三)插件(自定义函数)接口
  • 分享10个国内可以使用的GPT中文网站
  • Spring中的三级缓存和循环依赖
  • 习近平对辽宁辽阳市白塔区一饭店火灾事故作出重要指示
  • 外交部官方公众号发布视频:不跪!
  • “杭州六小龙”的招聘迷局
  • 第五届全国医院人文管理路演在昆山举办:患者体验才是温度计
  • 女乘客遭顺风车甩客、深夜丢高速服务区,滴滴霸道回应:赔五百元
  • 乌克兰否认俄收复库尔斯克州,称战斗仍在持续