python练习-袭击敌机

$ python -m pip install --user pygame

1、画游戏框

class Settings:
    def __init__(self):
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230, 230, 230)
import sys
import pygame
from settings import Settings

class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        # 设置窗口标题
        pygame.display.set_caption("外星战机游戏")
    # 绘制
    def _update_screen(self):
        # 绘制背景
        self.screen.fill(self.settings.bg_color)
        # 绘制课件
        pygame.display.flip()

    # 运行
    def run_game(self):
        while True:
            self._update_screen()


AlienInvasion().run_game()

这笔记是我把程序写完才落成笔记的,复盘

这里闪退,百思不得其解

在 Pygame 中,如果不处理事件(如关闭窗口事件),程序会因为无法响应这些事件而立即退出。

问题分析:
    缺少事件处理:你的 run_game 方法中没有处理任何事件,包括关闭窗口的事件。因此,当窗口关闭事件发生时,程序没有机会响应,导致立即退出。
    缺少必要的更新:虽然你有 _update_screen 方法来更新屏幕,但没有处理游戏逻辑和用户输入。

2、造飞机

在ship类定义飞机属性

import sys
import pygame
from settings import Settings
from ship import Ship

class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        # 设置窗口标题
        pygame.display.set_caption("外星战机游戏")

        self.ship = Ship(self)

    # 绘制
    def _update_screen(self):
        # 绘制背景
        self.screen.fill(self.settings.bg_color)
        # 绘制小飞船
        self.ship.blitme()
        # 绘制课件
        pygame.display.flip()

AlienInvasion().run_game()
# 管理飞船类
class Ship:
    def __init__(self, ai_name):
        # 飞船和初始位置
        self.screen = ai_name.screen
        self.screen_rect = ai_name.screen.get_rect()

        # 加载飞船图形
        self.image = pygame.image.load("ship.bmp")
        self.rect = self.image.get_rect()

    def blitme(self):
        # 绘制飞船
        self.screen.blit(self.image, self.rect)

    def center_ship(self):
        # 生成飞船在居中底端
        self.rect.midbottom=self.screen_rect.midbottom
        self.x=float(self.rect.x)

3、开飞机

import sys
import pygame
from settings import Settings
from ship import Ship


