实现各种效果和功能的按钮,读这篇文章就够了(下)

简介: 本文主要内容包含各种效果和功能的按钮的实现方法,以及应用场景。

上下浮动的提示按钮


同样的,先创建按钮容器,然后增加如下的逻辑。


640.png


预览看一下效果。


640.gif


这里我使用的是上下的浮动,大家可以根据需要去实现各个方向上的浮动效果。


这种效果比较适合游戏中的需要提示地方,在新手教程中会经常用到,来告诉玩家点击这里或者是点那里。


在精致1010中,我将这种效果用在了提示玩家使用道具上。可以看到同时也是搭配了倒计时一起使用,给予玩家足够的反应和判断时间。


640.gif


另外,我们上方讲过的利用四种不同的行为实现的按钮效果,同样也可以用于实现各种“动起来”的按钮效果,比如说可以隔一段时间旋转一下,翻转一下或者缩放一下等等,具体的实现逻辑都类似,大家可以根据自己游戏的实际情况,酌情选择不同的按钮效果。


最后,我们来讲一下几个具有不同触发条件的按钮的实现方式。


当前工具已经给我们提供了 5 种不同的触发条件,在此就不再赘述。


94b4e912ac4f91d8818a73280afe2776.png


长按触发的按钮


首先,我们实现一下长按按钮触发的功能,例如长按按钮 1 秒钟之后才进行触发。


先创建一个按钮,然后为其设置两个局部变量。


60bd9c87dd21ccea175ea174a01e41ee.png


触发时间”用于控制按住按钮后多长时间后触发,“开始时间”用于记录当开始点击按钮那一刻的时间。


接着,看一下按钮的实现逻辑。


e21434b703609635224e1c012fba3302.png


这里有两块积木需要重点解释一下。


全局计时器:从游戏开始时,这个计时器就开始记录游戏的时间,我们可以通过它来获取到游戏一共进行了多少时间,它的单位是以秒计的。


停止当前精灵的其他事件:这个积木块的作用是可以强行的终止一个事件的运行。例如我们的按下事件正在等待触发时间,此时如果调用“停止事件”积木块,就可以强行的终止按下事件中的逻辑,也就是说我们的按下事件不会再继续执行等待,也不会最终触发。


了解了这两块积木,游戏逻辑就比较好理解了,当按下时,先记录开始时间,然后去不停的判断当前度过的时间是否超过“触发时间”,超过的话,则执行触发逻辑(这里将按钮变红当作触发)。如果在等待期间松手了,那么就强行终止按下的逻辑,按钮也就没有机会被触发了。


预览,看一下长按按钮的效果。


image.gif2f67d76f33ee50d3890c49c7c2b01f14.gif


长按按钮 1 秒钟后,按钮变红。


按住后以一定时间间隔触发的按钮


接下来,我们实现一下按住后以一定的时间间隔触发的按钮。


首先还是创建两个需要使用的局部变量。


d939e2e2650556d16a1beadfd83a34d7.png


“开始时间”用于记录每次循环开始的时间,“间隔时间”用于设置触发的间隔。


接着看一下具体的逻辑。


af9796408567064d46dcec043dfcc2c1.png


逻辑与长按触发类似,我们通过设置数字的增加来表示逻辑的触发。


点击预览看一下效果。


ebb16f4fe7fb168829620473d373fb39.gif


按住按钮没间隔 0.2 秒触发一次。

在射击游戏中通常不同的武器会有不同的攻击速度,我们可以通过武器的攻击速度来设置触发的间隔时间,实现不同的武器拥有不同射速的功能。

不知道你发现了没有,不论是“长按触发”还是“长按间隔触发”,我都使用的“按下”和“放开”事件,而没有使用“按住”事件,这是为什么呢?留一点儿小疑问,你可以去尝试一下能不能利用“按住”事件实现同样的功能。


按住后拖动的按钮


最后,我们来实现一个可以按住拖动的按钮。首先创建一个变量。用于记录当前按钮是否被按住。


8162c8b34331eb0e250c23fa54e47b10.png


然后,实现一下逻辑。


cebb2eccda9cbab996d251bf3cac4841.png


