Scratch 之 大地图引擎怎么做?

news2024/11/28 16:28:12

引子

        简单的介绍一下,一些游戏引擎是有一个隐形小地图存在的,这个隐形小地图通常用来侦测碰碰撞和移动。那么,一个大地图引擎的背景肯定是很大的(一般来说大小都超过200),如果我们要做出一个枪战作品,那就迟早会发现一个问题:子弹在屏幕之外时,是无法打中目标的,也就是说,子弹被舞台区限制了。有些创作者可能会觉得,直接给子弹加个透明边框不就行了吗,或者做一个大的造型与真实造型来回切换也不就可以吗?嗯,可以说这些想法都非常好,但是这样做会有大量bug存在,且解读性差,不好修改,对后期创作有深远影响。这个时候有人就想出办法了:只要在舞台区内检测碰撞不就行了吗?于是做出了刚刚说的隐形小地图,但是,新的问题出现了,由于隐形小地图与大地图的大小不一,所以就算能侦测到碰撞也无法在大地图中检测到碰撞发生的位置。

       这个时候,就要用到一个重要的变量:缩小系数。简单介绍一下缩小系数,由于隐形小地图与大地图的大小不一,但是隐形小地图与大地图的大小却成正比例关系,是一个固定的值,这个比值就是缩小系数。

       缩小系数是自定的,一般我们做的时候,隐形小地图的大小会随着大地图的大小的变化而变化,这里出几个公式:

关于大小:大地图大小*缩小系数=小地图大小,小地图大小/缩小系数=大地图大小,小地图大小/大地图大小=缩小系数。

关于坐标:大地图坐标*缩小系数=小地图坐标,小地图坐标/缩小系数=大地图坐标,小地图坐标/大地图坐标=缩小系数。

      有了这几个公式,该怎么实现我们想要的功能也就显而易见了。

      我们需要一下几个角色:一是大地图背景,二是隐形的小地图,三是玩家显示的样子的角色,四是玩家的隐形小碰撞箱。

然后

我们就来创建这几个角色:

玩家样子和地图样子是给玩家看的;而玩家碰撞和地图侦测则是隐形的小地图,负责碰撞

接着

我们来定一个缩小系数,如果你的地图小,缩小系数可以大一些,如果你的地图大,建议缩小系数小一些,只要让碰撞都能在舞台区进行都行.

这里我把缩小系数设为了0.2,具体该怎么设还要看你创作的情况

通常我会在“玩家碰撞”这一角色中完成设置,你也可以在其他角色中设置。

由于缩小系数是一个常量,一般来说都不会去调整,所以我在变量名前加上了“#”,表示常量。tips:变量名通常不影响效果,但会影响代码的解读性。

好的,缩小系数已经设置了,接下来我们来绘画一下我们的场景。

在地图样子角色中绘画

我就这么画了,当然,一个地图还需要一个碰撞箱,也就是隐形小地图。

什么?你不会画隐形小地图?没有关系,我来手把手教你。

把地图复制下来

来到地图侦测角色

把复制过来的地图,粘贴到地图侦测这个角色里面

把它变成空心的

加粗轮廓

好了,我们这样就画完了,当然,这个隐形小地图到底该怎么画还是要看看你的实际情况来决定,总之,不碰撞的地方是空心的,要碰撞的地方是要保留的。

玩家碰撞也是一样,接下来我们就来画一下:

来到玩家样子角色,把造型复制下来

把造型粘贴到玩家碰撞里

画出一个比玩家样子小的矩形,但别小太多

为什么要比玩家样子小且为矩形呢?

答案是:方便创作。

比玩家样子小可以保证碰撞时不会出现问题,而矩形则是因为复杂造型碰撞会卡顿,当然,你也可以画出一个圆形出来。

删除后面的玩家样子

这样,玩家侦测就画好了

你不要问我为什么画这么丑,因为隐形小地图不用给玩家看,如果你的作品有需要,你也可以进行美化一下,要按实际情况来画。

接下来

我们来到地图样子角色中

我这里将大小设为300(大小多大得按你的实际情况决定),但是,可以看到,就算我设置了大小=300,但是大小却是273,这是因为Scratch编辑器有舞台区限制,你可以使用费米扩展,但我习惯用另一种方法。

创建一个空的造型,这个造型什么都不用画,空着就行了。

这个方法就是先换成空造型再设置大小,然后再切会来,这样就可以突破Scratch的大小限制(如图所示)。

好了,我们来到地图侦测角色

来到地图侦测角色

上代码!

然后,地图侦测的代码就到这里结束了,嗯,对,你没有听错。

