【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码

news2025/1/10 7:31:19

前言

halo,包子们下午好
小编作为一个鸡你太美的忠实黑粉,怎么能不实行一个蔡徐坤大战篮球的小游戏呢
今天小编用Python给大家实现啦
今天不为别的,就是想督促大家学习
废话不多说,直接开整
在这里插入图片描述

相关文件

关注小编,私信小编领取哟!
当然别忘了一件三连哟~~
公众号:Python日志

源码点击蓝色字体领取
Python零基础入门到精通视频合集

【整整800集】Python爬虫项目零基础入门合集,细狗都学会了,你还不会?

开发环境

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

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

效果展示

开始界面

在这里插入图片描述

游戏规则

在这里插入图片描述

游戏界面

在这里插入图片描述

结束界面

在这里插入图片描述

代码实现

模块导入

import pygame
import sys
import traceback
import os
import CXK
import enemy
import bullet
import supply
from pygame.locals import *
from random import *

初始化

#初始化pygame
pygame.init()
#初始化pygame的音频模块
pygame.mixer.init()

#定义背景尺寸宽和高
bg_size = width,height = 480,700
#初始化窗口
screen = pygame.display.set_mode(bg_size)
#设置显示在窗口上的名称
pygame.display.set_caption("CXK大战篮球  源码领取Q群:494958217")

#初始化背景图片
background = pygame.image.load("images/background.png").convert()

#定义RGB颜色
BLACK = (0,0,0)
GREEN = (0,255,0)
RED = (255,0,0)

#载入背景音乐
pygame.mixer.music.load("sound/game_music.ogg")
pygame.mixer.music.set_volume(0.2)

#载入游戏音效
background_sound = pygame.mixer.Sound("sound/background_sound.wav")
background_sound.set_volume(0.1)
enemy3_fly_sound = pygame.mixer.Sound("sound/Organic Rhythm Assault.wav")
enemy3_fly_sound.set_volume(0.2)
enemy3_down_sound = pygame.mixer.Sound("sound/爆炸.wav")
enemy3_down_sound.set_volume(0.2)
bomb_sound = pygame.mixer.Sound("sound/bomb_sound.wav")
bomb_sound.set_volume(0.2)
get_supply_sound = pygame.mixer.Sound("sound/get_bullet_sound.wav")
get_supply_sound.set_volume(0.2)

定义函数

#定义增加小型敌人的函数
def add_small_enemies(group1,group2,num):
    for i in range(num):
        e1 = enemy.SmallEnemy(bg_size)
        group1.add(e1)
        group2.add(e1)

#定义增加中型敌人的函数
def add_mid_enemies(group1,group2,num):
    for i in range(num):
        e2 = enemy.MidEnemy(bg_size)
        group1.add(e2)
        group2.add(e2)

#定义增加大型敌人的函数
def add_big_enemies(group1,group2,num):
    for i in range(num):
        e3 = enemy.BigEnemy(bg_size)
        group1.add(e3)
        group2.add(e3)

#定义增加敌人移动速度的函数
def inc_speed(target,inc):
    for each in target:
        each.speed+=inc

游戏主界面

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

        #进入游戏规则界面
        else:
            #绘制游戏规则图片
            screen.blit(rules_image,(0,0))

            #停止播放背景音乐
            pygame.mixer.music.stop()
            #循环播放游戏规则音效
            background_sound.play(-1)

             #更改返回按键图片的矩形位置并绘制返回按键
            back_image_rect.left,game_quit_image_rect.top = width - back_image_rect.width - 10, 10
            screen.blit(back_image,(width - back_image_rect.width - 10,10))

            if pygame.mouse.get_pressed()[0]:
                #获取鼠标坐标
                pos = pygame.mouse.get_pos()
                #如果用户点击返回图片
                if back_image_rect.left < pos[0] <back_image_rect.right and back_image_rect.top < pos[1] < back_image_rect.bottom:
                    #背景音乐停止并进入主界面
                    pygame.mixer.stop()
                    ui()
            
        #刷新屏幕
        pygame.display.flip()
          
        #设置帧率为60帧
        clock.tick(60)