class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        #  设置窗口标题
        pygame.display.set_caption("外星战机游戏")

        self.ship = Ship(self)

    def run_game(self):
        while True:
            self._check_event()
            self.ship.update()
            self._update_screen()

    # 监控外设
    def _check_event(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                self._check_key_down(event)
            elif event.type == pygame.KEYUP:
                self._check_key_up(event)

    # 按键按下监控
    def _check_key_down(self, event):
        if event.key == pygame.K_RIGHT:
            self.ship.moving_right = True
        if event.key == pygame.K_LEFT:
            self.ship.moving_left = True
        if event.key == pygame.K_UP:
            self.ship.moving_up = True
        if event.key == pygame.K_DOWN:
            self.ship.moving_down = True
        if event.key == pygame.K_SPACE:
            self.bullet.launch = True

    # 按键松开监控
    def _check_key_up(self, event):
        if event.key == pygame.K_RIGHT:
            self.ship.moving_right = False
        if event.key == pygame.K_LEFT:
            self.ship.moving_left = False
        if event.key == pygame.K_UP:
            self.ship.moving_up = False
        if event.key == pygame.K_DOWN:
            self.ship.moving_down = False

    def run_game(self):
        while True:
            self._check_event()
            self.ship.update()
            self._update_screen()

AlienInvasion().run_game()
import pygame

# 管理飞船类
class Ship:
    def __init__(self, ai_name):

        # 飞船和初始位置
        self.screen = ai_name.screen
        self.screen_rect = ai_name.screen.get_rect()

        # 加载飞船图形
        self.image = pygame.image.load("C:/Users/MGL/Desktop/py_test/Alien/ship.bmp")
        self.rect = self.image.get_rect()

        # 底部中央
        self.rect.midbottom = self.screen_rect.midbottom
        self.moving_right = False
        self.moving_left = False
        self.moving_up = False
        self.moving_down = False

    # 持续移动 并设置限制
    def update(self):
        if self.moving_right and self.rect.right < self.screen_rect.right:
            self.rect.x += 1
        elif self.moving_left and self.rect.left > self.screen_rect.left:
            self.rect.x -= 1
        elif self.moving_up and self.rect.y > self.screen_rect.top:
            # self.screen_rect.top为0
            self.rect.y -= 1
        elif self.moving_down and self.rect.y < self.screen_rect.bottom - 100:
            self.rect.y += 1

4、造导弹

import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet


class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        #  设置窗口标题
        pygame.display.set_caption("外星战机游戏")

        self.ship = Ship(self)
        self.bullet = Bullet(self)

    def run_game(self):
        while True:
            self._check_event()
            self.ship.update()
            self.bullet.bullets.update()
            # self._update_aliens()
            self._update_screen()

    # 监控外设
    def _check_event(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
            elif event.type == pygame.KEYDOWN:
                self._check_key_down(event)
            elif event.type == pygame.KEYUP:
                self._check_key_up(event)

    # 按键按下监控
    def _check_key_down(self, event):
        if event.key == pygame.K_RIGHT:
            self.ship.moving_right = True
        if event.key == pygame.K_LEFT:
            self.ship.moving_left = True
        if event.key == pygame.K_UP:
            self.ship.moving_up = True
        if event.key == pygame.K_DOWN:
            self.ship.moving_down = True
        if event.key == pygame.K_SPACE:
            self.bullet.launch = True

    # 按键松开监控
    def _check_key_up(self, event):
        if event.key == pygame.K_RIGHT:
            self.ship.moving_right = False
        if event.key == pygame.K_LEFT:
            self.ship.moving_left = False
        if event.key == pygame.K_UP:
            self.ship.moving_up = False
        if event.key == pygame.K_DOWN:
            self.ship.moving_down = False
        if event.key == pygame.K_SPACE:
            self.bullet.launch = False


    # 绘制
    def _update_screen(self):
        # 绘制背景
        self.screen.fill(self.settings.bg_color)
        # 绘制小飞船
        self.ship.blitme()

        self.bullet.launch_bullet(self)

        # 绘制课件
        pygame.display.flip()


AlienInvasion().run_game()
# 设置类
class Settings:
    def __init__(self):
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230, 230, 230)

        # 子弹设置
        self.bullet_speed = 2
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = (60, 60, 60)
        self.bullet_allowed = 5
import pygame
from pygame.sprite import Sprite


# 管理发射子弹类
class Bullet(Sprite):
    def __init__(self, ai_name):
        super().__init__()
        self.screen = ai_name.screen
        self.settings = ai_name.settings
        self.color = self.settings.bullet_color

        # 连续射击标识符
        self.launch = False

        # 绘画子弹
        self.rect = pygame.Rect(
            0, 0, self.settings.bullet_width, self.settings.bullet_height
        )
        # 子弹在飞船上面
        self.rect.midtop = ai_name.ship.rect.midtop
        # 子弹位置
        self.y = float(self.rect.y)

        # 装弹弹夹
        self.bullets = pygame.sprite.Group()


    def update(self):
        # 子弹移动
        self.y -= self.settings.bullet_speed
        self.rect.y = self.y


    # 装弹
    def _fire_bullet(self, alien):
        if len(self.bullets) < self.settings.bullet_allowed:
            new_bullet = Bullet(alien)
            self.bullets.add(new_bullet)

    # 连续发射
    def launch_bullet(self, alien):
        if self.launch:
            self._fire_bullet(alien)
        for bullet in self.bullets.sprites():
            # 删除触顶的子弹
            if bullet.rect.bottom <= 0:
                self.bullets.remove(bullet)
            bullet.draw_bullet()

    # 绘制子弹
    def draw_bullet(self):
        pygame.draw.rect(self.screen, self.color, self.rect)

5、出现敌机

# 设置类
class Settings:
    def __init__(self):
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230, 230, 230)

        # 子弹设置
        self.bullet_speed = 2
        self.bullet_width = 3
        self.bullet_height = 15
        self.bullet_color = (60, 60, 60)
        self.bullet_allowed = 5

        self.alien_sheep = 0.3
        self.fleet_drop_speed = 1
    #     # 1 右移 -1 左移
        self.fleet_drop_direction = 1
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien


