Scratch 之 创作小技巧 -- 让触碰效果更丝滑

news2024/9/28 21:28:38

今天小技巧的主题是——丝滑

a.让触碰效果更丝滑

——非线性放大

        相信大家,做游戏时都会有一开始按键吧,把鼠标放上去,这个按键就会有相应的变化,如放大,作为初学者,这段的代码可能是这样↓

        虽然看起来挺好的,但存在一个美观上的问题,太过于突兀,让人感受到一种不和谐的感觉,其实我们还可以增加一点视觉效果,就是慢慢放大↓

        这时效果好了很多,但是还没有达到丝滑的程度,如图种的代码大小放大到110就戛然而止,宛如一个刹车停止了这个放大,这时候,非线性就非常重要了,它的效果就是加速然后慢慢停止,就有丝滑的效果了↓↓↓

用法:

  1. 注意使用的是“将大小增加()”语句
  2. 增加的值的代码为(目标大小 - 现在大小) * 速度
  3. 速度v的取值范围为0<v<1

        为什么会出现丝滑效果呢?显而易见,就是每次增加大小的值越来越小,增加大小的值会变的原因是因为这个值中含有1个变量——大小,就是说,这个代码影响了大小,大小的改变影响了下次的大小改变,我们可以列个数据↓

目标大小现在大小本次增加大小速度
11010020.2
1101021.60.2
110103.61.280.2

        图表中的“现在大小”越来越大,“本次增加大小”越来越小,其实这段代码永远不会让角色大小达到110,只是无限接近,但效果达到了,相差0.0000000……01的大小就无关紧要。

        有些触碰效果不用大小改变,而是改用特效,如用下面这个代码↓

有效取值范围-100~100

        我们也可以用上面说的非线性来实现效果,只是没有当前角色亮度,那我们可以自创一个变量,最终代码如下图所示↓

用法也是一样的

        非线性可以用在转场,触碰效果中,让效果更丝滑,快去试试吧。


b.让移动更丝滑

——使用sin函数来移动

        我们拿一个萌新的作品为例↓

        这个“新游戏”角色是可以上下浮动的,是怎么做到的呢,难不成是重复执行10次将y坐标增加5然后再重复执行5次y坐标减小5?但这样就不够丝滑了。是非线性吗?有道理,但是有个代码实现起来更简洁,它就是sin代码↓

        这个代码在运算模块中用得最少的一个代码了,因为很少时候会用到它,但这个代码也可以让角色的移动更丝滑(指上下移动)。

        sin函数,是正切函数,三角函数家庭里的一员,百度上是这样解释的:于任意一个实数x都有唯一确定的值sinx与它对应,按照这个对应法则所建立的函数。

        总而言之就是当x为任意实数时, -1 ≤ sin(x) ≤ 1,图像如下图:

        这个图像成波浪形(对此感兴趣的可以上网查一下为什么),所以我们可以这样做↓

        注意:sin(i * 5) 不能替代sin(i) * 5 ,这里的5是让效果更明显(即范围变大),而i的值是决定速度的。


c.让操作更丝滑

——用鼠标坐标判定触碰

        我们还是以这名萌新的作品为例↓

        我们还是以“新游戏”这个角色为例,但这次不看它的移动,看它触碰时的效果,我们发现,触碰它时,亮起了光,所以代码是这样的

        真的是这样吗,但其实我们把鼠标放在字与字的中间,即鼠标没有碰到它,但它还是亮光,这是出现bug的吗?其实不是bug,而且这样的状态才符合逻辑,只要鼠标放在规定范围内就亮光,操作更便捷,怎么做到的?其实只要将判断条件改为这个就行了

        是不是很简单,但要注意几个点:

  1. 注意加上绝对值(abs)代码
  2. 里面的数值范围是这个造型的宽/高度 除以2再大一点点

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

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

相关文章

解析大规模开发:提升企业级开发效率与质量,加速创新

在数字化转型的大环境下&#xff0c;越来越多的企业依赖软件来驱动业务和创新。然而&#xff0c;随着开发规模日益庞大&#xff0c;如何更好地提升研发效能&#xff0c;从而塑造更强大的竞争力&#xff0c;已然成为众多企业亟待解决的共同难题。 作为国内领先的DevSecOps提供商…

凉而不冷 柔而不弱 三菱重工海尔舒适风科技助您整夜安眠

古人云&#xff1a;安寝乃人生乐事。可随着夏天的到来&#xff0c;昼长夜短&#xff0c;家里的老人、儿童、父母都存在不同的入睡苦恼。对于儿童来说&#xff0c;空调温度调的太低容易踢被子着凉&#xff0c;温度调的高又怕孩子满头大汗&#xff1b;父母自身也会因为半夜帮孩子…

盛元广通高校实验室开放预约与综合管理系统LIMS

系统概述&#xff1a; 高校实验室涉及到的课程、老师、学生多&#xff0c;管理起来费时费力&#xff0c;盛元广通高校实验室开放预约与综合管理系统LIMS提供简单易用的账号管理、实验室管理、课程管理、实验项目管理、实验时间设定&#xff1b;为学生提供简单易用的自主实验选…

使用 NBAR(基于网络的应用程序识别) 进行应用流量分析

识别和分类网络应用程序是有效管理网络带宽的关键。通过对网络流量进行分类&#xff0c;管理员可以根据企业的需要可视化、组织和确定网络流量的优先级。通过识别和分类网络流量&#xff0c;网络管理员可以有效地应用 QoS 策略&#xff0c;从而实现优化的网络带宽性能。 什么是…

