外星人入侵_计分

news2024/11/16 19:51:37

外星人入侵_计分

  • 1添加Play按钮
    • 1.1创建Button类
    • 1.2在屏幕上绘制按钮
    • 1.3开始游戏
    • 1.4 重置游戏
    • 1.5 将Play按钮切换到非活动状态
    • 1.6隐藏光标
  • 2提高等级
    • 2.1修改速度设置
    • 2.2重置速度
  • 3计分
    • 3.1显示得分
    • 3.2创建记分牌
    • 3.3在外星人被消灭时更新得分
    • 3.4将消灭的每个外星人的点数都计入得分
    • 3.5提高点数
    • 3.6将得分圆整
    • 3.7最高得分
    • 3.8显示等级
    • 3.9显示余下的飞船数

1添加Play按钮

当前游戏在玩家alien_invasion.py运行时就开始了,下面让游戏一开始处于非活动状态,并提示玩家单击play按钮开始游戏。
game_stats.py: 修改初始状态为非活跃状态

def __init__(self, ai_settings):
	self.game_active = False   #游戏刚启动处于非活跃状态

1.1创建Button类

button 按钮
Pygame中没有内置创建按钮的方法,这里创建一个Button类,用于创建带标签的是实心矩形。
button.py:

import pygame.font

class Button:

    def __init__(self, screen, ai_settings, msg):   #msg为需要渲染的文本形参
        """初始化按钮的属性"""
        self.screen = screen
        self.screen_rect = screen.get_rect()
        #self.ai_settings = ai_settings

        # 设置按钮的尺寸和其他属性
        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)   #指定只用默认字体,48号字体渲染文本

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

        # 按钮标签只需要创建一次
        self.prep_msg(msg)

调用prep_msg()处理渲染:
button.py:

    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   # 将其center属性设置为按钮的center属性

font.render(msg, True, self.text_color, self.button_color)将能存储在msg中的文本转换为图像,然后存储在msg_image中,并接受一个不二实参,该实参指定开启还是关闭反锯齿功能,余下两个实参分别时文本颜色和背景颜色。
最后使用方法draw_button()将按钮显示在屏幕上:

    def draw_button(self):
        """绘制一个用颜色填充的按钮,再绘制文本"""
        self.screen.fill(self.button_color, self.rect)   # 绘制按钮的举行
        self.screen.blit(self.msg_image, self.msg_image_rect)

1.2在屏幕上绘制按钮

直接在alien_incasion.py中创建Play按钮:

from button import Button

	# 创建Play按钮
    play_button = Button(screen, ai_setting, "Play")	

	while True:
		--snip--
		#更新屏幕上的图像,并切换到新屏幕
        gf.update_screen(ai_setting, screen, ship, bullets, aliens, play_button, stats)	
			

接下来在game_function.py中修改update_screen()以便在游戏处于非活跃状态时显示Play按钮:

def update_screen(ai_settings, screen, ship, bullets, aliens, play_button, stats):
	--snip--
	# 如果游戏处于非活跃状态,绘制Play按钮
    if stats.game_active == False:
        play_button.draw_button()
    # 让最近绘制的屏幕可见
    pygame.display.flip() 

在这里插入图片描述

1.3开始游戏

玩家单击Play按钮可以开始游戏,需要在game_function.py中添加如下代码:

def check_events(ai_settings, screen, ship, bullets, play_button, stats):
    """响应按键和鼠标事件"""
    for event in pygame.event.get():  # 所有键盘和鼠标事件都将促使for循环运行
    	--snip--
    	elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x, mouse_y = pygame.mouse.get_pos()
            check_play_button(play_button, mouse_x, mouse_y, stats)

def check_play_button(play_button, mouse_x, mouse_y, stats):
    """在玩家单击Play按钮时开启新游戏"""
    if play_button.rect.collidepoint(mouse_x, mouse_y):
        stats.game_active = True    

pygame.mouse.get_pos()方法返回一个元组,其中包含玩家单击鼠标时的x坐标和y坐标。
并在alien_invasion.py中调用check_events(),需要传递另外两个实参:play_button, stats

gf.check_events(ai_setting, screen, ship, bullets, play_button, stats)

1.4 重置游戏