class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        #  设置窗口标题
        pygame.display.set_caption("外星战机游戏")

        self.ship = Ship(self)
        self.bullet = Bullet(self)
        self.alien = Alien(self)

    def run_game(self):
        while True:
            self._check_event()
            self.ship.update()
            self.bullet.bullets.update()
            self._update_aliens()
            self._update_screen()

    # 忽略其他代码


    def _create_fleet(self):
        alien_n = Alien(self)
        alien_width = self.alien.rect.width
        alien_height = self.alien.rect.height
        # 一行敌机占多少宽度 给屏幕两边留有移动空间
        available_space_x = self.settings.screen_width - (2 * alien_width)
        # 计算可以放多少量敌机 (每个外星人间隔一个外星人宽度的距离)所以  2 * alien_width
        number_aliens_x = available_space_x // (2 * alien_width)

        # 计算屏幕可容纳多少行
        ship_height = self.ship.rect.height
        # 敌机占据的高度
        available_space_y = (
            self.settings.screen_height - (3 * alien_height) - ship_height
        )
        # 间隔有个敌机
        number_rows = available_space_y // (2 * alien_height)

        # 创建敌机
        for row_num in range(number_rows):
            for alien_num in range(number_aliens_x):
                self._create_alien(alien_num, row_num, alien_width)

    def _create_alien(self, alien_num, row_num, alien_width):
        alien = Alien(self)
        # 2 * alien_width * alien_num 定位起始位置
        alien.x = alien_width + 2 * alien_width * alien_num
        alien.rect.x = alien.x
        alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_num
        self.alien.aliens.add(alien)

    def _update_aliens(self):
        self.alien._check_fleet_edges()
        self.alien.aliens.update()

    def _update_bullets(self):

        # 打完敌机再来一群
        if not self.alien.aliens:
            # 清空弹夹并新建敌机
            self.bullet.bullets.empty()
            self._create_fleet()


    # 绘制
    def _update_screen(self):
        # 绘制背景
        self.screen.fill(self.settings.bg_color)
        # 绘制小飞船
        self.ship.blitme()

        self.bullet.launch_bullet(self)

        self.alien.aliens.draw(self.screen)

        self._update_bullets()

        # 绘制课件
        pygame.display.flip()

AlienInvasion().run_game()
import pygame
from pygame.sprite import Sprite


class Alien(Sprite):
    def __init__(self, ai_name):
        super().__init__()
        self.screen = ai_name.screen
        self.screen_rect = ai_name.screen.get_rect()
        self.image = pygame.image.load("alien.bmp")
        self.rect = self.image.get_rect()
        self.settings = ai_name.settings

        # 敌机 最初位置
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height

        self.x = float(self.rect.x)

        self.aliens = pygame.sprite.Group()

    def update(self):
        # 左移右移
        self.x += self.settings.alien_sheep * self.settings.fleet_drop_direction
        self.rect.x = self.x

    def _check_fleet_edges(self):
        # 有外星人到达边缘时采取相应的措施。
        # self.aliens.sprites() 遍历
        for alien in self.aliens.sprites():
            if alien._check_edges():
                self._change_fleet_direction()
                break

    def _check_edges(self):
        # 如果外星人位于屏幕边缘,就返回True
        # 获取游戏框信息
        screen_rect = self.screen.get_rect()
        # 判断是否有敌机超出游戏框范围
        if self.rect.right >= screen_rect.right or self.rect.left <= 0:
            return True

    def _change_fleet_direction(self):
        # 将整群外星人下移,并改变它们的方向
        for alien in self.aliens.sprites():
            alien.rect.y += self.settings.fleet_drop_speed
            alien.rect.y += 1
        self.settings.fleet_drop_direction *= -1

