unity学习62,尝试做第一个小游戏项目:flappy bird

目录

学习参考

1 创建1个unity 2D项目

1.1 2D项目模板选择

1.1.1 2D(built-in-Render pipeline)

1.1.2  universe 2D

1.1.3 这次选择  2D(built-in-Render pipeline)

1.2 创建项目

1.2.1 注意点

1.2.2 如果想修改项目名

2 导入美术资源包

2.1 下载一个flappy bird的资源包

2.2 导入资源包

2.3 记得把UNITY视图修改为经典的2*3模式

2.4 先把界面整理成熟悉的2*3,然后开始整

2.5 还要把项目 设置修改为安卓,因为是手机游戏

3 开始整:基础调整准备

3.1 先新建1个 288*512的屏幕分辨率

3.2 图片UI素材太大的问题

3.3 修改摄像机size,而不是素材尺寸

4 地图背景bg

4.1 创建第2个bg,复制即可

4.2 更科学的修改方法

4.3 尝试间接计算bg的像素大小

​编辑

4.4 关于3D和2D的最标准,新手要记住

4.5 创建1个空物体bg

5 创建地图背景bg脚本

5.1 脚本文件夹

5.2 给bg空物体挂一个脚本,实现bg自动滚动

5.3 脚本内容

5.4 把bg的 order in layer修改为很小的数,放在最底层,避免遮挡前面的内容

6 地面 ground

6.1 修改地面ground的配置

6.2  共用bg的脚本,只修改公共变量

6.3 记得营造视觉差效果

6.4 给地面增加碰撞

7 管子pipe

7.1 新建空物体和up down的pipe

7.2 调整layer的order, 让ground 显示在的pipe上层

7.3 给pipe增加碰撞

7.4 给空的父物体,增加一个 collider 2D, 并修改为触发器

8 小鸟bird

8.1 创建小鸟动画

8.2 给小鸟增加碰撞 和刚体,控制小鸟往下掉

8.3 脚本控制小鸟向上飞

9 控制小鸟的头的朝向

9.1 注意unity里的欧拉角

9.2 修改脚本

10 管道pipe

10.1 创建pipe

10.2 每个地面ground 挂一个管道,作为地面ground的子物体

10.3 增加pipe脚本

10.4 把pipeUp  pipeDown的collider都弄到空的父物体身上

10.4.1 一个小BUG插曲和解决

10.5 小鸟过 pipe的计分脚本

11 让管道pipe 高度,生成前高度随机

11.1 让管道pipe 高度,生成前高度随机

11.2 设置修改

11.2.1 增加一个 标志开关

11.2.2 bg移动更换脚本时,需要生成随机高度的新pipe

11.2.3  增加一个随机调整高度的函数

11.3 脚本

11.3.1 bgControl.cs

11.3.2 pipeControl.cs


学习参考

Unity小白超神系列教程:Flappy Bird_哔哩哔哩_bilibili素材加公众号免费下载, 视频播放量 16589、弹幕量 19、点赞数 221、投硬币枚数 129、收藏人数 549、转发人数 135, 视频作者 Gamer飞羽, 作者简介 玩游戏、做游戏的up一枚,《新印象 Unity 2020游戏开发基础与实战》与《新印象:Unity游戏开发实例教程》作者。,相关视频:Unity制作飞扬的小鸟小游戏视频教程,【Unity 游戏开发教程】一小时制作一款小游戏 - 03. 愤怒的小鸟,Unity小游戏【吃豆人】-自己做的游戏作业,简单易懂,一小时使用Unity制作一个2D小游戏|基于Unity2023.1.1|游戏开发|Unity|编程|游戏制作|入门教程,Unity小白超神系列教程:超级玛丽,【灯塔极简教程】20分钟用Unity做一个滚球跑酷游戏,Unity小游戏【贪吃金币】-自己做的游戏作业,简单易懂,【Unity基础教程】入门游戏制作,十分钟搞定涂鸦跳跃2D游戏,愤怒的小鸟开发-基于Unity2023-2D小白教程-游戏开发|编程|unity3d|u3d|unity基础|手游开发|C#编程|虚幻游戏开发,Unity小游戏《FlappyBird》从演示到发布 零基础最全教程(Unity/C#/零基础/游戏制作/游戏开发/编程)B0102https://www.bilibili.com/video/BV1Sb411N7DQ?spm_id_from=333.788.videopod.sections&vd_source=5fa6d2958ae880d9550a17f8050fd5ed