为了在玩家每次单击Play按钮时都重置游戏,需要重置统计信息,删除现有的外星人和子弹,创建一群新的外星人,并让飞船居中,如下:
game_function.py:

def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship):
    """在玩家单击Play按钮时开启新游戏"""
    if play_button.rect.collidepoint(mouse_x, mouse_y):
        #重置游戏统计信息
        stats.reset_stats()
        stats.game_active = True

        # 清空外星人列表和子弹列表
        aliens.empty()
        bullets.empty()

        # 创建一群新外星人,并让飞船居中
        create_fleet(ai_settings, screen, aliens, ship)
        ship.center_ship()

那么,调用它的函数,实参也需要改:

def check_events(ai_settings, screen, ship, bullets, play_button, stats, aliens):
	--snip--
		elif event.type == pygame.MOUSEBUTTONDOWN:
            mouse_x, mouse_y = pygame.mouse.get_pos()
            check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship)

alien_invasion.py中调用check_events的实参也将改变

1.5 将Play按钮切换到非活动状态

当前,play按钮存在一个问题,那就是即便Play按钮不可见,玩家单击其原来的位置时,游戏依然会作出反应。
为修改这个问题,可让游戏仅在game_active为False时才开始。

def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship):
    """在玩家单击Play按钮时开启新游戏"""
    button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)  #单击的区域是否为button的区域
    if button_clicked and not stats.game_active:   #重要
        #重置游戏统计信息
        stats.reset_stats()
        stats.game_active = True

        # 清空外星人列表和子弹列表
        aliens.empty()
        bullets.empty()

        # 创建一群新外星人,并让飞船居中
        create_fleet(ai_settings, screen, aliens, ship)
        ship.center_ship()

1.6隐藏光标

为让玩家能够开始游戏,要让光标可见,但是游戏开始后,光标是会添乱。为修复这种问题,在处于活动时让光标不可见:

def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship):
    """在玩家单击Play按钮时开启新游戏"""
    button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)  #单击的区域是否为button的区域
    if button_clicked and not stats.game_active:
        #重置游戏统计信息
        pygame.mouse.set_visible(False)
        --snip--

游戏结束后,重新显示光标。

def ship_hit(stats, aliens, bullets, ai_settings, screen, ship):
    """响应被外星人撞到的飞船"""

    if stats.ships_left > 0:
        --snip--
    else:
        stats.game_active = False
        pygame.mouse.set_visible(True)

2提高等级

当前,整群外星人都消灭干净后,玩家将提高一个等级,且希望加快游戏的节奏,让游戏变得更难。

2.1修改速度设置

首先重新组织Settings类,将游戏设置为静态和动态两组。
settings.py

class Settings():
    """存储《外星人入侵》的所有设置的类"""

    def __init__(self):
        """初始化游戏的静态设置"""
        #屏幕设置
        self.screen_width = 1200  #屏幕宽1200
        self.screen_height = 600  #屏幕高600
        #self.bg_color = (0, 0, 255) #蓝色
        self.bg_color = (230, 230, 230)  # 浅灰色

        #飞船设置
        self.ship_limit = 3   # 飞船的个数限制为3

        #子弹设置
        self.bullet_width = 3
        # self.bullet_width = 300
        self.bullet_hight = 15
        self.bullet_color = 60, 60, 60
        self.bullet_allowed = 3         #允许子弹的最大数量
        # 外星人速度设置
        self.fleet_drop_speed = 10   #外星人撞到屏幕边缘时下降速度
        self.speedup_scale = 1.1

        self.initialize_dynamic_settings()

    def initialize_dynamic_settings(self):
        self.ship_speed_factor = 1.5  # 设置飞船速度为1.5
        self.bullet_speed_factor = 3
        self.alien_speed_factor = 0.5   #外星人左右移动的速度

        # fleet_direction为1表示向右移动,为-1表示向左移动
        self.fleet_direction = 1

提高速度设置:

    def increase_speed(self):
        """提高速度设置"""
        self.ship_speed_factor *= self.speedup_scale
        self.bullet_speed_factor *= self.speedup_scale
        self.alien_speed_factor *=self.speedup_scale

game_function.py中,当外星人被完全击落时,加快速度:

def check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship):
    # 检查是否有子弹击中外星人
    # 如果是这样,就删除相应的子弹和外星人
    collisions = pygame.sprite.groupcollide(bullets, aliens, False, True)
    if len(aliens) == 0:   #飞船胜利
        # 删除现有子弹并新建一群外星人
        bullets.empty()
        ai_settings.increase_speed()   #这里
        create_fleet(ai_settings, screen, aliens, ship)

2.2重置速度

在重新点击Paly按钮时,需要重置速度:
game_function.py:

def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship):
    """在玩家单击Play按钮时开启新游戏"""
    button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)  #单击的区域是否为button的区域
    if button_clicked and not stats.game_active:
        #重置游戏统计信息
        ai_settings.initialize_dynamic_settings()   #这里
        pygame.mouse.set_visible(False)   # 隐藏光标
        --snip--

3计分

实现计分系统,以实时地跟最玩家的得分,并显示最高得分,当前等级和余下的飞船数。
得分是游戏的一个统计信息,因此需要在GameStats中添加一个score属性:
game_ststs.py:

class GameStats():
    def reset_stats(self):
        """初始化在游戏运行期间可能变化的统计信息"""
        self.ships_left = self.ai_settings.ship_limit
        self.score = 0

3.1显示得分

为在屏幕上显示得分,首先创建一个新类Scoreboard,后面将使用他们显示最高得分,等级和余下的飞船数。
scoreboard.py

import pygame.font

class Scoreboard():
    """显示得分信息的类"""

    def __init__(self, screen, ai_settings, stats):
        """初始化显示得分涉及的属性"""
        self.screen = screen
        self.screen_rect = screen.get_rect()
        self.ai_settings = ai_settings
        self.stats = 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.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)

3.2创建记分牌

为显示得分,需要在alien_invasion.py中创建一个Scoreborad实例:

 # 创建记分牌
    sb = Scoreboard(ai_setting, stats)

这里报错了:
在这里插入图片描述
TypeError: init() missing 1 required positional argument: ‘stats’
显示缺少实参stats,但是我这里有stats,对比了一下Scoreboard类的初始化函数,发现缺少的是第一个形参screen的实参,补上就好了。

    # 创建记分牌
    sb = Scoreboard(screen, ai_setting, stats)

3.3在外星人被消灭时更新得分

首先在settings.py中更新玩家击落一个外星人将得到的点数:

    def initialize_dynamic_settings(self):
        --snip--
        self.alien_points = 50   #玩家击落一个外星人将得到的点数

当外星人被击落时,更新得分:
game_function.py:

def check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship, stats, sb):
    # 检查是否有子弹击中外星人
    # 如果是这样,就删除相应的子弹和外星人
    collisions = pygame.sprite.groupcollide(bullets, aliens, True, True)
    if collisions:  #这里
        stats.score += ai_settings.alien_points
        sb.prep_score()

并要修改调用此函数所需要传递的实参即game_function.py中的:

def update_bullets(ai_settings, screen, ship, bullets, aliens, stats, sb):
    bullets.update()
    # 更新子弹的位置,并删除已经消失的子弹
    for bullet in bullets.copy():
        if bullet.rect.bottom <= 0:
            bullets.remove(bullet)
        # 检查是否有子弹击中外星人并处理
        check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship, stats, sb)

alien_invasion.py中的:

gf.update_bullets(ai_setting, screen, ship, bullets, aliens, stats, sb)

现在运行程序,得分将不断增加。
在这里插入图片描述

3.4将消灭的每个外星人的点数都计入得分

上面的代码可能遗漏了一些被消灭的外星人,例如一次循环中两个子弹射中了外星人或者因为子弹更宽而同时击中了外星人,玩家只能得到一个被消灭的外星人的点数。未修复此问题,调整检测子弹和外星人的碰撞方式。
check_bullet_alien_collisions()中,与外星人碰撞的子弹都是字典collisions中的一个键,而与每颗子弹相关的值都是一个列表,其中包含该子弹撞到的外星人。这里遍历字典collisions,确保消灭的每一个外星人点数都记入得分:

def check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship, stats, sb):
    # 检查是否有子弹击中外星人
    # 如果是这样,就删除相应的子弹和外星人
    collisions = pygame.sprite.groupcollide(bullets, aliens, False, True)
    if collisions:
        for aliens in collisions.values():    #只运行了一次
            stats.score += ai_settings.alien_points * len(aliens)
            sb.prep_score()