6、打敌机

敌机打完重新开局,敌机接触到底部重新开局

# pygame.sprite.groupcollide(group1, group2, dokill1, dokill2, collided=None)
# group1: 第一个精灵组。通常是一个 pygame.sprite.Group 对象。
# group2: 第二个精灵组。通常也是一个 pygame.sprite.Group 对象。
# dokill1: 一个布尔值,表示是否在发生碰撞后从 group1 中移除发生碰撞的精灵。如果设置为 True,则发生碰撞的精灵会被自动删除。
# dokill2: 一个布尔值,表示是否在发生碰撞后从 group2 中移除发生碰撞的精灵。如果设置为 True,则发生碰撞的精灵会被自动删除。
# collided: 可选参数,一个函数,用于确定两个精灵是否发生碰撞。默认情况下,Pygame 使用矩形碰撞检测。如果提供了一个函数,该函数应该接受两个精灵作为参数,并返回一个布尔值。




pygame.sprite.spritecollideany 是 Pygame 中用于检测单个精灵与一个精灵组之间是否发生碰撞的函数

sprite: 单个精灵对象。通常是一个 pygame.sprite.Sprite 的子类实例。
group: 精灵组。通常是一个 pygame.sprite.Group 对象。
collided: 可选参数,一个函数,用于确定两个精灵是否发生碰撞。默认情况下,Pygame 使用矩形碰撞检测。如果提供了一个函数,该函数应该接受两个精灵作为参数,并返回一个布尔值。
如果 sprite 与 group 中的任何一个精灵发生碰撞,返回 True;否则返回 False
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien
import time

class AlienInvasion:
    # 忽略其他代码

    def _update_aliens(self):
        self.alien._check_fleet_edges()
        self.alien.aliens.update()

        # 与敌机碰撞判断
        if pygame.sprite.spritecollideany(self.ship, self.alien.aliens):
            self._ship_hit()

        # 检查敌机是否到底部
        self._check_aliens_bottom()

    def _update_bullets(self):
        # 检查是否击中敌机 如果是 则删除
        # 
        collisions = pygame.sprite.groupcollide(
            self.bullet.bullets, self.alien.aliens, True, True
        )

        # 打完敌机再来一群
        if not self.alien.aliens:
            # 清空弹夹并新建敌机
            self.bullet.bullets.empty()
            self._create_fleet()


    def _ship_hit(self):

        self.alien.aliens.empty()
        self.bullet.bullets.empty()

        self._create_fleet()
        self.ship.center_ship()

        time.sleep(0.5)

    def _check_aliens_bottom(self):
        # 检查是否有外星人到达了屏幕底端
        screen_rect = self.screen.get_rect()
        for alien in self.alien.aliens.sprites():
            if alien.rect.bottom >= screen_rect.bottom:
                # 像飞船被撞到一样处理。
                self._ship_hit()
                break

7、记分

class GameStats:

    def __init__(self, ai_name):
        self.settings = ai_name.settings
        self.reset_stats()

    def reset_stats(self):

        self.score = 0
import pygame.font