2_按钮单击效果与场景切换_哔哩哔哩_bilibili2_按钮单击效果与场景切换是Unity制作飞扬的小鸟小游戏视频教程的第2集视频,该合集共计9集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bilibili.com/video/BV1GV411a7Mc?spm_id_from=333.788.player.switch&vd_source=5fa6d2958ae880d9550a17f8050fd5ed&p=2

1 创建1个unity 2D项目

1.1 2D项目模板选择

1.1.1 2D(built-in-Render pipeline)

This is an empty project configured for 2D apps. It uses Unity's built-in renderer.
这是一个为2D应用程序配置的空项目。它使用Unity的内置渲染器。

1.1.2  universe 2D

This is an empty project configured for 2D apps. It uses Unity’s Universal Render Pipeline pre-configured with 2D Renderer.

这是一个为2D应用程序配置的空项目。它使用预先配置了2D渲染器的Unity通用渲染管道。

1.1.3 这次选择  2D(built-in-Render pipeline)

因为之前3D项目也是选择 universe 3D ,结果在asset store里下载的资源是紫色贴图报错

怀疑是不是轻量级的和大多数人的项目不匹配,这次用传统的这个2D(built-in-Render pipeline)

1.2 创建项目

1.2.1 注意点

  • 注意,创建前,记得修改项目名
  • 否则比较麻烦

1.2.2 如果想修改项目名

  • 如果想修改项目名
  • 右键,show in exolporer /浏览器中打开
  • 修改项目文件夹的名字
  • 然后unityhub里就找不到了
  • 需要重新再打开就可以了

2 导入美术资源包

2.1 下载一个flappy bird的资源包

  • 其实没有也可以,就是自己做,对于没美术基础的比较麻烦,比如我
  • 可以先丑一点
  • 我之后打算替代掉这些资源

2.2 导入资源包

  • 双击unity资源包,即可import
  • 点击import

2.3 记得把UNITY视图修改为经典的2*3模式

主要跟着各种视频,文章都是这么学的,习惯了

换个格式看的难受

2.4 先把界面整理成熟悉的2*3,然后开始整

舒服了开始整

2.5 还要把项目 设置修改为安卓,因为是手机游戏

一般不修改默认是windows

切换完毕

3 开始整:基础调整准备

3.1 先新建1个 288*512的屏幕分辨率

  • 好像原游戏的地图分辨率,屏幕图就这么大
  • 需要再下面的game窗口,新建这么一个

3.2 图片UI素材太大的问题

  • 没搞明白,为啥这个bg这么大
  • 可能是因为导入的素材包里是别人已经设置过的UI,而不是原图吧?
  • 而且我看不到图片的原始尺寸??比如288*512
  • 管他呢,先改

3.3 修改摄像机size,而不是素材尺寸

  • 修改摄像机size,而不是素材尺寸
  • 这样可以避免,后面每个资源都要修改,
  • 只需要修改摄像机1次,去适配资源即可
  • 拖到摄像机的白色控制点,但是好像只能 按照摄像机的宽高比一起调整,不能自由调整。

4 地图背景bg

4.1 创建第2个bg,复制即可

  • 且保证2个bg的y是一致的,就是 transform里的y要一致

4.2 更科学的修改方法

  • 是知道图片的尺寸
  • 按照1米=100pixel来换算
  • 图片是按像素,比如288*512,而unity里是填写米
  • 然后把bg2,也和bg叠在一起,也就是,重置 transform为000,然后把X修改为288/100=2.88即可刚好两张平铺错开

4.3 尝试间接计算bg的像素大小

  • 上下叠一张,左右叠一张
  • 虽然都是看 pviot之间的距离,实际也就是图片的大小

  • 而这个资源上写的16比
  • 换算下来 23.2*16=371.2像素
  • 换算下来 23.2*16=533.6像素
  • 和我现在用的288*512 还是有些区别的

后来发现,双击UI里图片可以看到实际大小 378*537

4.4 关于3D和2D的最标准,新手要记住

unity里默认的

3D的是 水平平面(X right ,Z  front),Y up 纵 ---立体

2D的是 竖直平面  (X  horizontal,Y vectical 纵 )

4.5 创建1个空物体bg

把之前的bg图,分别改名bg1 bg2放入其作为子物体