for aliens in collisions.values()中使用len(aliens)表示看每个键中值的数量,刚开始不明白为什么只运行了一次,然后我写了一个test检测字典中value()到底输出啥:

dir = { '1':['1', '2', '3'],
        '2': '1'
        }
for value in dir.values():
    print(len(value))

结果:
在这里插入图片描述
输出结果为:第一个键值对里面的键中有3个值,第二个键中只有一个值。
而外星人入侵程序中collisions字典中本次检测只有一个子弹即一个键,因此for循环只执行了一次。

3.5提高点数

玩家每提高一个等级,游戏就变得更难,因此需要击中外星人的点数相应变高。
settintgs.py:

class Settings():
    def initialize_dynamic_settings(self):
        self.ship_speed_factor = 1.5  # 设置飞船速度为1.5
        self.bullet_speed_factor = 3
        self.alien_speed_factor = 0.5   #外星人左右移动的速度
        self.alien_points = 50   #玩家击落一个外星人将得到的点数

        # fleet_direction为1表示向右移动,为-1表示向左移动
        self.fleet_direction = 1

    def increase_speed(self):
        """提高速度设置"""
        self.ship_speed_factor *= self.speedup_scale
        self.bullet_speed_factor *= self.speedup_scale
        self.alien_speed_factor *=self.speedup_scale
        self.alien_points = int(self.score_scale * self.alien_points)   #这里
        print(self.alien_points)  #查看是否每次升级的时候点数都会提高

在这里插入图片描述
在每次升级后,点数都会增加。

3.6将得分圆整

大多接机风格的游戏都将得分显示为10的整数倍。本程序也将遵循此原则:
Scoreboard类中执行者这种修改:

class Scoreboard():
    def prep_score(self):
        """将得分转换为一副渲染的图像"""
        rounded_score = int(round(self.stats.score, -1))
        score_str = "{:,}".format(rounded_score)

函数round()通常让小数精确到小数点后多少位,其中小数位数是由第二个实参指定的。本程序第二个实参为负数,round()将远征到最近的10,100,1000等倍数,
"{:,}".format(rounded_score)是一个字符串格式设置指令,他让Python将数值转换为字符串时在其中插入逗号,例如,输出10,000而不是10000,使得最后得分为整洁得分。
在这里插入图片描述

3.7最高得分

最高分纪录将一直存在且不会重置。
因此,在GameStats类中将high_score初始化在__init__函数中。

class GameStats():
    """跟踪游戏的统计信息"""
    def __init__(self, ai_settings):
        """初始化统计信息"""
        self.ai_settings = ai_settings
        self.reset_stats()
        self.game_active = False   #游戏刚启动处于非活跃状态
        self.high_score = 0

    def reset_stats(self):
        """初始化在游戏运行期间可能变化的统计信息"""
        self.ships_left = self.ai_settings.ship_limit
        self.score = 0

接下来修改Scoreboard的最高得分:

class Scoreboard():
    """显示得分信息的类"""
    def __init__(self, screen, ai_settings, stats):   
    --snip-- 
        # 准备初始得分图像与最高得分图像
        self.prep_score()
        self.prep_high_score()

    def __init__(self, screen, ai_settings, stats):
    def prep_high_score(self):
        """将最高分渲染为图像"""
        high_score = int(round(self.stats.high_score, -1))
        high_score_str = "{:,}".format(high_score)
        self.high_score_image = self.font.render(high_score_str, True, self.text_color)

        # 将最高得分放在屏幕上面中央
        self.high_score_rect = self.high_score_image.get_rect()
        self.high_score_rect.centerx = self.screen_rect.centerx
        self.high_score_rect.top = 20

    def show_score(self):
        """在屏幕上显示得分"""
        self.screen.blit(self.score_image, self.score_rect)
        self.screen.blit(self.high_score_image, self.high_score_rect)

接下来在game_function.py中检查是否产生最高分:

def check_high_score(stats, sb):
    if stats.score > stats.high_score:
        stats.high_score = stats.score
        sb.prep_high_score()

调用:

def check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship, stats, sb):
    # 检查是否有子弹击中外星人
    # 如果是这样,就删除相应的子弹和外星人
    collisions = pygame.sprite.groupcollide(bullets, aliens, False, True)
    if collisions:
        for aliens in collisions.values():    #只运行了一次
            stats.score += ai_settings.alien_points * len(aliens)
            sb.prep_score()
            check_high_score(stats, sb)

在这里插入图片描述

3.8显示等级

为在游戏中显示等级,首先在GameStats中添加一个当前等级的属性。

    def reset_stats(self):
        """初始化在游戏运行期间可能变化的统计信息"""
        self.ships_left = self.ai_settings.ship_limit
        self.score = 0
        self.level = 1

并在scoreboard.py中调用新方法prep_level():

    def __init__(self, screen, ai_settings, stats):
        

        # 准备初始得分图像与最高得分图像
        self.prep_score()
        self.prep_high_score()
        self.prep_level()
        
    def prep_level(self):
        """将等级渲染为图像"""
        self.level = "当前等级" + str(self.stats.level)
        self.level_image = self.font.render(self.level, True, self.text_color, self.ai_settings.bg_color)
        # 将等级放在屏幕下方
        self.level_rect = self.level_image.get_rect()
        self.level_rect.right = self.screen_rect.right - 20
        self.level_rect.top = self.score_rect.bottom + 10
    def show_score(self):
        """在屏幕上显示得分"""
        self.screen.blit(self.score_image, self.score_rect)
        self.screen.blit(self.high_score_image, self.high_score_rect)
        self.screen.blit(self.level_image, self.level_rect)
        
    def show_score(self):
        """在屏幕上显示得分"""
        self.screen.blit(self.score_image, self.score_rect)
        self.screen.blit(self.high_score_image, self.high_score_rect)
        self.screen.blit(self.level_image, self.level_rect)

game_function.py中的check_bullet_alien_collisions()方法中提高等级,并更新等级图像。

def check_bullet_alien_collisions(bullets, aliens, ai_settings, screen, ship, stats, sb):
    --snip-- 
    if len(aliens) == 0:   #飞船胜利
        # 删除现有子弹并新建一群外星人
        bullets.empty()
        ai_settings.increase_speed()

        # 整群外星人被打灭,则等级加1
        stats.level += 1
        sb.prep_level()

为确保新游戏开始时更新计分和等级图像,在按钮Play单击时触发重置:

def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship, sb):
    """在玩家单击Play按钮时开启新游戏"""
    button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)  #单击的区域是否为button的区域
    if button_clicked and not stats.game_active:
        #重置游戏统计信息
        ai_settings.initialize_dynamic_settings()
        pygame.mouse.set_visible(False)   # 隐藏光标
        stats.reset_stats()    #重新生成一些动态的统计信息
        stats.game_active = True

        # 重置记分牌图像   在重新
        sb.prep_level()
        sb.prep_score()
        sb.prep_high_score

并在调用此函数的各个函数更新实参的传递。

3.9显示余下的飞船数

以图形的方式在左上角显示余下的飞船数:
首先让Ship继承Sprite:

import pygame
from pygame.sprite import Sprite

class Ship(Sprite):
    def __init__(self, ai_settings, screen):
        """初始化飞船并设置其初始位置"""
        super().__init__()

接下来,修改Scoreboard,在其中创建一个可以提供显示的飞船编组:

import pygame.font
from pygame.sprite import Group
from ship import Ship
class Scoreboard():
    """显示得分信息的类"""

    def __init__(self, screen, ai_settings, stats):
        self.prep_ships()
    def prep_ships(self):
        """显示还有多少飞船"""
        self.ships = Group()
        for ship_number in range(self.stats.ships_left):
            ship = Ship(self.ai_settings, self.screen)
            ship.rect.x = 10 + ship_number * ship.rect.width
            ship.rect.y = 10
            self.ships.add(ship)       
    def show_score(self):     
    	self.ships.draw(self.screen)

game_function.py中,按下Play按钮和击中飞船时都需要重置绘制飞船的函数:

def ship_hit(stats, aliens, bullets, ai_settings, screen, ship, sb):
    """响应被外星人撞到的飞船"""

    if stats.ships_left > 0:
        # 将ship_left-1
        stats.ships_left -= 1
        #更新ships绘制
        sb.prep_ships()