class ScoreBoard:
    # 显示得分信息的类

    def __init__(self, ai_game):
        # 初始化显示得分涉及的属性
        self.screen = ai_game.screen
        self.screen_rect = self.screen.get_rect()
        self.settings = ai_game.settings
        self.stats = ai_game.stats

        # 显示得分信息时使用的字体设置
        self.text_color = (30, 30, 30)
        self.font = pygame.font.SysFont(None, 48)
        # 准备初始得分图像
        self.prep_score()

    def prep_score(self):
        # 将得分转换为一幅渲染的图像
        score_str = str(self.stats.score)
        self.score_image = self.font.render(
            score_str, True, self.text_color, self.settings.bg_color
        )

        # 在屏幕右上角显示得分。
        self.score_rect = self.score_image.get_rect()
        self.score_rect.right = self.screen_rect.right - 20
        self.score_rect.top = 20

    def show_score(self):
        # 在屏幕上显示得分
        self.screen.blit(self.score_image, self.score_rect)
import sys
import pygame
from settings import Settings
from ship import Ship
from bullet import Bullet
from alien import Alien
from game_stats import GameStats
import time
from score_board import ScoreBoard

class AlienInvasion:
    def __init__(self):
        pygame.init()
        self.settings = Settings()
        # 设置边框 创建一个屏幕对象,并设置其宽度和高度。
        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height)
        )
        #  设置窗口标题
        pygame.display.set_caption("外星战机游戏")

        self.ship = Ship(self)
        self.bullet = Bullet(self)
        self.alien = Alien(self)
        self.stats = GameStats(self)

        self.score = ScoreBoard(self)


    # 忽略部分代码

    def _update_bullets(self):
        # 检查是否击中敌机 如果是 则删除

        collisions = pygame.sprite.groupcollide(
            self.bullet.bullets, self.alien.aliens, True, True
        )

        # 打完敌机再来一群
        if not self.alien.aliens:
            # 清空弹夹并新建敌机
            self.bullet.bullets.empty()
            self._create_fleet()

        if collisions:
            self.stats.score += self.settings.alien_points
            self.score.prep_score()


    def _ship_hit(self):

        # self.stats.ship_left -= 1

        self.alien.aliens.empty()
        self.bullet.bullets.empty()

        self._create_fleet()
        self.ship.center_ship()
        self.stats.score = 0
        self.score.prep_score()

        time.sleep(0.5)


    # 绘制
    def _update_screen(self):
        # 绘制背景
        self.screen.fill(self.settings.bg_color)
        # 绘制小飞船
        self.ship.blitme()

        self.bullet.launch_bullet(self)

        self.alien.aliens.draw(self.screen)

        self._update_bullets()

        # 显示得分
        self.score.show_score()

        # 绘制课件
        pygame.display.flip()

AlienInvasion().run_game()

8、番外

  • 按键
import pygame.font


class Button:
    def __init__(self, ai_name, msg):
        self.screen = ai_name.screen
        self.screen_rect = ai_name.screen.get_rect()

        # 设置按钮的尺寸和其他属性。
        self.width, self.height = 200, 50
        self.button_color = (0, 255, 0)
        self.text_color = (255, 255, 255)
        self.font = pygame.font.SysFont(None, 48)

        # 创建按钮的rect对象,并使其居中。
        self.rect = pygame.Rect(0, 0, self.width, self.height)
        self.rect.center = self.screen_rect.center

        # 按钮的标签只需创建一次。
        self._prep_msg(msg)

    def _prep_msg(self, msg):
        # 将msg渲染为图像,并使其在按钮上居中
        self.msg_image = self.font.render(msg, True, self.text_color, self.button_color)
        self.msg_image_rect = self.msg_image.get_rect()
        self.msg_image_rect.center = self.rect.center


    def draw_button(self):
        # 绘制一个用颜色填充的按钮,再绘制文本。
        self.screen.fill(self.button_color,self.rect)
        self.screen.blit(self.msg_image,self.msg_image_rect)
# from button import Button
#self.play_button = Button(self, "Play")
## 绘制按钮
# self.play_button.draw_button()
## 隐藏鼠标光标
# pygame.mouse.set_visible(false)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

京东零售推荐系统可解释能力详解

