• 【pygame游戏】用Python实现一个蔡徐坤大战篮球的小游戏,可还行?【附源码】


    序言

    话说在前面,我不是小黑子~

    我是超级大黑子😏

    表弟大周末的跑来我家,没事干天天骚扰我,搞得我都不能跟小姐姐好好聊天了,于是为了打发表弟,我决定用Python做一个小游戏来消耗一下他的精力,我思来想去,决定把他变成小黑子,于是做了一个坤坤打篮球的游戏,没想到他还挺爱玩的~

    终于解放了,于是我把游戏写下来,也给大家分享一下吧~


    好吧,其实并不是这样的游戏,往下慢慢看吧。

    准备工作

    开发环境

    Python版本:3.7.8

    相关模块:
    requests模块;
    tqdm模块;
    pyfreeproxy模块;
    pyecharts模块;
    以及一些python自带的模块。

    效果预览

    开始界面

    游戏规则

    wasd 控制人物的移动,空格启动律师函炸毁全部篮球。

    结束游戏

    兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
    那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!直接在文末名片自取即可!

    代码实现

    导入模块

    import pygame
    import sys
    import traceback
    import os
    import CXK
    import enemy
    import bullet
    import supply
    from pygame.locals import *
    from random import *
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    游戏主界面

    #游戏主界面
    def ui():
        #循环播放背景音乐
        pygame.mixer.music.play(-1)
    
        #初始化界面按键图片并获取图片的矩形位置
        start_game_image = pygame.image.load("images/start_game.png").convert_alpha()
        start_game_image_rect = start_game_image.get_rect()
        game_rules_image = pygame.image.load("images/game_rules.png").convert_alpha()
        game_rules_image_rect = game_rules_image.get_rect()
        game_quit_image = pygame.image.load("images/game_quit.png").convert_alpha()
        game_quit_image_rect = game_quit_image.get_rect()
    
        #初始化游戏规则图片并获取图片的矩形位置
        rules_image = pygame.image.load("images/游戏玩法.png").convert_alpha()
        back_image = pygame.image.load("images/back.png").convert_alpha()
        back_image_rect =  back_image.get_rect()
    
        #标志是否在主界面
        is_ui = True
    
        #帧率
        clock = pygame.time.Clock()
    
        #主界面循环
        while True:
            #获取事件信息
            for event in pygame.event.get():
                #如果点击右上角退出
                if event.type == QUIT:
                    #退出程序
                    pygame.quit()
                    sys.exit()
    
            #如果是主界面
            if is_ui:
                #绘制背景
                screen.blit(background,(0,0))
    
                #更改主界面按键图片的矩形位置并绘制主界面按键
                start_game_image_rect.left,start_game_image_rect.top = (width - start_game_image_rect.width)//2,height - 500
                screen.blit(start_game_image,start_game_image_rect)
    
                game_rules_image_rect = game_rules_image.get_rect()
                game_rules_image_rect.left,game_rules_image_rect.top = (width - game_rules_image_rect.width)//2,start_game_image_rect.bottom+50
                screen.blit(game_rules_image,game_rules_image_rect)
    
                game_quit_image_rect.left,game_quit_image_rect.top = (width - game_quit_image_rect.width)//2, game_rules_image_rect.bottom+50
                screen.blit(game_quit_image,game_quit_image_rect)
    
                #检测用户的鼠标操作
                #如果用户按下鼠标左键
                if pygame.mouse.get_pressed()[0]:
                    #获取鼠标坐标
                    pos = pygame.mouse.get_pos()
                    #如果用户点击”开始游戏“
                    if start_game_image_rect.left < pos[0] < start_game_image_rect.right and start_game_image_rect.top < pos[1] < start_game_image_rect.bottom:
                        #调用主函数
                        main()
                    #如果用户点击”退出游戏“
                    if game_quit_image_rect.left < pos[0] < game_quit_image_rect.right and game_quit_image_rect.top < pos[1] < game_quit_image_rect.bottom:
                        pygame.quit()
                        sys.exit()
                    #如果用户点击”游戏规则“
                    if game_rules_image_rect.left < pos[0] < game_rules_image_rect.right and game_rules_image_rect.top < pos[1] < game_rules_image_rect.bottom:
                        #离开主界面
                        is_ui = False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    代码有点多,就没有全部粘贴出来,可以在文末名片自取哈~

  • 相关阅读:
    2.9 PE结构:重建导入表结构
    45、优惠券秒杀(实现一人一单)
    为什么要学习----------[澳大利亚]安德鲁·马修斯
    面向海洋观监测传感网的移动终端位置隐私保护研究
    医学图像分割常见评价指标(单目标)——包含源码讲解和指标缺陷
    WordPress 6.1 “Misha“
    Golang反射相关知识总结
    查看单元测试用例覆盖率新姿势:IDEA 集成 JaCoCo
    Seata四大模式之XA模式详解及代码实现
    Django请求的生命周期
  • 原文地址:https://blog.csdn.net/ooowwq/article/details/128083180