def check_play_button(play_button, mouse_x, mouse_y, stats, aliens, bullets, ai_settings, screen, ship, sb):
    """在玩家单击Play按钮时开启新游戏"""
    button_clicked = play_button.rect.collidepoint(mouse_x, mouse_y)  #单击的区域是否为button的区域
    if button_clicked and not stats.game_active:
        #重置游戏统计信息
        ai_settings.initialize_dynamic_settings()
        pygame.mouse.set_visible(False)   # 隐藏光标
        stats.reset_stats()    #重新生成一些动态的统计信息
        stats.game_active = True

        # 重置记分牌图像
        sb.prep_level()
        sb.prep_score()
        sb.prep_high_score()
        sb.prep_ships()

最后在调用这两个函数的函数中更新他们的实参。
最终显示完整的计分系统,左上角显示了余下多少搜飞船。
在这里插入图片描述

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

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

相关文章

Linux:shell命令

Linux&#xff1a;shell命令 Shell echo命令 显示普通字符串 echo "i am wsf"显示转义字符 echo "i\" am usf"显示变量 read name#相当于python中的input echo "${name} is a name"read -p "请输入您的名字&#xff1a;" names#提…

怎么用U盘重装系统

在使用电脑的过程中&#xff0c;难免会遇到系统故障、运行缓慢等问题。当这些问题严重影响使用电脑的体验时&#xff0c;重装系统往往是一个有效的解决办法。用U盘重装系统是一种简单快捷的方法&#xff0c;本文将详细介绍如何使用U盘来重装系统&#xff0c;帮助大家轻松完成这…

推荐|代码签名证书怎么选?EV还是OV?

代码签名证书支持给.exe&#xff0c;.cab&#xff0c;.dll&#xff0c;.ocx&#xff0c;.msi&#xff0c;.xpi&#xff0c;.xap 等软件、控件进行数字签名!在选择代码签名证书时&#xff0c;EV和OV是两种常见的选择。这两种证书都用于对软件或应用程序进行数字签名。应该如何选…

在线短剧APP开发,短剧市场的新赛道新盈利

近几年中&#xff0c;短剧行业规模飞速上涨&#xff0c;越来越多的入局者开始进入市场&#xff0c;随着短剧市场的不断升温&#xff0c;也衍生出了短剧APP&#xff0c;为行业的发展带来了新的赛道&#xff01; 短剧APP的出现为观众提供了一个专属的短剧“港湾”&#xff0c;让…

探索智慧园区的创新实践与未来展望

智慧园区是指运用物联网、大数据、云计算、人工智能等新一代信息技术&#xff0c;对园区进行全方位、全时段的智能化改造&#xff0c;实现管理高效、服务便捷、环境友好、创新驱动的现代化园区形态。其核心理念在于通过技术赋能&#xff0c;优化资源配置&#xff0c;提升园区运…

基于MT76X8平台的Mtk-openwrt-sdk配置单网口方法

一、配置. 在SDK的工程下&#xff0c;运行make kernel_menuconfig&#xff0c;如下图所示&#xff1a; Ralink Module --->选上“One Port Only”&#xff0c;如下图所示&#xff1a; 如果P0网口实现WAN口&#xff0c;就配置成W/LLLL,否则就配置成LLLL/W. 二、修改网口的…

Camera Raw 修图简明教程

Adobe Camera Raw&#xff08;简称为 ACR &#xff09;是 Adobe 开发的一款强大插件&#xff0c;专为处理和编辑相机原始文件&#xff08;Raw 格式&#xff09;而设计&#xff0c;旨在帮助摄影师和图像编辑人员实现高质量的转码和图像处理。 如果想用 Camera Raw 处理 JPEG、TI…

使用C++和Mysql进行图像存取操作记录

使用C和Mysql进行图像存取操作记录 配置&#xff1a; 1.Mysql 5.5.19 2.Vs2019 3.C 一、创建图像存储表格 选择数据库指令&#xff1a; 将databasename改成你想操作的数据库就行。我这边依旧在student_manager数据库下进行操作。 use databasename;CREATE TABLE images(im…

知迪动态丨北斗智联领导团队莅临知迪科技上海研发中心

