当前位置: 首页 > news >正文

Unity之闪电侠大战蓝毒兽(简陋的战斗系统)

目录

🎨一、创建地形

🎮二、创建角色

🏃2.1 动画

🏃2.2 拖尾 

🏃2.3 角色控制 

​🏃2.4 技能释放

🏃2.5 准星

📱三、创建敌人

🐲3.1 选择模型

🐲3.2 敌人动画器 

🐲3.3 敌人脚本

💤四、杂谈


新年好啊大家,开工大吉,一起摸鱼!经过小编一个月摸鱼的努力,本篇给自己学到的知识做一个汇总和应用。效果如下动图所示:

小编加入了丑陋的蓝毒兽,并让它看起来不那么傻。它会追击、会进攻、还会死(doge.jpg)。

小编给了它十滴血,当我们控制闪电侠攻击它的时候会实时判断血量HP,HP小于等于0就会触发死亡动画。


当然也有很多不足之处,所以才叫“简陋的战斗系统。。。”我们控制的角色没有加HP,蓝毒兽攻击角色是没有反应的,死了后还在地上滑动起来了。。。估计是爆炸后呲的它来回撞。有空的话小编还会慢慢完善,废话不多说,下面带大家实现这个实例。


一、创建地形

首先地形是小编自己绘制的,教程可以看下面这篇文章。 

Unity之地形的构建-CSDN博客文章浏览阅读1.1k次,点赞16次,收藏19次。PS:公司没活干,好无聊偷偷摸鱼学Unity,害怕自己学完之后忘记,写下这一篇博客https://blog.csdn.net/qq_48512649/article/details/135267070资源商店也有很多好的地形场景,大家可以用自己喜欢的来做。

二、创建角色

角色模型的创建和动作可以参考下面这篇文章。大家选一个自己喜欢的人物模型来做。。。小编当初做练习选的这个就拿来用了也没换,后悔死了,后面都懒得换了。

Unity之动画和角色控制_unity 角色控制-CSDN博客文章浏览阅读1k次,点赞24次,收藏19次。《绿洲大镖客之重生我是闪电侠》😋_unity 角色控制https://blog.csdn.net/qq_48512649/article/details/135775295

作为一个初学者偶然知道的这个模型素材网站,但是我还没用过(简单瞅了瞅里面有闪电侠的模型doge.jpg)爱给网_音效配乐_3D模型_视频素材_免费下载 


Player的标签设置为Player我们后面要用到:

2.1 动画

这里角色的动画器小编分了两个图层:

  1. Base Layer图层是 静止<——>跑步——>起跳——>空中静止——>落地动作,动作的转换参数小编用的BoolTrigger居多。

  2. 第二个图层用来释放技能的,这里小编设计了两个技能

这里讲一下,权重表示图层的权重,跑跳等动作权重(1)比技能权重(0.9)高,播放动画就会优先播放跑跳的动作。

因为释放技能我们只用手来播放动画,这里的遮罩wave, 释放技能时保证手部动作流畅(新建一个遮罩并保留手部为绿色即可,然后加到图层中)。


2.2 拖尾 

 同样在之前的博客闪电侠的拖尾我们是由拖尾组件TrailRenderer实现的,但是实现效果拖尾只出现在了角色脚下那部分。这和我们所熟悉的闪电侠不一样啊。

 为了把拖尾效果覆盖到全身小编就想到了一个很笨很笨的方法。

新建好多个空对象把它们放到角色身上,再把拖尾组件都挂到这些空对象上,这样拖尾效果就覆盖到全身了。(大佬有好的方案教教我o(╥﹏╥)o) 

来看下效果: 

2.3 角色控制 