作者&#xff1a;智能平台 张颖 本文导读 本文将介绍可解释能力在京东零售推荐系统中的应用实践。主要内容包括以下几大部分&#xff1a;推荐系统可解释定义、系统架构、排序可解释、模型可解释、流量可解释。 推荐系统可解释定义 推荐系统可解释的核心包括三部分&#xff0…

设备数据采集网关工作原理及优势-天拓四方

在日益智能化的时代&#xff0c;设备数据采集网关作为物联网系统中的关键组件&#xff0c;正扮演着越来越重要的角色。它不仅连接着各种设备&#xff0c;还负责数据的采集、处理与传输&#xff0c;为企业的数字化转型提供了坚实的基础。本文将详细探讨设备数据采集网关的定义、…

MLU运行SD3部署手册

文章目录 前言一、平台环境准备二、模型下载三、环境准备四.代码准备五.效果展示 前言 Stable Diffusion 3各版本模型在以下多个方面表现出色&#xff1a; 可定制性&#xff1a;轻松微调模型以满足特定创作需求&#xff0c;或根据定制的工作流程构建应用程序。 高效性能&#…

Webserver(3.3)生产者消费者模型

目录 生产者消费者简单模型条件变量信号变量 生产者消费者简单模型 //生产者消费者模型#include <stdio.h> #include<pthread.h> #include<stdlib.h> #include<unistd.h>struct Node{int num;struct Node * next; }; //头结点 struct Node * headNULL…

Obsidian之与Typora图片格式相互兼容

