以下内容来自公众号: 小游戏可视化开发工具
前一段时间合成大西瓜爆火,网友们玩的是不亦乐乎。今天就来带大家一起做一个“合成大宝剑”
游戏的玩法很简单,随机克隆一个元素,在手指点击的位置掉落,碰到相同类型的元素就合成另一种元素。每合成一次记一次连击,连击次数越高,得分增加的越大。
因此,我们需要实现一下一下几个功能:
1.随机生成
2.碰撞升级
3.连击以及合成特效
4.计算得分
一. 添加精灵
首先添加相关精灵和全局变量。
随机生成的元素有4种,我们添加"主角"和一个隐藏夹子,并给主角添加4个造型。
隐藏夹子用于初始化随机生精灵时的位置,因此我们将夹子隐藏并设置透明度为0。
小元素合成大元素,因此,编号越大的精灵宽和高就设置的越大。给到编号2到1024的元素都加上物理行为,并设置相关系数
给地板添加物理行为,场景启动时开启物理引擎
二. 随机生成
给主角添加局部变量身份证和全局变量身份证,身份证表示当前精灵的编号,1为本体。场景启动时,初始化这两个变量,并克隆自己
作为克隆体启动时,移动到夹子的相对位置,将身份证设置为2并随机造型。如果是第一个元素,固定切换到元素2的造型。
将造型的编号赋值给检测编号,通知所有人克隆夹子,并给主角一个放大缩小的动画
夹子收到克隆夹子,显示自己。收到隐藏夹子,则把自己隐藏,并重置坐标
主角和夹子都可以随着手指移动而移动
当手指在屏幕上松开,根据造型编号克隆对应的元素,如果主角和不同类型的元素相交,则会退出当前循环。
克隆相关元素之后,重新克隆一个主角,并把当前的克隆体删除
元素作为克隆体启动时启动物理行为,就会往下掉落。这样就实现了随机生成效果
三. 碰撞升级以及计算得分
每个元素跟主角一样,都有对应的身份证和检测编号变量,检测编号和身份证初始化都为0,当相同元素相碰,检测编号加1,赋值给身份证。等待0.1帧后重置检测编号为0。原因是两个元素碰撞都会执行这段积木逻辑,但是执行的顺序不一样,结果就是先执行的元素身份证为1,后执行的身份证为2。
删除身份证为1的克隆体,身份证为2的元素复制克隆下一个元素并播放动画以及计算得分。这样就避免一次碰撞产生2次克隆和得分的问题了。
元素1024为最大的元素,不会发生碰撞。这样碰撞升级的逻辑也完成了。每次碰撞都会计算一次得分,元素和连击次数越大,分数越高。
四. 连击以及特效动画
每受到一次连击通知,就会克隆一次连击,并删除原有的克隆体。
叠加连击次数,并更新连击的文本内容,1秒后删除克隆体。
动画效果则通过粒子插件实现,我们需要添加粒子插件,并设置相关系数。
动画只有在克隆出元素4及以上的元素时才有。因此当克隆元素时,如果动画效果等于1,则克隆粒子
作为克隆体启动时,播放粒子效果
这样,一个合成大宝剑的游戏就差不多了完成了,感兴趣的同学可以观看相关教学视频或者扫码体验该项目。
B站视频地址:
https://www.bilibili.com/video/BV1Jy4y1J7Gt
项目地址:
https://gamemaker.weixin.qq.com/#/game?game_id=lbZGZkYTZlZmYtMmY3OC00YzUzLWIyMGQtODI2N2IwOGIwNzYz
扫码可体验该游戏
扫码关注公众号
项目地址已更换:https://gamemaker.weixin.qq.com/ide?code=001bPh0w3apMAW2AE91w3foTiD4bPh0G&state=#/home/lbZGUxM2Q3YmYtM2Y4MS00YmZhLTllODYtMWUwZjJkZDM4MzMy