接下来轮到脚本了,编写FPSMove脚本控制玩家移动和动画之间的转换:

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;//给玩家挂载 Character Controller 组件
public class FPSMove : MonoBehaviour
{private CharacterController cc;//移动速度public float moveSpeed;//跳跃速度public float jumpSpeed;//定义获得按键值的两个变量private float horizontalMove, verticalMove;private Vector3 dir;//手动实现重力public float gravity;private Vector3 velocity;//创建空对象放到玩家最底部用来检测碰没碰到地面,把空对象挂上来//检测点的中心位置public Transform groundCheck;  //检测点的半径public float checkRadius;//需要检测的图层public LayerMask groundLayer;//布尔值存储Physics.CheckSphere的返回值public bool isGround;//定义动画变量private Animator animator;private void Start(){ //获取角色控制组件cc = GetComponent<CharacterController>();//获取动画组件animator = GetComponent<Animator>();}private void Update(){//检测玩家是否在地面上,如果定义的球体和物体发生碰撞返回trueisGround = Physics.CheckSphere(groundCheck.position, checkRadius, groundLayer);if (isGround && velocity.y < 0){velocity.y = -2f;}//获得移动按键的值horizontalMove = Input.GetAxis("Horizontal") * moveSpeed;verticalMove   = Input.GetAxis("Vertical") * moveSpeed;dir = transform.forward * verticalMove + transform.right * horizontalMove;//实现移动cc.Move(dir * Time.deltaTime);//每秒减去重力的值不断下降,手动实现重力velocity.y -= gravity * Time.deltaTime;cc.Move(velocity * Time.deltaTime);//判断是否按下跳跃键if (Input.GetButtonDown("Jump") && isGround) {//给玩家一个向上的速度velocity.y = jumpSpeed;//播放跳跃动画animator.SetTrigger("Jump");}isGroundTest();//如果向量不等于空就证明我们按了方向键了if (dir != Vector3.zero){//播放跑步动画animator.SetBool("IsRun",true);}//没有按方向键else{//播放站立动画animator.SetBool("IsRun",false);}}private void isGroundTest(){if (isGround == false){//播放落地动画animator.SetBool("down",true);}else if (isGround == true){//播放落地动画animator.SetBool("down",false);}}
}

 老样子空对象GroundCheck放在角色脚底用来检测角色碰没碰到地面,把地形的图层设置为Ground

2.4 技能释放

技能的模型和发生碰撞后爆炸的原理大家可以根据下面文章回顾一下,小编技能用的模型也是在这里面挑选的:

Unity之物理系统_unity 物理系统-CSDN博客文章浏览阅读1.2k次,点赞21次,收藏20次。专栏的上一篇角色控制器控制角色移动跳崖,这一篇来说说Unity的物理系统。本篇小编还要带大家做一个碰撞检测效果实例,先放效果图:流星撞击地面产生爆炸效果。_unity 物理系统https://blog.csdn.net/qq_48512649/article/details/135600857

编写Gun脚本来控制技能的生成并挂到角色身上:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Gun : MonoBehaviour
{//子弹预设体序列化[SerializeField]private GameObject bulletPrefab;//游戏对象子弹发射点[SerializeField]private GameObject bulletPoint;//子弹速度[SerializeField] private float bulletSpeed = 1200;//定义动画变量private Animator animator;[SerializeField] //获取技能对象private GameObject RotatorPS2;[SerializeField] private GameObject PS2Point;// Start is called before the first frame updatevoid Start(){//获取动画组件animator = GetComponent<Animator>();}// Update is called once per framevoid Update(){//判断是否按下技能键if (Input.GetButtonDown("Fire1")){//播放跳跃动画animator.SetTrigger("wave");PlayerFireEffectTest();}//判断是否按下技能键if (Input.GetButtonDown("Fire2")){//播放技能动画PlayerFireEffect();//播放技能动画animator.SetTrigger("pickUp");}}//播放技能特效public void PlayerFireEffect(){Debug.Log("shoot!!!!");//生成一个子弹实例,每点击射击一次则生成一枚子弹GameObject bullet = Instantiate(RotatorPS2, bulletPoint.transform.position, transform.rotation);//启动特效bullet.SetActive(true);//给子弹一个向前的力bullet.GetComponent<Rigidbody>().AddForce(transform.forward * bulletSpeed);//8秒关闭//Invoke("UnEffect", 8f);Destroy(bullet,8);}public void PlayerFireEffectTest(){//生成一个子弹实例,每点击射击一次则生成一枚子弹GameObject bullet = Instantiate(bulletPrefab, PS2Point.transform.position, transform.rotation);//启动特效bullet.SetActive(true);//给子弹一个向前的力bullet.GetComponent<Rigidbody>().AddForce(transform.forward * bulletSpeed);}// 取消播放技能特效private void UnEffect(){RotatorPS2.SetActive(false);}
}