来源 [Obsidian之与Typora图片格式相互兼容 - 简书 (jianshu.com)](https://www.jianshu.com/p/303433fe82b9) 下载插件customer attachment location&#xff0c;并设置

计算机网络——TCP篇

TCP篇 基本认知 TCP和UDP的区别? TCP 和 UDP 可以使用同一个端口吗&#xff1f; 可以的 传输层中 TCP 和 UDP在内核中是两个完全独立的软件模块。可以根据协议字段来选择不同的模块来处理。 TCP 连接建立 TCP 三次握手过程是怎样的&#xff1f; 一次握手:客户端发送带有 …

vue echarts左右间距调整 左右空白

咱就说这样的左右间距丑不丑。。 经过调整后&#xff0c;嗯&#xff0c;好看了很多。页面也协调多了&#xff01; 直接上代码&#xff1a;添加以下配置数据&#xff1a; grid: {x: 50,y: 25,x2: 30,y2: 35 }, this.chart.setOption({width: 100%,xAxis: {show: false,type: ca…

【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案

作者&#xff1a;CSDN-PleaSure乐事 欢迎大家阅读我的博客 希望大家喜欢 使用环境&#xff1a;WebStorm 目录 问题概述 原因 解决方案 解决方法 潜在问题修改 最终效果呈现 额外内容 管理员界面路由配置 WebStorm背景更换 法一&#xff1a; 法二&#xff1a; 问题概…

[Joe3] 利用Halo后台注入功能定制Joe3主题页脚内容

1. 前言 如果你正使用Halo博客系统并选择了Joe3主题&#xff0c;你会发现其主题页脚设计非常丰富&#xff0c;也非常美观&#xff0c;可能也是我们选择Joe3的原因吧。但是每个人实际的需求是不同的&#xff0c;默认模板肯定不能都满足&#xff0c;你肯定也希望在页脚部分能有更…

CogVideo模型部署教程

一、 介绍 CogVideo 是一款在开源社区 GitHub 上备受瞩目的 AI 驱动视频生成解决方案&#xff0c;其核心技术依托于前沿的深度学习算法和模型架构。以下是对 CogVideo 的详细介绍&#xff1a; 1. 模型介绍 CogVideoX是 清影 同源的开源版本视频生成模型。 下表展示我们提供的…

【论文复现】基于深度学习的手势识别算法

本文所涉及所有资源均在这里可获取。 &#x1f4d5;作者简介&#xff1a;热爱跑步的恒川&#xff0c;致力于C/C、Java、Python等多编程语言&#xff0c;热爱跑步&#xff0c;喜爱音乐、摄影的一位博主。 &#x1f4d7;本文收录于论文复现系列&#xff0c;大家有兴趣的可以看一看…

云上拼团GO指南——腾讯云博客部署案例,双11欢乐GO

知孤云出岫-CSDN博客 目录 腾讯云双11活动介绍 一.双十一活动入口 二.活动亮点 &#xff08;一&#xff09;双十一上云拼团Go (二&#xff09;省钱攻略 &#xff08;三&#xff09;上云&#xff0c;多类型服务器供您选择 三.会员双十一冲榜活动 (一)活动内容 &#x…

跨境独立站新手,如何用DuoPlus云手机破局海外社媒引流?

独立站作为电商领域的一个重要组成部分&#xff0c;其发展在最近几年里确实令人瞩目&#xff0c;对于想要进入跨境赛道的新手卖家来说&#xff0c;手上握着有优势的货源&#xff0c;建立小型的DTC独立站确实会比入驻第三方平台具有更大的灵活性。本文将给跨境卖家们总结独立站和…

解决VMware和物理机网络不通问题(保姆式教学)

VMware配置网络打通虚拟机和物理机之间得网络通道&#xff0c;并通过xshell连接 配置网络VMware配置虚拟机配置物理机配置Xshell连接其他问题 配置网络 网络配置是通过NAT方式&#xff0c;只要物理机能上网&#xff0c;虚拟机就能上网 VMware配置 网络连接选择NAT方式&#x…

微服务系列三:微服务核心——网关路由

目录 前言 一、登录存在的问题归纳 二、*微服务网关整体方案 三、认识微服务网关 四、网关鉴权实现 五、OpenFeign微服务间用户标识信息传递实现 六、微服务网关知识追问巩固 实验环境说明 本文有部分地方需要实验进行。首先对于看过黑马微服务的同学应该会比较熟悉。…

在第三方公有云服务器上部署AS-V1000视频接入汇聚平台,请求视频出现黑屏的问题解决

目录 一.背景和问题描述 1.1平台介绍 1.2背景和问题描述 二.排查流程 2.1初步解析 2.2排查服务器防火墙 2.3排查平台模块 2.3.1排查sippgw模块 2.3.2排查mrrs模块 2.3.3排查平台公网设置 2.4排查安全组 三.问题解决过程和结果 3.1问题解决过程 3.2问题解决结果 一…

学习threejs,使用对象组合

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Object3D 三维物体 二…

从技术创新到商业应用,智象未来(HiDream.ai)创新不止步

在人工智能领域的最新动态中&#xff0c;智象未来&#xff08;HiDream.ai&#xff09;公司&#xff0c;作为全球领先的多模态生成式人工智能技术先驱&#xff0c;已经引起了广泛的行业瞩目。该公司专注于深度学习和计算机视觉技术的融合&#xff0c;致力于开发和优化视觉多模态…

数据血缘追踪是如何在ETL过程中发挥作用?

在大数据环境下&#xff0c;数据血缘追踪具有重要意义&#xff0c;它能够帮助用户了解数据的派生关系、变换过程和使用情况&#xff0c;进而提高数据的可信度和可操作性。通过数据血缘追踪&#xff0c;ETL用户可以准确追溯数据的来源&#xff0c;快速排查数据异常和问题。 一、…

八、Spring Boot集成Spring Security之前后分离认证最佳实现测试

文章目录 往期回顾&#xff1a;Spring Boot集成Spring Security专栏及各章节快捷入口前言一、正常流程测试1、登录接口测试2、业务接口测试3、登出接口测试 二、非正常流程测试1、输入错误用户名密码登录2、无请求头访问业务接口3、无效请求头访问业务接口4、登出时未携带有效请…