7月29日&#xff0c;北斗智联领导团队来到知迪科技参观考察。知迪科技总裁周强先生率公司管理层与技术代表热情接待。 北斗智联一行在知迪科技公司团队的陪同下&#xff0c;首先观摩了在技术展示区陈列的车辆数据记录设备、总线信号分析及仿真设备、ADAS HiL测试台架、测试自动…

【PostGresql】---- pgSql 将列中合并字符串拆分为多行 实例代码

-- 将 AQY_ID,AQY 中的字符串拆分为多行 SELECT"ID","AQY_ID","AQY",UNNEST ( string_to_array( "AQY_ID", , ) ) AS "AQY_ID_1",UNNEST ( string_to_array( "AQY", , ) ) AS "AQY_1" FROM"JF_SGC…

科目一考试题库(超全)!7分钟一把过科目一(总结经验)

1、先看视频 先了解考试规范、流程以及重要的考点难点&#xff0c;做到心中有数&#xff0c;大部分人觉得重难点在扣分题和罚款题上面&#xff0c;可以在网上看一些视频讲解&#xff0c;1.5倍速快速过一遍看的过程中记录一些笔记&#xff0c;可以随便看的而且真滴有用 2、认真刷…

教你如何从Flink小白成为Contributor最终拿到腾讯的Offer

简言&#xff1a;一开始我也是怀揣着成为一个技术大老的梦想开始的&#xff0c;尽管我现在已经入职腾讯三年多了有时候觉得自己还是一个菜鸡哈..... 写这个文章希望可以帮助到刚刚接触大数据&#xff0c;并且对技术怀揣着梦想的朋友们&#xff0c;大家互相学习哈(对Flink不是很…

成都云飞浩容文化传媒有限公司领航电商新纪元

在数字经济浪潮汹涌的今天&#xff0c;电商行业作为时代的弄潮儿&#xff0c;正以前所未有的速度改变着商业版图。成都&#xff0c;这座历史悠久而又充满活力的城市&#xff0c;正孕育着一家在电商服务领域独树一帜的企业——成都云飞浩容文化传媒有限公司。作为一家深耕电商服…

Linux系统编程(4):消息队列

Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。 而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室 以及 BSD&#xff08;加州大学伯克利分校的伯克利软件发布中心&#xff09;&#xff0c; 他们在进程间通信方面的侧重点有所不同&#xff1b; 前…

歌唱比赛活动策划方案书

&#xff08;一&#xff09;海选 1、时间&#xff1a;12月16日 2、地点&#xff1a;公司食堂 3、比赛评委设置&#xff1a;共计6名评委。 4、比赛规则&#xff1a; &#xff08;1&#xff09;选手按报名顺序及上报歌曲进行清唱&#xff08;限时2分钟&#xff0c;类型…

时间序列分析方法之 -- 指数平滑(Exponential Smoothing)原理及Python代码示例

目录 原理 适用情况 Python 示例代码 结论 原理 指数平滑&#xff08;Exponential Smoothing&#xff09;是一种用于时间序列分析和预测的平滑技术。与简单移动平均&#xff08;SMA&#xff09;和加权移动平均&#xff08;WMA&#xff09;不同&#xff0c;指数平滑通过对最…

手势传感器 - 从零开始认识各种传感器【第十八期】

手势传感器|从零开始认识各种传感器 1、什么是手势传感器 手势传感器是一种能够感知人类手势或动作的传感器。它可以捕捉、识别和解释人类的手部动作或姿势&#xff0c;并将其转换成电信号或数字信号&#xff0c;通过识别人体的手势动作来实现与电子设备的交互&#xff0c;如控…

Traefik系列

一、入门Traefik系列——基础简介 官方文档 https://doc.traefik.io/traefik/[1] 简介 Traefik是一个为了让部署微服务更加便捷而诞生的现代HTTP反向代理、负载均衡工具。它支持多种后台 (Docker, Swarm, Kubernetes, Marathon, Mesos, Consul, Etcd, Zookeeper, BoltDB, Re…

运算放大器电路

一、电路符号 V 、V - 是电源输入。 二、输出特性图 A是运放的固有参数&#xff0c;非常大&#xff0c;可以达到几十万。 四、电压跟随电路 五、负反馈电路 在负反馈电路中&#xff0c;Vn Vp&#xff0c;运算放大器的所有神奇操作都是基于负反馈电路和输出特性曲线&#xff01…