要给你选择的技能特效加上标签,用来识别是否打到蓝毒兽身上。

 这里FirePointPS2Point是一二技能的发射点,把你喜欢的技能特效挂在Gun脚本上,小编这里放了Magic fire2RotatorPS2,别忘了给技能特效加刚体和碰撞组件。

 有了技能还不够,技能发射后碰到物体产生爆炸效果,编写fire脚本挂载到你所选的技能特效预设体上。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Fire : MonoBehaviour
{[SerializeField]//创建一个爆炸的预设体private GameObject Explosion;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){}//监听发生碰撞: 只监听发生碰撞的一瞬间private void OnCollisionEnter(Collision collision)  //参数 collision 就是你碰撞到的物体的碰撞信息{//创建一个爆炸物体GameObject explosion =Instantiate(Explosion, transform.position, Quaternion.identity);   //参数: 预设体,爆炸位置是自身火焰位置,不旋转//销毁自身(流星): 流星撞击地面爆炸物产生流星销毁Destroy(gameObject);explosion.SetActive(true);//获取碰撞到物体看一下参数collision —— 打印一下物体名称,这里打印的是地面的名称Debug.Log("撞到了"+collision.gameObject.name);//实用小技巧//给地面一个图层"Ground"   collision.collider.tag == "Ground"   可以判断物体是否踩在地面上}//结束碰撞检测方法private void OnCollisionExit(Collision other){//collision.collider.tag == "Ground"  判断物体是否离开地面}//监听触发检测private void OnTriggerEnter(Collider other){}
}

比如我这里选的RotatorPS2特效 ,我把fire脚本挂到它身上,ExplosionVariant是爆炸特效。

技能撞倒物体消失产生爆炸效果,爆炸后也会消失,编写 ExplosionTest 脚本挂到爆炸特效上来实现这一功能。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ExplosionTest : MonoBehaviour
{float timer = 0;// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){Debug.Log("============这里是explosion");//如果时间大于一秒就销毁爆炸物timer += Time.deltaTime;if (timer > 1){Destroy(gameObject);}}
}

2.5 准星

小编盗用自己的图片来加准星(doge.jpg)

新建一个图像,然后根据下图的数据设置好,还可以选择自己喜欢的颜色,这样准星就设置好了。

 到这里玩家的功能差不多都实现了,下面我们来实现丑陋的蓝毒兽。

三、创建敌人

3.1 选择模型

首先我们去资源商店淘一下敌人的免费模型,毕竟小编很穷o(╥﹏╥)o。搜索monster点击免费资源就会找到下面这个,这个居然是1月26号发布的,当然也有很多其他的优秀资源看个人喜好选择。


在选模型的过程中还闹过笑话,之前选了一个类似大猩猩的模型下半身陷进去了眼睛却还是在原来的位置(这是加了寻路组件之后才这样的),然后在寻路组件的作用下保持这个姿势向我靠近。。。后来也没改过来

 3.2 敌人动画器 

 动画器这里小编编辑的有静止、跑步、攻击、死亡。attack1和attack2小编直接连一块了就,形成一个连击。


至于这里的run和run0,我不知道是模型还是哪出问题了跑步的动画循环播放不了只播放一遍,所以我又又想出了一个很笨很笨的方法让俩跑步动画来回切换达到循环的效果。。。大家不要笑话我。

关于导航网格Nav Mesh Agent组件的使用大家可以回顾这篇文章,使用Nav Mesh Agent组件记得烘焙地形,这里我们用作敌人的寻路功能。

Unity之射线检测和导航系统-CSDN博客文章浏览阅读558次,点赞5次,收藏7次。不知道大家有没有玩过红色警戒 —— 一款即时战略游戏,和罪恶都市一样小编小学的时候就开始玩了,这款游戏控制单位角色移动是通过鼠标的点击来实现。同样的操作方法还有英雄联盟等很多游戏,那本篇文章小编就通过简单小实例来讲解这种操作在Unity中是如何实现的。小编先展示一下实例的演示动图:红色球体表示我们控制的角色,鼠标左键点击小球就会到相应的坐标位置并打印坐标。https://blog.csdn.net/qq_48512649/article/details/135674470这是蓝毒兽挂载的组件大家参考一下:

3.3 敌人脚本

好了接下来我们让丑陋的蓝毒兽变得聪明一点,创建脚本AI挂载到蓝毒兽上:


这里用枚举的方式来描述蓝毒兽的状态。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;//状态
public enum EnemyState
{idle,   //静止状态run,    //逃跑状态attack, //攻击状态die     //死亡状态
}public class AI : MonoBehaviour
{//状态public EnemyState CurrentState = EnemyState.idle;//动画控制器private Animator animator;//玩家private Transform player;//导航private NavMeshAgent agent;//怪兽血量private int hp = 10;// Start is called before the first frame updatevoid Start(){//获取动画组件animator = GetComponent<Animator>();agent = GetComponent<NavMeshAgent>();player = GameObject.FindWithTag("Player").transform;}// Update is called once per framevoid Update(){float distance = Vector3.Distance(player.position, transform.position);//判断状态switch (CurrentState){case EnemyState.idle:idle(distance);break;case EnemyState.run:run(distance);break;case EnemyState.attack:attack(distance);break;case EnemyState.die:die();break;}}void idle(float distance){//站立状态,如果和玩家距离为5到200米变为跑步if (distance >= 5 && distance <= 200){CurrentState = EnemyState.run;}//播放站立动画animator.SetBool("IsRun", false);        //导航停止agent.isStopped = true;}void run(float distance){//如果离玩家大于200米,则变为站立if (distance >= 200){CurrentState = EnemyState.idle;}else if (distance < 9){CurrentState = EnemyState.attack;}//播放跑步动画animator.SetBool("IsRun", true); animator.SetTrigger("Run1");animator.SetTrigger("Run2");//导航开始agent.isStopped = false;agent.SetDestination(player.position);}void attack(float distance){//如果离玩家大于10米,则变为站立if (distance >= 10){CurrentState = EnemyState.run;}//播放攻击动画animator.SetTrigger("Attack");}void die(){//播放死亡动画animator.SetTrigger("die");}//监听碰撞检测private void OnCollisionEnter(Collision collision){//判断是否碰到技能if (collision.collider.tag == "Skill"){//血量减少hp--;//如果血量少于等于0,敌人死亡if (hp <= 0){Debug.Log("==========HP:" + hp);CurrentState = EnemyState.die;//Destroy(gameObject);}}}
}

四、杂谈

实例教程到这里就先结束了,八千多字比我毕业论文字数都多(doge.jpg)。继续扩展的话可以像很多游戏一样设置一个出生点,不断有丑陋的蓝毒兽实例被创建;还可以给我们玩家也加上血条,被攻击也会有击退反应;有想法之后可以进行针对性学习。

自己写的游戏想怎么来就怎么来,拜拜┏(^0^)┛

相关文章:

Unity之闪电侠大战蓝毒兽(简陋的战斗系统)

目录 &#x1f3a8;一、创建地形 &#x1f3ae;二、创建角色 &#x1f3c3;2.1 动画 &#x1f3c3;2.2 拖尾 &#x1f3c3;2.3 角色控制 ​&#x1f3c3;2.4 技能释放 &#x1f3c3;2.5 准星 &#x1f4f1;三、创建敌人 &#x1f432;3.1 选择模型 &#x1f432;3.…...

C# 菜鸟级别有关于redis的使用

