『功能项目』鼠标悬停物品显示信息【77】

本章项目成果展示

我们打开上一篇763D模型动态UI显示的项目,

本章要做的事情是鼠标悬停在道具身上显示对应信息

首先制作一个武器Image信息面板

重命名为WeaponUI01

设为隐藏

修改脚本:RightClickItem.cs

查看挂载脚本:

运行项目 - 当鼠标悬停背包中的装备时

继续制作面板 - 修改增加其他装备

首先增加装备栏里的插槽位置标签

修改脚本:RightClickItem.cs

修改脚本:UGUICanvas.cs

增加装备栏插槽sprite需要加载图片

创建脚本:RightClickShoesBack.cs

using QFramework.Example;
using QFramework;
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class RightClickShoesBack : MonoBehaviour, IPointerClickHandler{Image childImage;Sprite ShoesIconNormal;GameManager gm;GameObject currentCanvas;void Start(){gm = GameManager.Instance;ShoesIconNormal = Resources.Load<Sprite>("Prefabs/UGUIIcons/IndigoShieldtIcon_14");currentCanvas = GameObject.Find("CurrentCanvas").gameObject;}public void OnPointerClick(PointerEventData eventData){if (eventData.button == PointerEventData.InputButton.Right){if (transform.GetComponent<Image>().sprite == null)return;Transform Icon = currentCanvas.transform.Find("BagExample/Scroll View/Viewport/SlotItemRoot/UISlot(Clone)/Icon").transform;Icon.gameObject.SetActive(true);childImage = GameObject.FindWithTag("ShoesEquipPos").GetComponent<Image>();GameObject[] uiSlots = GameObject.FindGameObjectsWithTag("UISlot");foreach (GameObject uiSlot in uiSlots){Image imageComponent = uiSlot.GetComponent<Image>();if (imageComponent != null && imageComponent.sprite == null){ItemKit.AddItem(ConfigManager.Default.Diamond.GetKey);bool isSpriteNull = true;uiSlot.SetActive(isSpriteNull);uiSlot.gameObject.GetComponent<Image>().sprite = childImage.sprite;uiSlot.gameObject.GetComponent<Image>().color = Color.white;childImage.sprite = ShoesIconNormal;childImage.GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);gm.infoSys.defineValue -= 180;gm.infoSys.CombatValue -= (int)(180 * 3);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.red;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力下降" + (int)(180 * 3);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);StartCoroutine(WaitForThreeEquipText());FindObjectOfType<BagExample>().Refresh();FindObjectOfType<UGUICanvas>().Refresh();}}}}IEnumerator WaitForThreeEquipText(){yield return new WaitForSeconds(2);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(false);}
}

绑定脚本

运行项目

修改脚本:RightClickItem.cs

此时当鼠标悬停在装备栏时就会有设置隐藏的装备面板显示,鼠标离开后消失

RightClickItem.cs

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
using QFramework.Example;
using QFramework;
public class RightClickItem : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler{Image childImage;GameManager gm;GameObject currentCanvas;GameObject PlayerNormal;GameObject PlayerUI;void Start(){gm = GameManager.Instance;childImage = transform.Find("Icon").GetComponent<Image>();currentCanvas = GameObject.Find("CurrentCanvas").gameObject;PlayerNormal = GameObject.FindWithTag("Player").gameObject;PlayerUI = GameObject.Find("PlayerUI").gameObject;}public void OnPointerClick(PointerEventData eventData){if (eventData.button == PointerEventData.InputButton.Right){#region 装备武器if (transform.Find("Icon").GetComponent<Image>().sprite != null && transform.Find("Icon").GetComponent<Image>().sprite.name == "equip02"){currentCanvas.transform.Find("EquipUIs/WeaponUI01").gameObject.SetActive(false);Transform weaponEquipPos = GameObject.FindGameObjectWithTag("WeaponEquipPos").transform;weaponEquipPos.gameObject.GetComponent<Image>().sprite = transform.Find("Icon").GetComponent<Image>().sprite;weaponEquipPos.gameObject.GetComponent<Image>().color = Color.white;weaponEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "Item_ironSword"); if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);gm.infoSys.attackValue += 500;gm.infoSys.CombatValue += (int)(500 * 1.3f);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(500 * 1.3f);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion#region 装备护肩if (childImage.sprite != null && childImage.sprite.name == "equip01"){currentCanvas.transform.Find("EquipUIs/ShoulderUI01").gameObject.SetActive(false);Transform shoulderEquipPos = GameObject.FindGameObjectWithTag("ShoulderEquipPos").transform;shoulderEquipPos.gameObject.GetComponent<Image>().sprite = childImage.sprite;shoulderEquipPos.gameObject.GetComponent<Image>().color = Color.white;shoulderEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "item_iron"); if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Shoulders").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Shoulders").gameObject.SetActive(true);gm.infoSys.defineValue += 112;gm.infoSys.CombatValue += (int)(112 * 3.3f);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(112 * 3.3f);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion#region 装备铠甲if (childImage.sprite != null && childImage.sprite.name == "equip03"){currentCanvas.transform.Find("EquipUIs/ClothesUI01").gameObject.SetActive(false);Transform clothesEquipPos = GameObject.FindGameObjectWithTag("ClothesEquipPos").transform;clothesEquipPos.gameObject.GetComponent<Image>().sprite = childImage.sprite;clothesEquipPos.gameObject.GetComponent<Image>().color = Color.white;clothesEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "item_clothes"); if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Chest").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Chest").gameObject.SetActive(true);PlayerNormal.transform.Find("Player/Armors/StarterClothes/Starter_Chest").gameObject.SetActive(false);PlayerUI.transform.Find("Player111/Armors/StarterClothes/Starter_Chest").gameObject.SetActive(false);gm.infoSys.defineValue += 224;gm.infoSys.CombatValue += (int)(224 * 3.6f);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(224 * 3.6f);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion#region 装备裤子if (childImage.sprite != null && childImage.sprite.name == "equip04"){currentCanvas.transform.Find("EquipUIs/PantsUI01").gameObject.SetActive(false);Transform pantsEquipPos = GameObject.FindGameObjectWithTag("PantsEquipPos").transform;pantsEquipPos.gameObject.GetComponent<Image>().sprite = childImage.sprite;pantsEquipPos.gameObject.GetComponent<Image>().color = Color.white;pantsEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "Item_pants");if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Pants").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Pants").gameObject.SetActive(true);PlayerNormal.transform.Find("Player/Armors/StarterClothes/Starter_Pants").gameObject.SetActive(false);PlayerUI.transform.Find("Player111/Armors/StarterClothes/Starter_Pants").gameObject.SetActive(false);gm.infoSys.defineValue += 80;gm.infoSys.CombatValue += (int)(80 * 5);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(80 * 5);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion#region 装备鞋子if (childImage.sprite != null && childImage.sprite.name == "equip05"){currentCanvas.transform.Find("EquipUIs/ShoesUI01").gameObject.SetActive(false);Transform shoesEquipPos = GameObject.FindGameObjectWithTag("ShoesEquipPos").transform;shoesEquipPos.gameObject.GetComponent<Image>().sprite = childImage.sprite;shoesEquipPos.gameObject.GetComponent<Image>().color = Color.white;shoesEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "item_shoes");if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Boots").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Boots").gameObject.SetActive(true);PlayerNormal.transform.Find("Player/Armors/StarterClothes/Starter_Boots").gameObject.SetActive(false);PlayerUI.transform.Find("Player111/Armors/StarterClothes/Starter_Boots").gameObject.SetActive(false);gm.infoSys.defineValue += 180;gm.infoSys.CombatValue += (int)(180 * 3);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(180 * 3);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion#region 装备头盔if (childImage.sprite != null && childImage.sprite.name == "equip06"){currentCanvas.transform.Find("EquipUIs/HatUI01").gameObject.SetActive(false);Transform hatEquipPos = GameObject.FindGameObjectWithTag("HatEquipPos").transform;hatEquipPos.gameObject.GetComponent<Image>().sprite = childImage.sprite;hatEquipPos.gameObject.GetComponent<Image>().color = Color.white;hatEquipPos.gameObject.transform.Find("Image").gameObject.SetActive(false);var slot = ItemKit.BagSlots.Find(s => s.Item != null && s.Item.GetKey == "item_hat");if (slot != null){slot.Item = null;slot.Count = 0;}transform.Find("Icon").GetComponent<Image>().sprite = null;transform.Find("Icon").GetComponent<Image>().color = new Color(45f / 255f, 45f / 255f, 45f / 255f);transform.Find("Icon").GetComponent<Image>().GetComponent<RectTransform>().sizeDelta = new Vector2(90, 90);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Helmet").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Helmet").gameObject.SetActive(true);PlayerNormal.transform.Find("Player/Armors/Plate1/PlateSet1_Gloves").gameObject.SetActive(true);PlayerUI.transform.Find("Player111/Armors/Plate1/PlateSet1_Gloves").gameObject.SetActive(true);gm.infoSys.defineValue += 200;gm.infoSys.CombatValue += (int)(200 * 3);currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().color = Color.green;currentCanvas.transform.Find("EquipInfo").GetComponent<Text>().text = "战斗力上升" + (int)(200 * 3);currentCanvas.transform.Find("EquipInfo").gameObject.SetActive(true);FindObjectOfType<BagExample>().Refresh();}#endregion}}public void OnPointerEnter(PointerEventData eventData){#region 装备武器if (childImage.sprite != null && childImage.sprite.name == "equip02"){currentCanvas.transform.Find("EquipUIs/WeaponUI01").gameObject.SetActive(true);}#endregion#region 装备护肩if (childImage.sprite != null && childImage.sprite.name == "equip01"){currentCanvas.transform.Find("EquipUIs/ShoulderUI01").gameObject.SetActive(true);}#endregion#region 装备铠甲if (childImage.sprite != null && childImage.sprite.name == "equip03"){currentCanvas.transform.Find("EquipUIs/ClothesUI01").gameObject.SetActive(true);}#endregion#region 装备裤子if (childImage.sprite != null && childImage.sprite.name == "equip04"){currentCanvas.transform.Find("EquipUIs/PantsUI01").gameObject.SetActive(true);}#endregion#region 装备鞋子if (childImage.sprite != null && childImage.sprite.name == "equip05"){currentCanvas.transform.Find("EquipUIs/ShoesUI01").gameObject.SetActive(true);}#endregion#region 装备头盔if (childImage.sprite != null && childImage.sprite.name == "equip06"){currentCanvas.transform.Find("EquipUIs/HatUI01").gameObject.SetActive(true);}#endregion}public void OnPointerExit(PointerEventData eventData){#region 装备武器if (childImage.sprite != null && childImage.sprite.name == "equip02"){currentCanvas.transform.Find("EquipUIs/WeaponUI01").gameObject.SetActive(false);}#endregion#region 装备护肩if (childImage.sprite != null && childImage.sprite.name == "equip01"){currentCanvas.transform.Find("EquipUIs/ShoulderUI01").gameObject.SetActive(false);}#endregion#region 装备铠甲if (childImage.sprite != null && childImage.sprite.name == "equip03"){currentCanvas.transform.Find("EquipUIs/ClothesUI01").gameObject.SetActive(false);}#endregion#region 装备裤子if (childImage.sprite != null && childImage.sprite.name == "equip04"){currentCanvas.transform.Find("EquipUIs/PantsUI01").gameObject.SetActive(false);}#endregion#region 装备鞋子if (childImage.sprite != null && childImage.sprite.name == "equip05"){currentCanvas.transform.Find("EquipUIs/ShoesUI01").gameObject.SetActive(false);}#endregion#region 装备头盔if (childImage.sprite != null && childImage.sprite.name == "equip06"){currentCanvas.transform.Find("EquipUIs/HatUI01").gameObject.SetActive(false);}#endregion}
}

运行项目 

接下来的文章内容:

1.六件装备穿戴齐全后的炫光效果

2.窗口可拖拽脚本

3.点击名称寻找地点功能

4.隐藏怪物的生成

5.怪物I攻击范围内的主动攻击

6.掉落坐骑蛋的获取

7.异步传送转换场景

以及开放回合制、坐骑系统、宠物系统、背包系统、神炼系统、商城系统、Boss的目标跟随任务导航系统以及UI播放3D动画效果等等。

具体项目运行效果请关注water1024的b站视频项目演示《破碎纪元》

【Unity回合2.5D】破碎纪元_单机游戏热门视频 (bilibili.com)icon-default.png?t=O83Ahttps://www.bilibili.com/video/BV1rZY4e9Ebs/?spm_id_from=333.999.0.0&vd_source=547091a95b03acfa8e8a9e46ef499cd6

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

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

相关文章

个性化大语言模型:PPlug——让AI更懂你

在当今数字化转型的时代&#xff0c;大型语言模型&#xff08;LLMs&#xff09;已经成为了不可或缺的工具&#xff0c;它们在自然语言理解、生成和推理方面展现了非凡的能力。然而&#xff0c;这些模型普遍采用的是“一刀切”的方式&#xff0c;即对于相同的输入给予所有用户相…

HDFS分布式文件系统01-HDFS架构与SHELL操作

HDFS分布式文件系统 学习目标第一课时知识点1-文件系统的分类单机文件系统网络文件系统分布式文件系统 知识点2-HDFS架构知识点3-HDFS的特点知识点4-HDFS的文件读写流程知识点5-HDFS的健壮性 第二课时知识点1-HDFS的Shell介绍HDFS Shell的语法格式如下。HDFS Shell客户端命令中…

windows电脑C盘内存爆满怎么办?

目录 1. 下载SpaceSniffer2. 运行程序&#xff0c;扫描C盘3. 寻找可删除的文件 为了节省C盘的内存&#xff0c;将大部分的软件尽量都安装在C盘以外的磁盘中&#xff0c;但是在电脑的使用过程中还是会发现C盘越来越少&#xff0c;这是因为很多软件会默认将数据文件夹&#xff08…

【算法】DFS 系列之 穷举/暴搜/深搜/回溯/剪枝(上篇)

【ps】本篇有 9 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;全排列 .1- 题目解析 .2- 代码编写 2&#xff09;子集 .1- 题目解析 .2- 代码编写 3&#xff09;找出所有子集的异或总和再求和 .1- 题目解析 .2- 代码编写 4&#xff09;全排列 II…

​​三SSH

ssh密钥对登录原理 &#xff1a;首先&#xff0c;客户端事先生成一对密钥&#xff0c;并将公钥保存在服务器上的授权文件中。接下来&#xff0c;客户端不用密码&#xff0c;而是用密钥对来验证身份。客户端用服务器的公钥来加密自己的公钥&#xff0c;然后把加密后的信息发送给…

数字化转型:开启未来发展新引擎

在当今飞速发展的时代&#xff0c;数字化转型已成为企业、组织乃至整个社会发展的关键趋势。 信息技术的迅猛发展&#xff0c;如互联网、大数据、人工智能等&#xff0c;为数字化转型提供了强大支撑。市场竞争的加剧&#xff0c;也促使企业不断寻求提升竞争力的方法&#xff0c…

利用git将项目上传到github

采用git而不是在pycharm中共享的原因&#xff1a;可能会出现上图报错 目录 1、创建github仓库2、在 git bash 中初始化Git仓库&#xff0c;添加文件&#xff0c;上传代码 1、创建github仓库 2、在 git bash 中初始化Git仓库&#xff0c;添加文件&#xff0c;上传代码

[Redis] 渐进式遍历+使用jedis操作Redis+使用Spring操作Redis

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…

LabVIEW提高开发效率技巧----利用第三方库和工具

LabVIEW开发不仅依赖于自身强大的图形化编程能力&#xff0c;还得益于其庞大的用户社区和丰富的第三方库。这些工具和库能够帮助开发者快速解决问题&#xff0c;提升开发效率&#xff0c;避免从头开始编写代码。 1. LabVIEW工具网络&#xff08;NI Tools Network&#xff09; …

DVWA-File Inclusion(文件包含)渗透测试

概念&#xff1a; 漏洞产生原因&#xff1a; 主要是由于开发人员没有对用户输入的文件路径进行严格的过滤和验证。例如&#xff0c;如果一个 Web 应用程序接受用户输入的文件路径&#xff0c;然后使用这个路径进行文件包含&#xff0c;而没有对用户输入进行任何检查&#xff0c…

传输层协议 --- UDP

序言 在之前的文章 Socket 编程 中&#xff0c;我们只是简单的知道了怎么利用 UDP协议 或者是 TCP协议 来发送我们的数据&#xff0c;并且我们还知道 UDP 是不可靠的&#xff0c;TCP 是可靠的。但这是为什么呢&#xff1f;底层的构造和策略决定他们的属性&#xff01;这篇文章中…

数据结构编程实践20讲(Python版)—01数组

本文目录 01 数组 arrayS1 说明S2 举例S3 问题&#xff1a;二维网格中的最小路径求解思路Python3程序 S4 问题&#xff1a;图像左右变换求解思路Python3程序 S5 问题&#xff1a;青蛙过河求解思路Python3程序 写在前面 数据结构是计算机科学中的一个重要概念&#xff0c;用于组…

HttpSession使用方法及原理

HttpSession使用方法及原理 一、HttpSession使用流程说明二、登录概述具体 三、访问过程概述具体 一、HttpSession使用流程说明 1.用户发送登录请求到服务器。 2.服务器处理登录请求&#xff0c;调用userService.login(loginUser)。 3.如果登录成功&#xff0c;服务器调用requ…

Linux云计算 |【第四阶段】NOSQL-DAY2

主要内容&#xff1a; Redis集群概述、部署Redis集群&#xff08;配置manage管理集群主机、创建集群、访问集群、添加节点、移除节点&#xff09; 一、Redis集群概述 1、集群概述 所谓集群&#xff0c;就是通过添加服务器的数量&#xff0c;提供相同的服务&#xff0c;从而让…

【echarts】报错series.render is required.

总结&#xff1a;就是echarts无法保存renderItem函数到json里&#xff0c;因为renderItem是个封装方法&#xff0c;因此需要初始化加载时重新插入renderItem即可 1.描述&#xff1a;控制台报错series.render is required. 原数据json如下&#xff1a; {type: "bar"…

工作安排 - 华为OD统一考试(E卷)

2024华为OD机试(C卷+D卷)最新题库【超值优惠】Java/Python/C++合集 题目描述 小明每周上班都会拿到自己的工作清单,工作清单内包含n项工作,每项工作都有对应的耗时时长(单位h)和报酬,工作的总报酬为所有已完成工作的报酬之和。那么请你帮小明安排一下工作,保证小明在指定…

科研绘图系列:R语言树结构聚类热图(cluster heatmap)

文章目录 介绍加载R包导入数据数据预处理画图修改图形导出数据系统信息介绍 热图结合树结构展示聚类结果通常用于展示数据集中的模式和关系,这种图形被称为聚类热图或层次聚类热图。在这种图中,热图部分显示了数据矩阵的颜色编码值,而树结构(通常称为树状图或聚类树)则显…

AIGAME背后的强大背景与AI币价值的崛起

AIGAME平台背后汇集了强大的资本和技术支持&#xff0c;凭借蒙特加密产业基金的战略投资和汇旺集团的多元化Web3基础设施建设&#xff0c;AIGAME在全球范围内迅速崛起。平台所使用的Sleepless AI技术&#xff0c;结合区块链与AI的深度融合&#xff0c;赋能AI币&#xff0c;使其…

虚拟社交的新时代:探索Facebook的元宇宙愿景

随着技术的不断进步&#xff0c;社交媒体的形态也在悄然变化。Facebook&#xff08;现名Meta&#xff09;正站在这一变革的前沿&#xff0c;积极探索元宇宙的愿景。元宇宙不仅是虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;的结合&#xff0c;更是…

遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决

遍历9个格子winmine!StepBlock和遍历8个格子winmine!StepBox的对决 第一部分&#xff1a;windbg调试记录。 0: kd> g Breakpoint 10 hit winmine!DoButton1Up: 001b:0100390e a130510001 mov eax,dword ptr [winmine!xCur (01005130)] 0: kd> kc # 00 winmine…