拉霸机
这篇文章会介绍透过 Scratch 的角色位置的换算,搭配清单、函数、全域变数和区域变数,实作一个俗称“吃角子老虎机”的拉霸机效果。
快速导览:
绘制角色 ( 拉霸机花色 )
制作拉霸机的关键点在于“花色”的角色,必须按照步骤实作,过程中请务必确认位置和尺寸是否相同,首先使用“绘画”的方式建立角色“shape”作为拉霸机的花色,使用方形工具绘绘制一个“60x60,白色无边框”的正方形,并将正方形对齐画布的中心点 ( 使用鼠标拖拉正方形靠近画布中心点时,会自动吸附到画布中心点 )。
继续使用方形工具,在白色正方形里绘制图案,注意图案尺寸不要超过白色正方形,完成后全选图案和正方形,点击上方“建立群组”按钮将其组合成群组。
复制群组,先将复制的群组对齐画布中心,往上移动 60 点,使尺寸变成 60x120,接着解散群组。
解散群组后就可以修改图形,将原本的图案改成其他的图案 ( 范例将绿色正方形改成黄色三角形 )。
接着如法炮制,绘制许多不同的图案,并调整上下位置,因为每一组图案的高度都是 60,因此上下移动时也都采用 60 为单位移动,范例使用 15 组图案,尺寸就会是 60x900 ( 60x15=900 ),对齐时可以使用 ctrl + a 全选移动,将“第四组”图案用目测的方式对齐画布中心,上方还会有三组图案。
绘制角色 ( 拉拉霸机、猫咪 )
使用“绘画”的方式建立角色“bg”作为拉霸机的造型,绘制时使用许多深棕色四边形,搭配一些文字和边框,实作如下图的造型,注意中间需要保留一些透明区域,作为呈现花色使用。
使用“选个角色”的方式建立角色“cat”,角色选择 Scratch 默认的猫咪,完成后将花色 shape、拉霸机 bg 和猫咪 cat 按照下图,排列在舞台中,并按照自己的绘制方式调整位置,使得拉霸机具备可以呈现三组花色的空间*。
程序原理 ( 拉霸机花色 )
点击“shape”角色,从左侧积木清单里新增“建立分身”函数,勾选“执行完毕再更新画面”。
先将角色定位在 (-80,0),接着透过函数产生三个分身,每次产生分身后就往右边移动 80 点,完成后隐藏本尊。
从左侧积木清单里新增“形状清单”函数,勾选“执行完毕再更新画面”。
形状清单的函数主要负责“建立花色形状的清单”,由于花色可能很多,可以透过“文字转清单”的方式,先建立 source 和 n 变数,根据花色建立对应的文字字串 ( 例如红绿黄就会是 rgy ),接着运用重复循环建立清单。
从左侧积木清单里,建立“仅适用当前角色”的区域变数“$_shape”,目的在于“分别控制”不同的分身,变数名称开头使用“$_”区分区域变数和全域变数。
编辑“当分身产生”的程序,让三组花色以随机高度出现,并运用 $_shape 区域变数搭配 x 座标,当按下空白键或鼠标时,分身会由左到右每隔 0.5 秒依序做动作。
从左侧积木清单里新增“转动”函数,不要勾选“执行完毕再更新画面”,替函数加入转动次数 num、速度 v 和加速 dy 三个参数。
从左侧积木清单里,建立“仅适用当前角色”的区域变数“$_dy”,目的在让不同分身之间的加减速不会互相影响,变数名称开头使用“$_”区分区域变数和全域变数。
编辑“转动”函数内容,函数主要负责花色的转动,除了“等速”转动,还会根据加速减速的参数进行加速或减速,转动时加入逻辑判断,如果 y 的位置太低就设定角色的 y 座标为 480。
编辑“当分身产生”的程序,加入三组“转动”函数,依序是“加速、等速、减速”,完成后先将 y 座标补满成 60 的倍数,在滑动 0.2 秒到“y 座标 + 60”的位置 ( 往上滑动一格 ),做出拟真的拉霸停止效果,当拉霸停止后,根据目前所在的 y 座标换算出数值,透过数值取得 shape 清单里的名称,将名称存入 result 清单里。
从左侧积木清单里新增“判断得分”函数,勾选“执行完毕再更新画面”。
当花色停止转动后,使用“判断得分”函数判断 result 清单内容,如果清单内容三个都相同表示中大奖,发送广播信号 1,如果只有两个相同就发送广播信号 2。
程序原理 ( 拉霸机、猫咪 )
点击拉霸机“bg”角色,设定点击绿旗时的定位以及在最上层。
点击猫咪“cat”角色,设定点击绿旗时的定位以及在最上层,并设定收到 0、1、2 的广播时要讲的内容。
效果展示
完成后点击绿旗,就可以开始拉霸机的吃角子老虎机游戏。
微信扫码关注
抖音扫码关注