接着

我们来到玩家侦测角色

来到玩家侦测角色

上代码!

tips:如果你有什么地方不懂或不了解为什么这么做,可以先去本文章第一段文字仔细地再看一下,实在不行可以选择到评论区问。

好的,我们把出生点坐标设置了,接下来我们来移动。

上代码!

tips:为什么要这么制作呢?首先,我把:(“按键d是否按下”-“按键a是否按下”)*移动速度,你肯定不知道这是什么意思,给不懂的人讲一下,Scratch有个特性,布尔值积木放某些返回值积木中,会返回1和0,1就是ture,0就是false,如果我们按下d键,a键没有按下,那么:(1-0)*3,这个结果=3,所以我们的x会+3,若d键没按,a键按下,则:(0-1)*3,这个结果=-3,所以我们的x坐标就会-3,实在不懂也没关系,可以用你熟悉的方法来实现移动。

OK,接下来我们来做做碰撞:

创建名为“碰撞”的普通自制积木

上代码!

当然,这只是碰撞侦测的其中一种方法,你也可以使用你自己的方法。这里用的方法的原理就是:碰到之后回到原来的位置。

上代码!

tips:记得创建图中出现的四个公有变量!

不好意思,我在做教程的时候忘记加上了图中圈起来的代码,你记得加上啊!

不好意思,我在做教程的时候忘记加上了图中圈起来的代码,你记得加上啊!

OK

接下来我们来到玩家样子角色

来到玩家样子角色

上代码!

如何做出摄像头跟随的效果?首先,摄像头肯定是有延迟的,所以玩家x-摄像头x就可得出摄像头延迟了多少,让玩家移到这个位置,就可以制作出摄像头跟随的效果。

好的

我们再来到地图样子角色

来到地图样子角色

上代码!

很好

这样的话应该是不存在bug的,除非你代码拼错了,或者编辑器出了些小问题,不过相信你能经过不断地努力,制作出一个大地图作品。

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

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

相关文章

Spring源码解析(七):bean后置处理器AutowiredAnnotationBeanPostProcessor

Spring源码系列文章 Spring源码解析(一):环境搭建 Spring源码解析(二):bean容器的创建、默认后置处理器、扫描包路径bean Spring源码解析(三):bean容器的刷新 Spring源码解析(四):单例bean的创建流程 Spring源码解析(五)&…

IBM HR Analytics 员工流失 EDA 和可视化绩效分析

IBM HR Analytics 员工流失与绩效分析 背景导入库输出前五行数据清洗检查空值删除不必要的列 可视化商务旅行直方图离家的距离箱形图教育与数字公司的关系年龄和月收入散点图按教育领域和工作角色划分的工作满意度相关矩阵的交互式热图 背景 揭示导致员工流失的因素&#xff0…

陪诊小程序开发|陪诊系统定制|数字化医疗改善就医条件

健康问题这几年成为人们关注的焦点之一,然而看病却是一个非常麻烦的过程,特别是对于那些身处陌生城市或者不熟悉就医流程的人来说。幸运的是现在有了陪诊小程序下,为您提供便捷的助医服务,使得就医过程得更加简单和轻松。 陪诊系统…

国联易安网页防篡改保护系统“渠道招募”启动啦!

作为业内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全的领军企业,国联易安网页防篡改保护系统基于“高效同步”、“安全传输”两项技术,具备了独特的“五重防护”新特性,支持网页的全自动发布、网页监控、报警和自…

webpack基础知识十:与webpack类似的工具还有哪些?区别?

一、模块化工具 模块化是一种处理复杂系统分解为更好的可管理模块的方式 可以用来分割,组织和打包应用。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体(bundle) 在前端领域中,并非只有webpack这一款…

c51单片机16个按键密码锁源代码(富proteus电路图)

注意了:这个代码你是没法直接运行的,但是如果你看得懂,随便改一改不超过1分钟就可以用 #include "reg51.h" #include "myheader.h" void displayNumber(unsigned char num) {if(num1){P10XFF;P10P11P14P15P160;}else if…

js修改img的src属性显示变换图片到前端页面,img的src属性显示java后台读取返回的本地图片

文章目录 前言一、HTML 图像- 图像标签&#xff08; <img>&#xff09;1.1图像标签的源属性&#xff08;Src&#xff09;1.2图像标签源属性&#xff08;Src&#xff09;显示项目中图片1.3图像标签源属性&#xff08;Src&#xff09;显示网络图片 二、图像标签&#xff08…

韦东山Linux驱动入门实验班(6)LED驱动---设备树