5 创建地图背景bg脚本

5.1 脚本文件夹

这里出现了很诡异的问题

不让我在unity里创建c#脚本,每次创建都一闪而过

气得我差点准备删了重建

我后来想,可能是导入资源包做了点手脚限制了

我干脆绕了过去。直接在 windows对于的assets里创建脚本是OK的

5.2 给bg空物体挂一个脚本,实现bg自动滚动

5.3 脚本内容

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class bgControl : MonoBehaviour
{//bg移动速度,方便外面修改public float speed1=0.2f;//use this for initialization;void Start(){}//Update is called once per frame;void Update(){//遍历bgforeach(Transform trans1 in transform){//移动bgVector2 v1=trans1.position;v1.x=v1.x+speed1*Time.deltaTime;trans1.position=v1;}}    }

实测OK,但是动的特别慢,因为是远景的原因 

  • 速度的原因,怀疑是因为这里是按16:1的像素/米,得搞快点
  • 往右移动,是+
  • 可以修改为往左边移动,更符合一般视角感觉,修改为-

修改

  • 如100:1是速度0.2,16:1 速度为1.25,
  • 同时改成向左移动试试
  • 而且,因为 speed1是public 变量,unity脚本外面修改得优先级高,只改脚本不生效,外面还是0.2f,记得修改unity里的speed1得值。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class bgControl : MonoBehaviour
{//bg移动速度,方便外面修改public float speed1=1.25f;//use this for initialization;void Start(){}//Update is called once per frame;void Update(){//遍历bgforeach(Transform trans1 in transform){//移动bgVector2 v1=trans1.position;v1.x=v1.x-speed1*Time.deltaTime;trans1.position=v1;}}    }

bg移动速度

那如果把宽度严格得定义为23.625,还有2个匹配修改

  • bg1本身图片是左边和右边是刚好可以相接的
  • bg2 距离bg1,也就是bg2的x 也要刚好是23.625,否则会有缝隙或叠加
  • 现在bg可以无缝的向左边后退滚动了

5.4 把bg的 order in layer修改为很小的数,放在最底层,避免遮挡前面的内容

6 地面 ground

同样新建空物体,建2个ground

6.1 修改地面ground的配置

  • 地面应该是336*112
  • 但是这里的是 800*392

把ground的scale 调整为 0.6x 0.4y差不多

让2个ground相距离X为30

其中一个x=-3。 另外一个x=27

6.2  共用bg的脚本,只修改公共变量

  • bg的脚本继续挂载ground空物体上
  • 修改参数
  • 实测🆗

6.3 记得营造视觉差效果

  • 也就是地面移动速度快,近景
  • 城市移动速度慢,远景

6.4 给地面增加碰撞

7 管子pipe

7.1 新建空物体和up down的pipe

  • 并且设置到00后调整空缺位置

7.2 调整layer的order, 让ground 显示在的pipe上层

  • 让ground 显示在的pipe上层
  • ground的order更高即可

7.3 给pipe增加碰撞

  • 新增 collider 2D

7.4 给空的父物体,增加一个 collider 2D, 并修改为触发器

这样没有碰撞,但是会有触发判断

且弄到后半段

8 小鸟bird

8.1 创建小鸟动画

多个图片一起拖过去

8.2 给小鸟增加碰撞 和刚体,控制小鸟往下掉

限制小鸟自己Z轴移动,就是X,Y 之外的翻滚,滚动

8.3 脚本控制小鸟向上飞

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class birdControl : MonoBehaviour
{//以下都是按1/16算的//外界给小鸟向上飞得外力public float force1=10f;//定义一个新刚体public Rigidbody2D rbody1;//use this for initialization;void Start(){//  获取小鸟得刚体rbody1=GetComponent<Rigidbody2D>();}//Update is called once per frame;void Update(){//判断点击则给小鸟向上  0左,1右键,2鼠标中键if(Input.GetMouseButtonDown(0)){rbody1.velocity=new Vector2(0,force1);}}    }

9 控制小鸟的头的朝向

9.1 注意unity里的欧拉角

unity里是用的0-360度,都是正数的角度

但是unity外面面板上填的不是,是正数和负数

9.2 修改脚本

增加头部转向

限制角度

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class birdControl : MonoBehaviour
{//以下都是按1/16算的//外界给小鸟向上飞得外力public float force1=10f;//定义一个新刚体public Rigidbody2D rbody1;//定义一个最大角度public float maxAngle=40;    //use this for initialization;void Start(){//  获取小鸟得刚体rbody1=GetComponent<Rigidbody2D>();}//Update is called once per frame;void Update(){//判断点击则给小鸟向上  0左,1右键,2鼠标中键if(Input.GetMouseButtonDown(0)){rbody1.velocity=new Vector2(0,force1);}//获取当前的角度.Z表示旋转Vector3 angle1 =transform.eulerAngles;//旋转//只给Y轴的,不给X轴的?angle1.z=angle1.z+rbody1.velocity.y;//将旋转Z同步面板上的值,如果不做这个可以直接用360角度去做也可以angle1.z=angle1.z-180;if(angle1.z>0){angle1.z=angle1.z-180;}else{angle1.z=angle1.z+180;}Debug.Log(angle1.z);//限制翻转angle1.z=Mathf.Clamp(angle1.z,-maxAngle,+maxAngle);transform.eulerAngles=angle1;}    }

10 管道pipe

10.1 创建pipe

  • 同样是空物体下挂实际的图片,这里创建一个pipe空物体
  • 下面分别挂2个,一个pipe up  一个pipe down

10.2 每个地面ground 挂一个管道,作为地面ground的子物体

10.3 增加pipe脚本

  • 增加pipe脚本
  • 并且挂在pipe上

10.4 把pipeUp  pipeDown的collider都弄到空的父物体身上

  • 把pipeUp  pipeDown的collider都弄到空的父物体身上,相当于它有3个碰撞盒
  • 使用 copy component
  • 然后 paste component as new
  • 然后因为父物体身上有3个碰撞盒,需要再调整3个盒子的高度,和图片相匹配
  • 这里是+19.5 和 -19.25
  • 然后还要把子物体上自身的collider给勾选掉

10.4.1 一个小BUG插曲和解决

  • 如果在管道上挂了2个相同的脚本,这个管道会运行2次脚本,比如计分就会加2次。
  • 要小心
  • 出现了去查查可以从这个角度看看

10.5 小鸟过 pipe的计分脚本

实测可以加分

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class pipeControl : MonoBehaviour
{//最好搞UI上显示static int score1;//use this for initialization;void Start(){}//Update is called once per frame;void Update(){}    //把pipe up down的碰撞都挪到空的父物体身上?脚本更好写?private void OnCollisionEnter2D(Collision2D Collision) //中间不要加逗号{//小鸟失败}private void OnTriggerEnter2D(Collider2D Collision)  //中间不要加逗号{//增加分数score1++;Debug.Log(score1);} }

11 让管道pipe 高度,生成前高度随机

11.1 让管道pipe 高度,生成前高度随机

  • 也有的游戏做成管道一直在动
  • 这里还是做出简单的,管道生成后就不变化了,生成前变化

11.2 设置修改

11.2.1 增加一个 标志开关

  • 增加一个 标志开关,是否需要 reset pipe height。这样可以在外面勾选
  • 因为bgcontrol 是bg 和 ground 共用,不能2边都影响pipe

11.2.2 bg移动更换脚本时,需要生成随机高度的新pipe

//bgControl.cs里需要添加如下内容

//在这个时机

      if(v1.x<-width1)

            {

                v1.x=v1.x+width1*2;

                //重置高度

                if(resetPipeHeight)

                {

                    pipeControl pipe=trans1.GetComponentInChildren<pipeControl>();

                    pipe.ResetHeight();

                }

            }

11.2.3  增加一个随机调整高度的函数

  • 而且是在父物体上,整体调整高度
  • 这样,即使缺口永远一样大
  • 但是2个管子,组成的整体会高低不同

    public void ResetHeight()

    {

        Vector2 v1=transform.localPosition;

        v1.y=Random.Range(25f,45f);

        transform.localPosition=v1;

    }

11.3 脚本

实测OK

11.3.1 bgControl.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class bgControl : MonoBehaviour
{//以下都是按1/16算的//bg移动速度,方便外面修改public float speed1=1.25f;//bg宽度public float width1=23f;public bool resetPipeHeight=false;//use this for initialization;void Start(){}//Update is called once per frame;void Update(){//遍历bgforeach(Transform trans1 in transform){//移动bgVector2 v1=trans1.position;v1.x=v1.x-speed1*Time.deltaTime;//如果需要切换到新位置if(v1.x<-width1){v1.x=v1.x+width1*2;//重置高度if(resetPipeHeight){pipeControl pipe=trans1.GetComponentInChildren<pipeControl>();pipe.ResetHeight();}}trans1.position=v1;}}    }

11.3.2 pipeControl.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class pipeControl : MonoBehaviour
{//最好搞UI上显示static int score1;//use this for initialization;void Start(){}//Update is called once per frame;void Update(){}    //把pipe up down的碰撞都挪到空的父物体身上?脚本更好写?private void OnCollisionEnter2D(Collision2D Collision) //中间不要加逗号{//小鸟失败}private void OnTriggerEnter2D(Collider2D Collision)  //中间不要加逗号{//增加分数score1++;Debug.Log(score1);} public void ResetHeight(){Vector2 v1=transform.localPosition;v1.y=Random.Range(25f,45f);transform.localPosition=v1;}}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于Matlab的多目标粒子群优化

在复杂系统的设计、决策与优化问题中&#xff0c;常常需要同时兼顾多个相互冲突的目标&#xff0c;多目标粒子群优化&#xff08;MOPSO&#xff09;算法应运而生&#xff0c;作为群体智能优化算法家族中的重要成员&#xff0c;它为解决此类棘手难题提供了高效且富有创新性的解决…

使用DiskGenius工具来实现物理机多硬盘虚拟化迁移

使用DiskGenius工具来实现物理机多硬盘虚拟化迁移 概述准备工作注意事项实操过程记录1、Win7虚拟机&#xff0c;安装有两个硬盘&#xff08;硬盘0和硬盘1&#xff09;&#xff0c;各分了一个区&#xff0c;磁盘2是一块未使用的磁盘2、运行DiskGenius程序&#xff0c;记录现有各…

win本地vscode通过代理远程链接linux服务器

时间&#xff1a;2025.2.28 1. win本地下载nmap.exe nmap官网 https://nmap.org/或者 https://nmap.org/download#windows下载win版本并安装。 2. vscode插件Remote-SSH 插件下载Remote-SSH 3. 配置 按照图中顺序配置ssh 1.点击左侧工具栏的“小电视”图标 2.点击ssh的…

yolo初体验

看别人说的好简单,3行代码完成yolo11: from ultralytics import YOLO model YOLO("yolo11x.pt")##第一次运行自动下载 model.predict(source"0",showTrue) 当然代码没错:但是环境不好配: 首先:pip install ultralytics 会主动下载依赖 pytorch pandas-…

TCP 连接故障排查与 SYN 洪泛攻击防御

1 SYN 洪泛攻击防御 1.1 SYN Flood是什么&#xff1f; SYN Flood是互联网上最原始、最经典的DDoS&#xff08;Distributed Denial of Service&#xff0c;分布式拒绝服务&#xff09;攻击之一&#xff0c;旨在耗尽可用服务器资源&#xff0c;致使服务器无法传输合法流量。 SYN…

ArcGIS Pro应用指南:如何为栅格图精确添加坐标信息

一、引言 在地理信息系统中&#xff0c;栅格图是一种重要的数据类型。 然而&#xff0c;有时我们从网络上获取的栅格图并不包含坐标信息&#xff0c;这使得它们难以与其他带有坐标信息的数据进行集成和分析。 为了解决这一问题&#xff0c;我们需要对栅格图进行地理配准&…

Spring Boot 与 MyBatis 版本兼容性

初接触Spring Boot&#xff0c;本次使用Spring Boot版本为3.4.3&#xff0c;mybatis的起步依赖版本为3.0.0&#xff0c;在启动时报错&#xff0c;报错代码如下 org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name userMapper…

CSS—text文本、font字体、列表list、表格table、表单input、下拉菜单select

目录 1.文本 2.字体 3.列表list a.无序列表 b.有序列表 c.定义列表 4.表格table a.内容 b.合并单元格 3.表单input a.input标签 b.单选框 c.上传文件 4.下拉菜单 1.文本 属性描述color设置文本颜色。direction指定文本的方向 / 书写方向。letter-spacing设置字符…

Linux之环境变量(超详细版)

前言:各位老铁们好&#xff0c;好久没分享知识了&#xff0c;今天我要和各位老铁分享的是环境变量 &#xff0c;对于Linux操作系统的学习者&#xff0c;我们会经常使用到环境变量&#xff0c;那么什么是环境变量呢&#xff1f;在讲环境变量之前&#xff0c;先问各位老铁一个问题…

【C语言】联合体 `union` 的妙用

C 语言联合体的妙用:结合 . 和 -> 操作符与 typedef 的深入剖析 在 C 语言中,联合体(union)是一种独特的复合数据类型,因其内存共享特性而在内存优化、类型切换和底层操作中展现出妙用。与结构体(struct)不同,联合体允许同一块内存存储不同类型的数据,提供高效且灵…

macOS - 使用 tmux

文章目录 安装 tmux使用更多快捷键说明 安装 tmux brew install tmux使用 在终端输入 tmux 进入 tmux 界面&#xff0c;然后 输入 Control Option B 进入交互模式 输入 % 左右分栏&#xff0c;" 上下分割 上一个窗格&#xff1a;{&#xff0c;下一个&#xff1a;} PS…

构建私有化AI知识库:基于CentOS的Ollama + DeepSeek-R1 +ragflow 整合部署教程

操作系统&#xff1a;CentOS 7.9 CPU&#xff1a;支持 AVX 指令集的 x86_64 处理器 内存&#xff1a;64GB 存储&#xff1a;SSD 1TB 以上 GPU&#xff08;可选&#xff09; 一、组件介绍 Ollama Ollama 是一个专为在本地机器上部署和运行大型语言模型&#xff08;LLM&a…

Goby 漏洞安全通告| Ollama /api/tags 未授权访问漏洞(CNVD-2025-04094)

漏洞名称&#xff1a;Ollama /api/tags 未授权访问漏洞&#xff08;CNVD-2025-04094&#xff09; English Name&#xff1a;Ollama /api/tags Unauthorized Access Vulnerability (CNVD-2025-04094) CVSS core: 6.5 风险等级&#xff1a; 中风险 漏洞描述&#xff1a; O…

Linux命令超级汇总

文件和目录操作 命令语法常用选项及说明lsls [选项] [目录名]- -l&#xff1a;以长格式显示文件和目录信息 - -a&#xff1a;显示所有文件&#xff0c;包括隐藏文件 - -h&#xff1a;与 -l 配合&#xff0c;以人类可读的方式显示文件大小 - -R&#xff1a;递归显示子目录内容cd…

Python 爬取唐诗宋词三百首

你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例&#xff0c;它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…

14. LangChain项目实战1——基于公司制度RAG回答机器人

教学视频&#xff1a; 12. 基于Gradio搭建基于公司制度RAG_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV11VXRYTErZ/ 环境配置&#xff1a; python版本&#xff1a;3.10.8 服务器&#xff1a;Ubuntu 依赖包requirements.txt文件内容&#xff1a; aiofiles23.2.1 …

香港首个人工智能大模型HKGAI V1发布:粤语AI时代正式开启

2月25日&#xff0c;香港科技创新领域迎来了一项里程碑式的成就——由香港特区政府重点创科项目“InnoHK 创新香港研发平台”慷慨资助的香港生成式人工智能研发中心(HKGAI)正式揭晓了其倾力打造的HKGAI V1大模型。这一创举不仅标志着香港在人工智能发展道路上迈出了坚实的一步&…

简易的微信聊天网页版【项目测试报告】

文章目录 一、项目背景二、项目简介登录功能好友列表页面好友会话页面 三、测试工具和环境四、测试计划测试用例部分人工手动测试截图web自动化测试测试用例代码框架配置内容代码文件&#xff08;Utils.py&#xff09;登录页面代码文件&#xff08;WeChatLogin.py&#xff09;好…

QT播放视频保持视频宽高比消除黑边

QT播放视频保持视频宽高比消除黑边 1、问题 在播放视频的时候&#xff0c;由于框架的大小发生变化&#xff0c;导致视频出现黑边很不好看。 因此需要像一种方法消除黑边 2、处理 1、读取视频的宽高比 2、设置视频的Widget的大小固定&#xff0c;Widget的宽高比和视频宽高比…

Apache nifi demo 实验

Apache nifi 是个数据流系统&#xff0c;可以通过配置 自定义的流程来实现数据的转换。 比如可以配置一个流程&#xff0c;读取数据库里的数据&#xff0c;再转换&#xff0c;最后保存到本地文件。 这样可以来实现一些数据转换的操作&#xff0c;而不用特地编写程序来导入导出。…