逻辑非常的简单,“被按住”变量用于标识当前是否被按住,如果被按住的话,我们就将按钮的位置设置到手指的位置。


预览一下效果。


image.gif85e8937d19a641bc636b773e9c4806cc.gif


在拖拽的实现中我仍然没有使用“按住”事件,其实是可以通过“按住”事件来设置按钮的位置的。


aa6e46683d901ba23cf2919b6a1ee6a6.png


你可以尝试一下在“按住”事件中设置位置,然后预览游戏,按住按钮进行快速的拖动,试过之后就能明白为什么不在“按住”事件中处理逻辑了。


总结一下, 在这篇文章中我们讲述了各种各样的按钮。我们可以利用工具提供的各种行为来快速的实现不同的按钮点击效果, 也可以通过“会动的按钮”来引导玩家去关注界面中的某些部分。最后,我们讲了一下在不同条件下触发的一些按钮的实现方式。


我把所有的按钮整理到了一个项目中,项目名称叫做:按钮大集合。


d5ab22c5c50bb56e3a4566cca91b5f09.png


**按钮大集合项目已经开源到社区,大家有需要的可以去自行获取进行改编或参考


按钮大合集 项目地址: https://gamemaker.weixin.qq.com/#/game?game_id=lbZTZiZWMwNjktYWVmYi00ZmIyLTk3NDItYzU0NzAyMWVmNGYx


希望这篇文章可以帮助你了解到各种各样的按钮以及其应用的场景和实现方法。你可以根据自己游戏的实际情况以及自己想要达到的目的来选择不同的按钮进行使用。


最后欢迎支持一下我的微信小游戏作品“精致1010”,一个会不停成长的小游戏。

相关文章
|
11月前
|
测试技术
【测试平台系列】第一章 手撸压力机(十)-定义场景
上一章,咱们对http请求进行了一些优化,本章节我们将组成场景去运行。首先场景就是一连串的http接口的请求,我们使用list(列表)来组装成一个场景
【测试平台系列】第一章 手撸压力机(十)-定义场景
|
11月前
|
存储 JSON 搜索推荐
【测试平台系列】第一章 手撸压力机(十二)-初步实现提取功能
上一章节,我们主要实现了基础的并发测试场景的能力。本章节,我们实现一下,如何对响应进行提取,使用正则/json对响应信息提取,并赋值给我们定义的变量。
|
11月前
|
测试技术
【测试平台系列】第一章 手撸压力机(九)- 封装函数
将我们的一些代码封装到函数和方法中,这样我们看来代码可读性更好。如果发现bug,也可以更好的进行追踪。
Axure快速入门(05) - Master母版减少重复操作
Axure快速入门(05) - Master母版减少重复操作
48 0
|
小程序 开发工具 UED
实现各种效果和功能的按钮,读这篇文章就够了
本文主要内容包含各种效果和功能的按钮的实现方法,以及应用场景。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
155 0
|
小程序
关于游戏背景图的调整,读这篇文章就够了
嗨!大叫好,我是小蚂蚁。最近看有很多问关于游戏背景图的问题,是该选择适应还是选择拉伸?是该适配宽度还是适配高度?不想要背景图去自动适配,想要自定义怎么办?这篇文章就分享一下与调整游戏背景图有关的那些事儿。
122 0
|
存储 开发者
彻底搞懂函数,读这篇文章就够了
如果你之前使用过任何一门编程语言,那么对于你来讲想必已经知道什么是函数,以及如何使用函数了,那你大可不必往下读了。这篇文章是写给新手看的,也就是说我假设你对于函数没有任何的概念。 我们就先从什么是函数来说起吧!
116 0
|
存储 小程序 容器
想做个答题类的微信小游戏?读这篇文章就够了
本文重要内容包含答题类小游戏的制作原理和制作方法,在掌握实现原理和方法后,你也能够根据自己的需要,制作自己的答题类小游戏。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
218 0
|
SQL 数据库
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
146 0
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
|
数据库
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记
您好,我是码农飞哥,一直想飞暂时在跑个那个老哥。
259 0
【高效编码】查询日志的命令老是记不住?没关系,这篇文章帮你记