前言 &#xff08;1&#xff09;在韦东山Linux驱动入门实验班&#xff08;5&#xff09;LED驱动—驱动分层和分离&#xff0c;平台总线模型我们已经讲解了如何将驱动程序和硬件程序进行剥离。但是大佬们感觉这样还不行&#xff0c;他们认为要专门弄一个结构存储硬件信息&#x…

树,森林的遍历,以及其与二叉树遍历之间的关系

树和森林的的遍历 树的遍历 先根遍历 以下列树为演示 首先将树转化成二叉树&#xff08;孩子兄弟表示法&#xff1a;就是每个节点的左边连着它的左孩子&#xff0c;右边连自己右边的第一个兄弟&#xff09; 然后把转化为的二叉树进行先序遍历&#xff0c;中序遍历 进行先序…

【c语言初级】c++基础

文章目录 1. C关键字2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.2 C函数重载的原理--名字修饰采用C语言编译器编译后结果 1. C关键字 C是在C的基础之上&#xff0c;容纳进去了面向对象编程思想…

Spring Cloud Alibaba官方网站

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl 官方网站 SCA&#xff08;Spring Cloud Alibaba&#xff09;为分布式应用开发提供一站式解决方案。它包含开发分布式应用程序所需的所有核心组件&#xff0c;使您可以轻松地…

LeetCode 周赛上分之旅 #38 结合排序不等式的动态规划

⭐️ 本文已收录到 AndroidFamily&#xff0c;技术和职场问题&#xff0c;请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问。 学习数据结构与算法的关键在于掌握问题背后的算法思维框架&#xff0c;你的思考越抽象&#xff0c;它能覆盖的问题域就越广&#xff0c;理解难度…

思维能力的学习

前言 在工作中&#xff0c;随着工作时间的增长&#xff0c;我们与他人的差异不是知识本身的差异&#xff0c;主要是思维方面的差异&#xff0c;所以我们需要培养自己的思维能力。 思维能力的学习 思维是一个具备内在框架和逻辑的系统工程&#xff0c;思维覆盖了学习、认知、问…

43..利用fsolve函数解对应lambda下的方程组(matlab程序)

1.简述 fsolve的基本用法 : x fsolve(fun,x0) 其中fun应为函数句柄&#xff0c;x0为搜索的种子&#xff0c;即预估的fun0的解的大致位置。 函数句柄的定义方式主要有两种&#xff1a; 1.定义函数文件&#xff0c;使用操作符 定义function文件root2d.m, 如下&#xff1a; …

nvm下载node导致npm报错无法使用

有个依赖库需要更新下node&#xff0c;用nvm下载后项目跑不起来了&#xff0c;npm -v 还报错 其实一开始是npm下载不来&#xff0c;然后换了淘宝镜像后还是报错 然后就只能手动下载下了 进入node.js官网 https://nodejs.org/en/download 下载后注意要安装在你nvm目录中&#x…

httpd+Tomcat(jk)的Web动静分离搭建

动静分离是指将动态请求和静态请求分别交给不同的服务器来处理&#xff0c;可以提高服务器的效率和性能。在Java Web开发中&#xff0c;常见的动态请求处理方式是通过Tomcat来处理&#xff0c;而静态请求则可以通过Apache服务器来处理。本文将详细讲解如何结合Apache和Tomcat来…

MySQL的数据插入总结(不存在就插入,存在就更新)

MySQL的数据插入总结(不存在就插入&#xff0c;存在就更新) 1. on duplicate key update 当在insert语句后面带上ON DUPLICATE KEY UPDATE 子句&#xff0c;而要插入的行与表中现有记录的惟一索引或主键中产生重复值&#xff0c;那么就会发生旧行的更新&#xff1b;如果插入的…

高性能计算集群使用

一、PuTTY的下载与安装 PuTTY是一款开源的连接软件&#xff0c;是 SSH、Telnet、Rlogin 和 SUPDUP 网络协议的客户端程序。 下载网址&#xff1a;Download PuTTY - a free SSH and telnet client for Windows 安装好后连接自己的服务器 输入用户名和密码&#xff0c;回车登录…

前端安全XSS和CSRF讲解

文章目录 XSSXSS攻击原理常见的攻击方式预防措施 CSRFCSRF攻击原理常见攻击情景预防措施&#xff1a; CSRF和XSS的区别 XSS 全称Cross Site Scripting&#xff0c;名为跨站脚本攻击。为啥不是单词第一个字母组合CSS&#xff0c;大概率与样式名称css进行区分。 XSS攻击原理 不…