主函数

#游戏主函数
def main():

    #循环播放背景音乐
    pygame.mixer.music.play(-1)

    #用于计算未暂停时经过的时间
    TIME = 0

    #生成CXK
    me = CXK.CXK(bg_size)

    #用于存放敌人
    enemies = pygame.sprite.Group()

    #生成小型敌人
    small_enemies = pygame.sprite.Group()
    add_small_enemies(small_enemies,enemies,40)

    #生成中型敌人
    mid_enemies = pygame.sprite.Group()
    add_mid_enemies(mid_enemies,enemies,10)

    #生成大型敌人
    big_enemies = pygame.sprite.Group()
    add_big_enemies(big_enemies,enemies,6)

    #生成普通子弹
    bullet1 = []
    bullet1_index = 0
    BULLET1_NUM = 4
    for i in range(BULLET1_NUM):
        bullet1.append(bullet.Bullet(me.rect.midtop))

    #生成超级子弹
    bullet2 = []
    bullet2_index = 0
    BULLET2_NUM = 8
    for i in range(BULLET2_NUM//2):
        bullet2.append(bullet.Bullet2((me.rect.centerx-10,me.rect.centery)))
        bullet2.append(bullet.Bullet2((me.rect.centerx+10,me.rect.centery)))

    clock = pygame.time.Clock()

    #爆炸图片索引
    e1_destroy_index = 0
    e2_destroy_index = 0
    e3_destroy_index = 0
    me_destroy_index = 0

    #统计得分
    score = 0
    score_font = pygame.font.Font("font/font.ttf",36)

    #暂停
    paused = False
    pause_nor_image = pygame.image.load("images/pause_1.png").convert_alpha()
    pause_pressed_image = pygame.image.load("images/pause_2.png").convert_alpha()
    resume_nor_image = pygame.image.load("images/start_1.png").convert_alpha()
    resume_pressed_image = pygame.image.load("images/start_2.png").convert_alpha()
    pause_rect = pause_nor_image.get_rect()
    pause_rect.left,pause_rect.top = width - pause_rect.width - 10,10
    paused_image = pause_nor_image

    #设置难度级别
    level = 1

    #全屏炸弹
    bomb_image = pygame.image.load("images/bomb.png").convert_alpha()
    bomb_rect = bomb_image.get_rect()
    bomb_font = pygame.font.Font("font/font.ttf",48)
    bomb_num = 3

    #护盾
    shield_image = pygame.image.load("images/shield.png").convert_alpha()
    shield_rect = shield_image.get_rect()

    #每30秒发放一个补给包
    bullet_supply = supply.Bullet_Supply(bg_size)
    bomb_supply = supply.Bomb_Supply(bg_size)
    shield_supply = supply.Shield_Supply(bg_size)
    SUPPLY_TIME = USEREVENT
    pygame.time.set_timer(SUPPLY_TIME,30*1000)

    #超级子弹定时器
    DOUBLE_BULLET_TIME = USEREVENT+1

    #无敌时间计时器
    INVINCIBLE_TIME = USEREVENT+2

    #暂停计时器
    PAUSE_TIME = USEREVENT+3
    pygame.time.set_timer(PAUSE_TIME,1*1000)

    #标志是否使用超级子弹
    is_double_bullet = False

    #标志是否有护盾
    is_protected = False

    #生命数量
    life_image = pygame.image.load("images/life.png").convert_alpha()
    life_rect = life_image.get_rect()
    life_num = 3

    #游戏结束画面
    gameover_font = pygame.font.Font("font/font.ttf",48)
    again_image = pygame.image.load("images/again.png").convert_alpha()
    again_rect = again_image.get_rect()
    gameover_image = pygame.image.load("images/gameover.png").convert_alpha()
    gameover_rect = gameover_image.get_rect()

    #用于切换图片
    CXK_switch_image = 1
    enemy_switch_image = 1

    #用于延迟
    delay = 100
    enemy_delay = 15

    #用于限制重复打开记录文件
    recorded = False

    #标志是否暂停过
    is_pause_time = False

    #主函数循环
    while True:
        for event in pygame.event.get():
            if event.type == QUIT:
                pygame.quit()
                sys.exit()
            
            #如果有鼠标点击事件
            elif event.type == MOUSEBUTTONDOWN:
                #如果是鼠标左键点击暂停按键
                if event.button == 1 and pause_rect.collidepoint(event.pos):
                    #更改暂停状态
                    paused = not paused
                    #如果当前为暂停
                    if paused:
                        #标志暂停过
                        is_pause_time = True
                        #暂停补给投放
                        pygame.time.set_timer(SUPPLY_TIME,0)
                        #背景音乐暂停
                        pygame.mixer.music.pause()
                        #音效暂停
                        pygame.mixer.pause()
                    #如果当前不是暂停状态
                    else:
                        #如果曾经暂停过
                        if is_pause_time:
                            #设置补给投放时间为30秒减去之前未暂停时经过的时间
                            pygame.time.set_timer(SUPPLY_TIME,(30-TIME)*1000)
                        #从新标志位未暂停
                        is_pause_time = False
                        #继续播放背景音乐
                        pygame.mixer.music.unpause()
                        #继续播放音效
                        pygame.mixer.unpause()

            #检测鼠标移动事件
            elif event.type == MOUSEMOTION:
                #根据鼠标位置更改暂停/继续按键的样式
                if pause_rect.collidepoint(event.pos):
                    if paused:
                        paused_image = resume_pressed_image
                    else:
                        paused_image = pause_pressed_image
                else:
                    if paused:
                        paused_image = resume_nor_image
                    else:
                        paused_image = pause_nor_image
            
            #检测键盘按下的事件
            elif event.type == KEYDOWN:
                #如果按下空格键
                if event.key == K_SPACE:
                    #如果炸弹数量不为0
                    if bomb_num:
                        #炸弹数量-1
                        bomb_num -=1
                        #使用炸弹音效播放
                        bomb_sound.play()
                        #屏幕内所有敌人暴毙
                        for each in enemies:
                            if each.rect.bottom > 0:
                                each.active = False
            
            #如果为用户自定义事件发放补给
            elif event.type == SUPPLY_TIME:
                #随机选择一个补给发放
                Choice = int(choice([1,2,3]))
                if Choice == 1:
                    bomb_supply.reset()
                if Choice == 2:
                    bullet_supply.reset()
                if Choice == 3:
                    shield_supply.reset()
                #发放补给后计时清零
                TIME = 0

            #双倍子弹结束
            elif event.type == DOUBLE_BULLET_TIME:
                #双倍子弹失效
                is_double_bullet = False
                #取消双倍子弹计时器
                pygame.time.set_timer(DOUBLE_BULLET_TIME,0)

            #无敌时间结束
            elif event.type == INVINCIBLE_TIME:
                #不无敌
                me.invincible = False
                #取消无敌时间计时器
                pygame.time.set_timer(INVINCIBLE_TIME,0)
            
            #非暂停时间自动30秒内计时
            elif event.type == PAUSE_TIME:
                if not paused:
                    if TIME < 29:
                        TIME +=1
                    else:
                        TIME = 0



        #根据用户得分增加难度
        if level == 1 and score > 50000:
            level = 2
            #增加10小型敌人,6个中型敌人,4个大型敌人
            add_small_enemies(small_enemies,enemies,10)
            add_mid_enemies(mid_enemies,enemies,6)
            add_big_enemies(big_enemies,enemies,4)
            #提升小型敌人的速度
            inc_speed(small_enemies,1)

        if level == 2 and score > 300000:
            level = 3
            #增加10小型敌人,6个中型敌人,4个大型敌人
            add_small_enemies(small_enemies,enemies,10)
            add_mid_enemies(mid_enemies,enemies,6)
            add_big_enemies(big_enemies,enemies,4)
            #提升小型敌人的速度
            inc_speed(small_enemies,1)
            #提升中型敌人的速度
            inc_speed(mid_enemies,1)

        if level == 3 and score > 600000:
            level = 4
            #增加10小型敌人,6个中型敌人,4个大型敌人
            add_small_enemies(small_enemies,enemies,10)
            add_mid_enemies(mid_enemies,enemies,6)
            add_big_enemies(big_enemies,enemies,4)
            #提升小型敌人的速度
            inc_speed(small_enemies,1)
            #提升中型敌人的速度
            inc_speed(mid_enemies,1)

        if level == 4 and score > 1000000:
            level = 5
            #增加10小型敌人,6个中型敌人,4个大型敌人
            add_small_enemies(small_enemies,enemies,10)
            add_mid_enemies(mid_enemies,enemies,6)
            add_big_enemies(big_enemies,enemies,4)
            #提升小型敌人的速度
            inc_speed(small_enemies,1)
            #提升中型敌人的速度
            inc_speed(mid_enemies,1)

        screen.blit(background,(0,0))

        if life_num and not paused:

            #检测用户的键盘操作
            key_pressed = pygame.key.get_pressed()
        
            if key_pressed[K_w] or key_pressed[K_UP]:
                me.moveUP()
            if key_pressed[K_s] or key_pressed[K_DOWN]:
                me.moveDOWN()
            if key_pressed[K_a] or key_pressed[K_LEFT]:
                me.moveLEFT()
            if key_pressed[K_d] or key_pressed[K_RIGHT]:
                me.moveRIGHT()

            #绘制炸弹补给
            if bomb_supply.active:
                bomb_supply.move()
                screen.blit(bomb_supply.image,bomb_supply.rect)
                #碰撞检测
                if pygame.sprite.collide_mask(bomb_supply,me):
                    get_supply_sound.play()
                    if bomb_num < 3:
                        bomb_num+=1
                    bomb_supply.active = False

            #绘制子弹补给
            if bullet_supply.active:
                bullet_supply.move()
                screen.blit(bullet_supply.image,bullet_supply.rect)
                #碰撞检测
                if pygame.sprite.collide_mask(bullet_supply,me):
                    get_supply_sound.play()
                    is_double_bullet = True
                    pygame.time.set_timer(DOUBLE_BULLET_TIME,18*1000)
                    bullet_supply.active = False

            #绘制护盾补给
            if shield_supply.active:
                shield_supply.move()
                #碰撞检测
                screen.blit(shield_supply.image,shield_supply.rect)
                if pygame.sprite.collide_mask(shield_supply,me):
                    get_supply_sound.play()
                    is_protected = True
                    shield_supply.active = False

            #绘制子弹
            if not(delay%10):
                if is_double_bullet:
                    bullets = bullet2
                    bullets[bullet2_index].reset((me.rect.centerx-10,me.rect.centery))
                    bullets[bullet2_index+1].reset((me.rect.centerx+10,me.rect.centery))
                    bullet2_index = (bullet2_index+2)%BULLET2_NUM
                else:
                    bullets = bullet1
                    bullets[bullet1_index].reset(me.rect.midtop)
                    bullet1_index = (bullet1_index+1)%BULLET1_NUM

            #检测子弹是否击中敌人
            for b in bullets:
                if b.active:
                    b.move()
                    screen.blit(b.image,b.rect)
                    #碰撞检测
                    enemy_hit = pygame.sprite.spritecollide(b,enemies,False,pygame.sprite.collide_mask)
                    if enemy_hit:
                        b.active = False
                        for e in enemy_hit:
                            if e in mid_enemies or e in big_enemies:
                                e.energy -= 1
                                if e.energy == 0:
                                    e.active = False
                            else:
                                e.active = False

            #绘制大型敌人
            for each in big_enemies:
                if each.active:
                    each.move()

                    if enemy_switch_image == 1:
                        screen.blit(each.image1,each.rect)
                    if enemy_switch_image == 2:
                        screen.blit(each.image2,each.rect)
                    if enemy_switch_image == 3:
                        screen.blit(each.image3,each.rect)
                    if enemy_switch_image == 4:
                        screen.blit(each.image4,each.rect)
                    if enemy_switch_image == 5:
                        screen.blit(each.image5,each.rect)
                    if enemy_switch_image == 6:
                        screen.blit(each.image6,each.rect)
                    if enemy_switch_image == 7:
                        screen.blit(each.image7,each.rect)
                    if enemy_switch_image == 8:
                        screen.blit(each.image8,each.rect)
                    if enemy_switch_image == 9:
                        screen.blit(each.image9,each.rect)
                    if enemy_switch_image == 10:
                        screen.blit(each.image10,each.rect)
                    if enemy_switch_image == 11:
                        screen.blit(each.image11,each.rect)
                    if enemy_switch_image == 12:
                        screen.blit(each.image12,each.rect)
                    if enemy_switch_image == 13:
                        screen.blit(each.image13,each.rect)
                    if enemy_switch_image == 14:
                        screen.blit(each.image14,each.rect)
                    if enemy_switch_image == 15:
                        screen.blit(each.image15,each.rect)
                    if enemy_switch_image == 16:
                        screen.blit(each.image16,each.rect)
                    if enemy_switch_image == 17:
                        screen.blit(each.image17,each.rect)
                    if enemy_switch_image == 18:
                        screen.blit(each.image18,each.rect)
                    if enemy_switch_image == 19:
                        screen.blit(each.image19,each.rect)
                        enemy_switch_image = 1

                    #每15帧切换一次图片
                    if not enemy_delay:
                        enemy_switch_image+=1
                        enemy_delay = 15
                    else:
                        enemy_delay -= 1

                    #绘制血槽
                    pygame.draw.line(screen,BLACK,(each.rect.left,each.rect.top-5),(each.rect.right,each.rect.top-5),2)
                    energy_remain = each.energy/enemy.BigEnemy.energy
                    if energy_remain>0.2:
                        energy_color = GREEN
                    else:
                        energy_color = RED
                    pygame.draw.line(screen,energy_color,(each.rect.left,each.rect.top-5),(each.rect.left+each.rect.width*energy_remain,each.rect.top-5),2)

                    #载入音效
                    if each.rect.bottom == -50:
                        enemy3_fly_sound.play(-1)
                else:
                    #毁灭
                    if not(delay%3):
                        if e3_destroy_index == 0:
                            enemy3_down_sound.play()
                        #绘制毁灭画面
                        screen.blit(each.destroy_images[e3_destroy_index],each.rect)
                        e3_destroy_index = (e3_destroy_index +1)%3
                        if e3_destroy_index == 0:
                            enemy3_fly_sound.stop()
                            score+=10000
                            each.reset()

总结

游戏源码实在是太多,所以没有给大家全部展示啦
上面是部分主要的代码
源码领取看相关文件哟
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

GoDiagram.Winforms完全重写版-Crack

介绍GoDiagram 10 – 用于 .NET 项目的新图表库。 GoDiagram 10 是 GoDiagram 的完全重写&#xff0c;基于 GoJS API&#xff0c;具有相同的功能。这包括节点和链接的模板、数据绑定、JSON 模型数据格式、动画和许多其他功能。 在 C# 中为 .NET 构建图表 流程图 构建交互式流程…

安卓APP源码和设计报告——仿淘宝购物APP

2021—2022学年第二学期期末考试 《Android手机软件开发》实践考核 项目设计说明书 项目名称&#xff1a; 购物APP的设计与实现 专 业&#xff1a; 计算机科学与技术 学 号&#xff1a; 姓 名&#xff1a; 任课教师&#xff1a; 2022年6月12日 目 录 1.项目概述11 2…

磨金石教育摄影技能干货分享|优秀摄影欣赏—足球经典名画

世界杯正在如火如荼的进行&#xff0c;相信通过本次世界杯先进的转播技术&#xff0c;又会诞生一大批新的足球迷。而随着拍摄技术的进步&#xff0c;足球场上的许多精彩瞬间也被更清晰的抓拍下来。 1、c罗的惊讶 这张照片相信看过本届世界杯的朋友都不陌生&#xff0c;c罗做出…

[效率工具] Git下对敏感文件/内容的处理

&#x1f341;简介 &#x1f517; 相关资料 : 一文玩转Git 有时候我们提交代码到GitHub/Giglab平台, 发现一不小心把带有账号密码以及服务器地址的代码等敏感信息提交到公共平台,对于这种情况我们应该使用一些方案进行规避。下面就讨论下这些方案&#xff01; 方法一: 配置文件…

『SnowFlake』雪花算法的详解及时间回拨解决方案

&#x1f4e3;读完这篇文章里你能收获到 图文形式为你讲解原生雪花算法的特征及原理了解时间回拨的概念以及可能引起发此现象的操作掌握时间回拨的解决方案—基于时钟序列的雪花算法关于雪花算法的常见问题解答 文章目录一、原生的雪花算法1. 简介2. 特征3. 原理3.1 格式&…

什么软件可以去除照片水印?这3种方法可以帮你轻松搞定

大家有过这样的烦恼吗&#xff1f;在网上看到一张喜欢的图片&#xff0c;想要将它保存下来做壁纸&#xff0c;但是却发现图片里面有个大大的水印&#xff0c;十分影响效果。或者是在网上看到一张喜欢的头像&#xff0c;里面也有着一个大大的水印&#xff0c;我们该放弃这张图片…

【能源物联网】物联网体系结构与建筑能源管理系统的相关性分析

摘要&#xff1a; 在能源形势紧张的大趋势下&#xff0c;高能耗的大型公共建筑能源管理系统的建设逐渐受到重视&#xff0c;以物联网技术及基础的建筑能源管理平台可以提供即时、准确、高效的能源管理策略。系统阐述了结合物联网技术的建筑能源管理构建方法&#xff0c;对物联…

低代码助力制造型企业——工时管理系统

生产管理是制造企业的核心职能之一,工时管理是生产管理的重要方法和手段&#xff0c;可以帮助更好的掌控交货期&#xff0c;控制成本&#xff0c;更准确的安排生产计划。在当前激烈竞争的市场环境下&#xff0c;企业必须以现代化的理念结合不断改进的管理方法才能及时抓住发展机…

Aspose.GIS 22.10.0 for .NET Crack

概述 获取最完整和最强大的 API&#xff0c;以创建受其启发并基于它们的新项目&#xff0c;而不是通过为您编写此处已有的内容来浪费资源和精力。适用于 .NET 的 GIS API 是一种使用 GIS 数据的简单方法完全托管的代码&#xff0c;具有简单的界面、部署和数据安全性。 我们的 .…

Python FastAPI 多参数传递

Python FastAPI请求参数传递 FastAPI多参数传递类型 FastAPI通过模板来匹配URL中的参数列表&#xff0c;大致有如下三类方式传递参数&#xff1a; 路径参数传递&#xff1a;获取自定义的构造URL中的参数GET参数传递&#xff1a;获取一个URL后面带的?param11&param22这种…

ubuntu20.04+anaconda+yolov5训练kitti数据集

yolov5安装流程 一、Anaconda安装 1.Anaconda官网:https://www.anaconda.com/products/distribution 2.点击Download&#xff0c;下载For Linux版本 3.到下载的文件夹&#xff0c;输入&#xff1a; bash ~/Downloads/Anaconda3-xxxxxxxxx.sh # 根据下载的文件不同&#xff…

火爆全网的ChatGPT机器人,你玩了吗?

最近几天&#xff0c;由OpenAI公司发布的ChatGPT聊天机器人火了&#xff0c;小杨也怀着对新鲜事物的好奇&#xff0c;亲自体验了一下这个火爆全网&#xff0c;让人沉迷其中无法自拔的ChatGPT聊天机器人&#xff0c;经过体验&#xff0c;我只想用一个字来表达我的感受&#xff0…

⚡通信管理模块⚡

目录 &#x1f333;.通信管理模块的介绍 &#x1f333;.通信模块的设计 &#x1f333;.ListShow函数 &#x1f333;.UpLoad函数 &#x1f333;.DownLoad函数 下载的断点续传 &#x1f333;.通信管理模块的介绍 通信管理模块管理着服务器与浏览器之间的通信: 当服务器收…

猿如意工具-【SwitchHosts】详情介绍

一、什么是猿如意&#xff1f; 在发表文章的契机下&#xff0c;看到了【猿如意】这个名词。处于好奇&#xff0c;点击进行了解。 发现是我们熟悉的CSDN提供的一个面向开发者的辅助开发工具箱&#xff0c;猿如意的意思是-程序猿&#xff08;员&#xff09;的如意兵器。 它提供…

Elasticsearch与spring data整合api变化

记录 spring-data-elasticsearch 版本api变化 https://blog.csdn.net/zlpzlpzyd/article/details/128255792 spring boot 2.7.x 对应 spring-data-elasticsearch 4.4.x 排查问题之前先看一下上述链接中版本的对应关系 org.springframework.data.elasticsearch.core.Elastics…

如何搭建真实的性能测试环境?

在编写脚本的同时&#xff0c;执行场景之前需要完成测试环境的搭建工作&#xff0c;这里包括硬件和软件环境的搭建。根据性能测试计划中的测试环境规划&#xff0c;完成对整个测试环境的搭建。由于性能测试的特殊性&#xff0c;整个测试环境需要在严格的独立监控下管理&#xf…

微信建群怎么建?2个方法,快速学会!

​如果你想建立一个微信群来提高工作效率&#xff0c;你该怎么办&#xff1f;微信建群怎么建&#xff0c;找了很长一段时间不到。下面小编分享2个微信建群的方法&#xff0c;可以让您快速学习如何建立微信群&#xff01;感兴趣的小伙伴可以来看看哦&#xff01; 微信建群方法一…

JDBC第一章节(从概念到操作)

一、数据持久化存储回顾 1、持久化概述 2. JAVA中的数据存储 二、JDBC概述 1.概述 1.1 概述&#xff1a; 1.2 没有jdbc之前存在一些问题 1.3 有jdbc 之后 1.4 JDBC本质 1.5 优点 三、JDBC API 四、初始JDBC 操作数据库 1、操作步骤概述 2、实操步骤 2.1 导入MySQ…

Vue 实现拖拽模块(三)自定义拖拽组件的样式

上文介绍了 自定义拖拽组件位置 的简单实现&#xff0c;本文将继续给大家分享如何自定义拖拽组件位置的简单实现&#xff0c;文中通过示例代码介绍&#xff0c;感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式&#xff0c;具体如下&#xff1a; 支持通过…

番外-LogParser(IIS日志分析)

编写原因&#xff1a;在线的那个信息管理系统&#xff0c;总有人添加空白数据&#xff0c;一加就是很多条&#xff0c;用这个分析一下&#xff0c;再发现之后将其IP拉入黑名单 1&#xff0c;下载安装 网盘下载链接 提取码&#xff1a;229e 文件下载后解压&#xff0c;解压后为…