public IActionResult Index() { ConnectionMultiplexer _conn ConnectionMultiplexer.Connect("127.0.0.1:6379");//初始化 var database _conn.GetDatabase(7);//指定连接的库 0 RedisHelper redisHelper new Redi…...

AlexNet的出现推动深度学习的巨大发展

尽管AlexNet&#xff08;2012&#xff09;的代码只比LeNet&#xff08;1998&#xff09;多出几行&#xff0c;但学术界花了很多年才接受深度学习这一概念&#xff0c;并应用其出色的实验结果。 AlexNet&#xff08;由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同设计…...

2024面试offer收割宝典字节篇

1.IO 模型有哪些,讲讲你理解的 nio ,他和 bio,aio 的区别是啥, 谈谈 reactor 模型。 IO 模型主要包括以下几种:1. 阻塞 I/O (BIO): 当一个线程调用 read() 或 write() 系统调用时,如果数据没有准备好或者缓冲区已满,则该线程会被操作系统阻塞,直到有数据可读或写入完…...

冒泡排序及其优化

冒泡排序 int[] arr {1,3,2,9,4,7,2,8};//比较多少轮(n个数字比较n-1次)for(int i0,n arr.length;i<n-1;i) {//每轮比较多少次(n-1-i次)for(int j 0;j<n-1-i;j) {//两两比较if(arr[j] > arr[j1]) { //比较结果为升序排列&#xff0c;如果想要降序排列结果将 >…...

【医学大模型 补全主诉】BioGPT + LSTM 自动补全医院紧急部门主诉

BioGPT LSTM 自动补全医院紧急部门主诉 问题&#xff1a;针对在紧急部门中自动补全主诉的问题子问题1: 提高主诉记录的准确性子问题2: 加快主诉记录的速度子问题3: 统一医疗术语的使用子问题4: 减少打字错误和误解子问题5: 提高非特定主诉的处理能力 解法数据预处理神经网络方…...

HCIE-Datacom证书有效期多久?HCIE考试有哪些内容?

如今越来越多的人开始关注并参与到华为认证的学习中来。 其中&#xff0c;华为认证数据通信专家(HCIE-Datacom)作为华为认证体系中的高级认证&#xff0c;备受瞩目。 那么&#xff0c;关于HCIE-Datacom证书的有效期以及HCIE考试的内容&#xff0c;你知道多少呢&#xff1f;下…...

OpenCV中的边缘检测技术及实现

边缘检测是在电脑如何理解图片这一问题中的一环&#xff0c;它帮助电脑找出照片里的轮廓和分界线。想象一下你在看一幅黑白漫画&#xff0c;轮廓线定义了每一个角色和物体&#xff0c;而电脑要做的&#xff0c;就是通过边缘检测来找出这些线条。这在很多像是图像分析这样的领域…...

机器学习基础(一)理解机器学习的本质

导读&#xff1a;在本文中&#xff0c;将深入探索机器学习的根本原理&#xff0c;包括基本概念、分类及如何通过构建预测模型来应用这些理论。 目录 机器学习 机器学习概念 相关概念 机器学习根本&#xff1a;模型 数据的语言&#xff1a;特征与标签 训练与测试&#xf…...

Eclipse - Makefile generation

Eclipse - Makefile generation References right mouse click on the project -> Properties -> C/C Build -> Generate Makefiles automatically 默认会在 Debug 目录下创建 Makefile 文件。 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/...

Sora:新一代实时音视频通信框架

一、Sora简介 Sora是一个开源的实时音视频通信框架&#xff0c;旨在提供高效、稳定、可扩展的音视频通信解决方案。它基于WebRTC技术&#xff0c;支持跨平台、跨浏览器的实时音视频通信&#xff0c;并且具备低延迟、高并发、易集成等特点。 --点击进入Sora(一定要科学哦&#x…...

龟兔赛跑算法

一、题目 给定一个长度为 n1 的数组nums&#xff0c;数组中所有的数均在 1∼n1 的范围内&#xff0c;其中 n≥1。 请找出数组中任意一个重复的数。 样例 给定 nums [2, 3, 5, 4, 3, 2, 6, 7]。返回 2 或 3。 二、解析 解决这个问题的一种有效方法是使用快慢指针&#xf…...

Yii2项目使用composer异常记录

问题描述 在yii2项目中&#xff0c;使用require命令安装依赖时&#xff0c;出现如下错误提示 该提示意思是&#xff1a;composer运行时&#xff0c;执行了yiisoft/yii2-composer目录下的插件&#xff0c;但是该插件使用的API版本是1.0&#xff0c;但是当前的cmposer版本提供的…...

【蓝桥杯 2021】图像模糊

图像模糊 题目描述 小蓝有一张黑白图像&#xff0c;由 nm 个像素组成&#xff0c;其中从上到下共 n 行&#xff0c;每行从左到右 m 列。每个像素由一个 0 到 255 之间的灰度值表示。 现在&#xff0c;小蓝准备对图像进行模糊操作&#xff0c;操作的方法为&#xff1a; 对于…...

【leetcode】贪心算法介绍

详细且全面地分析贪心算法常用的解题套路、数据结构和代码逻辑如下&#xff1a; 找最值型&#xff1a; 每一步选择都是局部最优解&#xff0c;最后得到的结果就是全局最优解。常用于找零钱问题、区间覆盖问题等。一般情况下&#xff0c;可以通过排序将数据进行处理&#xff0c;…...

com.alibaba.fastjson.JSONException: toJSON error的原因

问题&#xff1a; 导出接口报错&#xff0c;显示json格式化异常 发现问题&#xff1a; 第一个参数为HttpResponse,转换成json的时候报错 修改方法&#xff1a; 1.调换两个参数的位置 2.在aop判断里边 把ServletAPI过滤掉 Before("excudeWebController()")pub…...

华为配置旁挂二层组网直接转发示例

配置旁挂二层组网直接转发示例 组网图形 图1 配置旁挂二层组网直接转发示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff…...

OLMo 以促进语言模型科学之名 —— OLMo Accelerating the Science of Language Models —— 全文翻译

OLMo: Accelerating the Science of Language Models OLMo 以促进语言模型科学之名 摘要 语言模型在自然语言处理的研究中和商业产品中已经变得无所不在。因为其商业上的重要性激增&#xff0c;所以&#xff0c;其中最强大的模型已经闭源&#xff0c;控制在专有接口之中&#…...

单例模式双端检测详解

正确写出doublecheck的单例模式_double check单例模式-CSDN博客...

秦PLUS荣耀版7.98万元起震撼上市,拉开“电比油低”大幕

2月19日&#xff0c;秦PLUS荣耀版正式上市&#xff0c;五大颠覆、三大焕新刷新A轿体验新高度。DM-i版本5款车型&#xff0c;官方指导价7.98万元——12.58万元&#xff1b;EV版本5款车型&#xff0c;官方指导价10.98万元——13.98万元。正式开启“电比油低”新时代。 电比油低&a…...

学习总结19

# 奶牛的耳语 ## 题目描述 在你的养牛场&#xff0c;所有的奶牛都养在一排呈直线的牛栏中。一共有 n 头奶牛&#xff0c;其中第 i 头牛在直线上所处的位置可以用一个整数坐标 pi(0< pi < 10^8) 来表示。在无聊的日子里&#xff0c;奶牛们常常在自己的牛栏里与其它奶牛交…...

rancher v2.8.1 如何成功注册已有 k8s 集群

需要加入的集群为rke2部署的双节点集群 $ kubectl get node NAME STATUS ROLES AGE VERSION rke-master01 Ready control-plane,etcd,master,worker 94d v1.26.8rke2r1 rke-master02 Ready control-plane,etcd,mast…...

Vue中$root的使用方法

查看本专栏目录 关于作者 还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#x…...

redis 异步队列

//produceMessage.ts 模拟生产者 import Redis from ioredis; const redis new Redis(); // 生产者&#xff1a;将消息推送到队列 async function produceMessage(queueName:string, message:string) {try {await redis.rpush(queueName, message);console.log(Produced messa…...

SpringBoot + Nacos 实现动态化线程池

1.背景 在后台开发中&#xff0c;会经常用到线程池技术&#xff0c;对于线程池核心参数的配置很大程度上依靠经验。然而&#xff0c;由于系统运行过程中存在的不确定性&#xff0c;我们很难一劳永逸地规划一个合理的线程池参数。 在对线程池配置参数进行调整时&#xff0c;一…...

《Docker极简教程》--Dockerfile--Dockerfile的基本语法

Dockerfile是一种文本文件&#xff0c;用于定义Docker镜像的内容和构建步骤。它包含一系列指令&#xff0c;每个指令代表一个构建步骤&#xff0c;从基础镜像开始&#xff0c;逐步构建出最终的镜像。通过Dockerfile&#xff0c;用户可以精确地描述应用程序运行环境的配置、依赖…...

css中, grid-auto-rows: 怎样简写在grid:中

grid-auto-rows:100px; grid-template-columns:1fr 1fr; &#x1f446;可以写成&#x1f447; grid:auto-flow 100px / 1fr 1fr;在CSS Grid布局中&#xff0c;grid-auto-rows 属性用于指定自动生成的网格容器的行的大小。如果你想要将 grid-auto-rows 的值简写在 grid 属性中&a…...

@ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)

代码随想录算法训练营第8周&#xff08;C语言&#xff09;|Day53&#xff08;动态规划&#xff09; Day50、动态规划&#xff08;包含题目 ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV &#xff09; 123.买卖股票的最佳时机III 题目描述 给定一个数组 price…...

算法-矩阵置零

1、题目来源 73. 矩阵置零 - 力扣&#xff08;LeetCode&#xff09; 2、题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,1,1],[1,0,1…...

xilinx除法器的使用

平台&#xff1a;Vivado2018.3. 芯片&#xff1a;xcku115-flva1517-2-i (active) 最近学习使用了xilinx除法器&#xff0c;在使用过程中出现了很多次除法器的结果和我预计的结果不一致&#xff0c;特此记录学习一下。 参考文件&#xff1a;pg151.下载地址 pg151-div-gen.pdf …...