政安晨【示例演绎虚拟世界开发】(五):从制作一个对战小游戏开始(Cocos Creator 《击败老大》)(第二段)

政安晨的个人主页政安晨

欢迎 👍点赞✍评论⭐收藏

收录专栏: AI虚拟世界大讲堂

希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正!

现在我们已经学会了如何向场景中添加图片,接下来继续为游戏场景添加更多的元素,并进一步完善场景布局。


修改游戏设计分辨率

在通常情况下,为了方便场景的搭建工作,在开发游戏之前会选择一个合适的分辨率来作为蓝本,并以此为基础进行整体界面的搭建,而作为蓝本的分辨率也被称为设计分辨率。在咱们这篇文章中,我们将采用比较主流的1280px×720px分辨率。

根据前面预览运行的效果,不难发现预览运行时展示的内容区域与编辑器中的Canvas区域是一致的。

这个时候我们会很自然地联想到,如果直接修改Canvas的尺寸,或许就可以达到间接修改设计分辨率的目的。

当我们尝试在层级管理器中选中【Canvas】节点时

会发现节点下的UI变换组件的【ContentSize】有一个“锁”图标,输入框也是灰色的,因此我们并不能直接对该属性进行修改,如下图所示。

在Cocos Creator中,如果想要修改游戏中的分辨率,则需要在项目设置中进行统一配置。在编辑器顶部选择【项目】→【项目设置】命令,打开项目设置面板,在【项目数据】选项卡中可以直接修改游戏的设计分辨率,如下图所示。

现在将【设计宽度】和【设计高度】的值分别修改为【720】和【1280】,修改完成后回到场景,再次选中【Canvas】组件,此时我们会发现游戏场景区域的宽高比已经发生了变化,同时Canvas里的UI变换组件的属性也同步发生了改变,如下图所示。

上述为同步变化的UI变换组件的属性

这里需要注意的是,此时游戏的设计分辨率已经产生了变化,当我们再次预览运行时,可能游戏区域超出了浏览器的显示范围,浏览器可能会有显示不全并且出现滚动条的情况(看浏览器的情况),如下图所示。

如果游戏区域超出了浏览器的显示范围,可以通过Chrome预览窗口左上角的下拉菜单调整预览分辨率,根据实际需求选择一个合适的分辨率即可。

使用变换工具

在搭建游戏场景的过程中,经常会有对节点进行移动、旋转、缩放等操作的需求,这个时候我们可以通过主窗口左上角工具栏的变换工具来操作场景中的相关节点。工具栏中从左往右依次为移动变换工具、旋转变换工具、缩放变换工具、矩形变换工具、变换吸附设置,如下图所示。

在默认状态下,移动变换工具是处于激活状态的,在层级管理器中选中需要移动的节点,就可以使用移动变换工具来对当前节点进行移动了。如果移动变换工具并没有处于激活状态,那么我们也可以通过点击工具栏的第一个按钮进行激活,或者使用组合键“Ctrl+W”,将变换工具切换为移动变换工具。

在确保移动变换工具被激活后,我们可以通过移动鼠标将【enemy】节点拖动到游戏场景的上方。如果仔细观察将会发现,在移动的过程中,【enemy】节点上的【Position】属性也会随之变化,这说明移动变换工具会在我们操作时动态地修改节点坐标的位置,如下图所示。

依次将三个技能图标及重新开始图标拖动到游戏场景中,之后使用同样的方式操作移动变换工具,将图标调整到合适的位置,完成后如下图所示。

父节点与子节点变换关系

在通常情况下,场景中的节点会以树状结构呈现。每个节点都可以有多个子节点,而子节点的更新依赖于父节点,当父节点进行变换时子节点会随之变换。我们可以利用这个特性间接地批量调整子节点的位置。

在了解了这一特性后,我们继续在场景中添加敌人的招式图标。首先在【Canvas】节点下新建一个空节点并命名为【enemy_skill】,然后在【enemy_skill】下依次添加三个技能的图片作为其子节点,最后只需要使用移动变换工具操作【enemy_skill】节点,即可完成所有技能图标的整体移动,完成后如下图所示。

节点的遮挡关系

我们已经向enemy_skill中添加了三个节点,由于它们的坐标默认重叠在了一起,因此我们只能看到一个图标,但是为什么看到的是最后一个添加的盾牌图标呢?

这是因为在Cocos Creator中,UI节点的渲染和遮挡关系会受到节点树的影响,从而按照层级管理器中节点的排列顺序从上到下依次渲染,也就是说在列表上面的节点在场景显示中会被在列表下面的节点遮盖住。我们向enemy_skill中添加了三个节点,由于默认状态下它们的坐标是一致的,且盾牌图标的节点处于最下方,因此我们只看到了盾牌图标。

现在可以尝试修改enemy_skill子节点的顺序来观察遮挡关系的变化。例如,可以将代表盾牌的2号节点移动到流星锤的上方,由于节点的排列顺序发生了变化,因而遮挡关系也会随之改变,可以看到此时流星锤图标已经显示了出来,如下图所示。

添加提示文本

我们制作的游戏场景比较简单,为了能够向玩家反馈游戏结果,还需要在游戏中添加提示文本信息。这里我们可以使用Label组件,右击【Canvas】节点,在弹出的快捷菜单中选择【创建】→【2D对象】→【Label(文本)】命令,创建一个Label组件,并将其命名为【hint】。可以在属性检查器中看到Label组件的相关属性,如下表所示。

在属性检查器中将Label的【FontSize】【LineHeight】属性的值都修改为【40】,之后将【String】属性修改为【出招中...】,如下图所示。


这一段咱们已经完成,接下来的文章中,我们继续。

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

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

相关文章