docker 安装oracle19c linux命令执行sql

docker安装oracle # 下载镜像 19.3.0.0.0 docker pull registry.cn-hangzhou.aliyuncs.com/laowu/oracle:19c # 创建文件 mkdir -p /home/mymount/oracle19c/oradata # 授权&#xff0c;不授权会导致后面安装失败 chmod 777 /home/mymount/oracle19c/oradatadocker run -d \ …

0基础学习VR全景平台篇 第88篇:智慧眼-成员管理

一、功能说明 成员管理&#xff0c;是指管理智慧眼项目的成员&#xff0c;拥有相关权限的人可以进行添加成员、分配成员角色、设置成员分类、修改成员以及删除成员五项操作。但是仅限于管理自己的下级成员&#xff0c;上级成员无权管理。 二、前台操作页面 登录智慧眼后台操…

JS中如何区分变量是数组还是对象

总结&#xff1a; 这里提供三种方法&#xff1a; var arr[] var arr2{}1、constructor:数组的constructor是function Array(){};对象的constructor是function Object(){}2、instanceof&#xff1a;数组 instanceof Array&#xff1a;为true;对象 instanceof Array: 为false;3、…

ICASSP 2023说话人识别方向论文合集

今年入选 ICASSP 2023 的论文中&#xff0c;说话人识别&#xff08;声纹识别&#xff09;方向约有64篇&#xff0c;初步划分为Speaker Verification&#xff08;31篇&#xff09;、Speaker Recognition&#xff08;9篇&#xff09;、Speaker Diarization&#xff08;17篇&#…

GuLi商城-前端基础Vue指令-单向绑定双向绑定

什么是指令? 指令 (Directives) 是带有 v- 前缀的特殊特性。 指令特性的预期值是:单个 JavaScript 表达式。 指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于DOM 例如我们在入门案例中的 v-on&#xff0c;代表绑定事…

IO多路复用(poll:与select类似,当监测的文件描述符有一个或多个就绪时,执行对应的IO操作

使用poll实现TCP循环服务器接收客户端消息并打印 服务器 客户端 写一个makefile方便使用 结果 笔记

611. 有效三角形的个数

611. 有效三角形的个数 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;参考代码&#xff1a; 原题链接&#xff1a; 611. 有效三角形的个数 https://leetcode.cn/problems/valid-triangle-number/description/ 完成情况&#xff1a; 解题思路&#xff1a; …

第一篇:编写 Hello World 程序

编写 Hello World 程序 Hello World 程序就是让应用程序显示 Hello World 字符串。这是最简单的应用&#xff0c;但却包含了一个应用程序的基本要素&#xff0c;所以一般使用它来演示程序的创建过程。本章要讲的就是在Qt Creator 中创建一个图形用户界面的项目&#xff0c;从而…

什么是数字化?什么是数字化转型?为什么企业选择数字化转型?

数字化&#xff1a; 数字化是指将模拟信息或物理对象转换为数字格式的过程。这涉及将数据、文档、图像、视频和其他形式的信息转换为可以以电子方式处理、存储和传输的二进制代码。与传统的模拟方法相比&#xff0c;数字化可以更有效地存储、检索和操作数据。 数字化转型&…

3D医学教学虚拟仿真系统:身临其境感受人体结构和功能

3D医学教学虚拟仿真系统是一种基于虚拟现实技术的教学工具&#xff0c;它可以帮助学生更好地理解和掌握医学知识。这种课件通常包括人体解剖学、生理学、病理学等方面的教学内容&#xff0c;通过三维立体的图像和动画展示&#xff0c;让学生更加直观地了解人体结构和功能。 与传…

.IFC文件如何打开【在线工具】

IFC文件是以工业基础类&#xff08;IFC&#xff09;格式创建的模型文件&#xff0c;这是建筑信息模型&#xff08;BIM&#xff09;程序使用的开放文件格式。它包含建筑物或设施模型&#xff0c;包括空间元素、材料和形状。 IFC&#xff08;工业基础类&#xff09;数据格式是建…

长胜证券:市场持续震荡 低位布局时机或已来临

业内人士表明&#xff0c;出资者心情的动摇起伏会大于商场价格&#xff0c;同时出资者心情的最高点和最低点往往滞后于商场价格的最高点和最低点&#xff0c;所以当商场动摇较大时&#xff0c;从心情动身去做决策往往不可能收到很好的出资效果。而当咱们以长期的心态参加出资&a…

学习开发振弦采集模块的注意事项

学习开发振弦采集模块的注意事项 &#xff08;三河凡科科技/飞讯教学&#xff09;振弦采集模块是一种用来实时采集和处理振弦信号的电子设备&#xff0c;在工业、航空、医疗等领域都有广泛应用。学习开发振弦采集模块需要注意以下几点&#xff1a; 一、硬件选择 首先需要选择…

汽车行业必读:ISO 26262和ASIL安全等级解读与攻略

ISO 26262&#xff0c;名称为“道路车辆——功能安全”&#xff0c;是汽车行业中使用的功能安全标准。而ASIL/ASIL级别则是确定软件开发安全要求的关键组成部分。 遵守这一标准对于汽车产品的开发来说至关重要。原始设备制造商、供应商和汽车零部件开发商们都需要遵守这一标准…

【C++】基础:动态内存与智能指针

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍动态内存与智能指针。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c;下次更新不迷路&a…

57从零开始学Java之一文详解String字符串的底层实现原理

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 在之前的两篇文章中&#xff0c;壹哥给大家介绍了String字符串及其常用的API方法、常用编码、正则表达…