计算机设计大赛 深度学习机器视觉车道线识别与检测 -自动驾驶

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

Leetcode630. 课程表 III

Every day a Leetcode 题目来源:630. 课程表 III 解法1:反悔贪心 经验告诉我们,在准备期末考试的时候,先考的课程先准备。同理,lastDay 越早的课程,应当越早上完。但是,有的课程 duration 比…

2023年09月CCF-GESP编程能力等级认证Scratch图形化编程四级真题解析

一、单选题(共15题,共30分) 第1题 人们所使用的手机上安装的 App 通常指的是( )。 A:一款操作系统 B:一款应用软件 C:一种通话设备 D:以上都不对 答案:B 第2题 下列流程图的输出结果是?( ) A:9 B:7 C:5 D:11 答案:A 第3题 默认小猫角色,执行下列程序…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑时空相关性的流域水风光多能互补系统高维不确定性场景生成方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 这篇文章的标题涵盖了以下几个关键方…

【C++】用命名空间避免命名冲突

🌸博主主页:釉色清风🌸文章专栏:C🌸今日语录:如果神明还不帮你,说明他相信你。 🪷文章简介:这篇文章是结合谭浩强老师的书以及自己的理解,同时加入了一些例子…

NOC2023软件创意编程(学而思赛道)python小高组初赛真题

软件创意编程 一、参赛范围 1.参赛组别:小学低年级组(1-3 年级)、小学高年级组(4-6 年级)、初中组。 2.参赛人数:1 人。 3.指导教师:1 人(可空缺)。 4.每人限参加 1 个赛项。 组别确定:以地方教育行政主管部门(教委、教育厅、教育局) 认定的选手所属学段为准。 二、…

MATLAB知识点:if条件判断语句的嵌套

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 我们通过一个…

基于springboot+vue的教师工作量管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

Java集合-Map接口

在Java中,Map接口表示键值对的集合,其中每个键都是唯一的,并且每个键映射到一个值。Map接口是集合框架中的一部分,位于java.util包中。它定义了一系列操作来管理键值对,例如添加键值对、删除键值对、获取键对应的值等。…

7.1.1 selenium介绍及安装chromedriver

目录 1. Selenium的用途 2. 安装Selenium库 3. 安装chromedriver 1. 查看谷歌版本号​编辑 2. 找到最新版本及下载 3. 配置环境变量 4. 检测是否配置成功 5. 用python初始化浏览器对象检测: 6. 参考链接 1. Selenium的用途 在前面我们提到:在我…

Github项目推荐-LightMirrors

项目地址 https://github.com/NoCLin/LightMirrors 项目简述 “LightMirrors是一个开源的缓存镜像站服务,用于加速软件包下载和镜像拉取。目前支持DockerHub、PyPI、PyTorch、NPM等镜像缓存服务。 当前项目仍处于早期阶段。”–来自项目说明。 也就是说&#xff…

RocketMq——Consume相关源码

摘要 RocketMQ只要有CommitLog文件就可以正常运行了,那为何还要维护ConsumeQueue文件呢? ConsumeQueue是消费队列,引入它的目的是为了提高消费者的消费速度。毕竟RocketMQ是基于Topic主题订阅模式的,消费者往往只关心自己订阅的…

定制开发一款家政小程序,应知应会

引言 在这个快节奏的现代生活中,人们对高效、便捷的家政服务的需求日益增加。随着社会结构的变化和职业生活的繁忙,许多家庭面临着时间不足、精力不济的挑战。在这种情况下,家政服务成为解决问题的有效途径。然而,传统的家政服务…

Python——桌面摄像头软件(附源码+打包)

目录 一、前言 二、桌面摄像头软件 2.1、下载项目 2.2、功能介绍 三、打包工具(nuitka) 四、项目文件复制(我全部合到一个文件里面了) 五、结语 一、前言 看见b站的向军大叔用electron制作了一个桌面摄像头软件 但是&#x…

如何在jupyter notebook 中下载第三方库

在anconda 中找到: Anaconda Prompt 进入页面后的样式: 在黑色框中输入: 下载第三方库的命令 第三方库: 三种输入方式 标准保证正确 pip instsall 包名 -i 镜像源地址 pip install pip 是 Python 包管理工具,…

新项目,Linux上一键安装MySQL,Redis,Nacos,Minio

大家好,我是 jonssonyan 分享一个我的一个开源项目,这是一个在 Linux 平台上一键安装各种软件的脚本项目,脚本使用 Shell 语言编写,后续还会增加更多软件的一键安装,代码在 GitHub 上全部开源的,开源地址如…

【Python】进阶学习:pandas--如何根据指定条件筛选数据

【Python】进阶学习:pandas–如何根据指定条件筛选数据 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望…

2024第二次培训:win11系统下使用nginx、JDK、mysql搭建基于vue2、java前后端分离的web应用运行环境

一.背景 公司安排了带徒弟的任务,给培训写点材料。前面分开介绍了mysql、jdk、nginx的安装,都只是零星的介绍,只能算零散的学习。学习了有什么用呢?能解决什么问题?能完成什么工作? 今天我们要用之前的几篇…

为什么要在业务系统中引入大宽表?

在高度系统化驱动的业务中,查看业务报表已经是一个很常见的需求了。在分工非常明确的大型企业里,往往有专门的数据分析团队 BI 或者数据开发团队,他们能够胜任此类需求(但也未必是轻松的,或者说高效的)。 …

Stable Diffusion 模型分享:AAM XL (Anime Mix)(动漫截屏风格 XL)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八 下载地址 模型介绍 AAM XL (Anime Mix) 是一个动漫截屏风格的模型,是 AAM - AnyLoRA Anime Mix 模…