Day22 ( 游戏设计 ) 小玛莉游戏机

小玛莉游戏机

教学原文参考:小玛莉游戏机

这篇文章会介绍如何使用「函式」、「逻辑判断」、「当按钮按下」、「变数」、「点亮」、「[计次回圈」等积木,实作一个有趣又复古的的小玛莉游戏机。

相关文章参考:计次回圈函式变数点亮逻辑判断

游戏方式

小玛莉游戏机是一款复古的博弈游戏,使用者先在外围选定一个灯号,游戏开始後外围中奖灯号开始移动,如果中奖灯号停下来与自选灯号重叠,则表示中奖,如果没有重叠,则没有中奖

如果使用 micro:bit 实作,游戏操作步骤如下:

  • 按下 B 按钮,在外围设定自选灯号。
  • 按下 A 按钮,中奖灯号开始移动 ( 此时按下 B 按钮没有反应 )。
  • 中奖灯号与自选灯号重叠,表示中奖。
  • 中奖灯号与自选灯号不重叠,表示没中奖。
  • 同时按下 AB 按钮,重新开始游戏。

micro:bit - 小玛莉游戏机

积木程序原理

参考「灯光绕圈圈 ( 函式 )」一文的内容,开启灯光在外围绕圈的范例,从这个范例继续修改。

范例:灯光绕圈圈 ( 函式 )

micro:bit - 小玛莉游戏机

因为游戏中会有亮度不同的灯号,所以要在亮灯的函式里,新增亮度参数,将滑鼠移到函式积木上方,按下右键,点选「编辑函式」。

micro:bit - 小玛莉游戏机

点选上方「数字」按钮,替函式增加数字的参数,并将名称命名为「亮度」。

micro:bit - 小玛莉游戏机

添加函式参数後,将原本函式里的「点亮」积木,改成「具有亮度」的点亮积木。

举有亮度的积木在「灯光 ( 更多 )」里,参考:点亮...亮度

micro:bit - 小玛莉游戏机

修改「当启动时」的积木内容,新增 a、b、play 三个变数:

  • 变数 a:中奖灯号,预设 1。
  • 变数 b:自选灯号,预设 1。
  • 变数 play:判断中奖灯号是否正在移动,预设 0 ( 0 表示没有移动,1 表示正在移动 )。

micro:bit - 小玛莉游戏机

将原本「重复无限次」的程序,改成「当按钮 B 被按下」:

  • 放入「如果 play = 0 那麽」的逻辑判断积木。
  • 将原本的程序放入 play = 0 的逻辑判断里。
  • 点灯的亮度设为 255。

micro:bit - 小玛莉游戏机

新增「当按钮 A 被按下」时,中奖灯就开始移动的程序:

  • 当按钮 A 被按下时,变数 play 设定为 1,让按下 B 按钮失去作用。
  • 放入「重复...次」回圈,重复 100~116 次
  • 每次重复执行让中奖灯号往前移动。
  • 每次重复持续显示自选灯号,但将自选灯号亮度调暗为 50
  • 重复结束後,判断 a 是否等於 b,如果 a、b 相等,表示中奖

micro:bit - 小玛莉游戏机

最後新增「当按钮 A+B 按下」的程序,当 AB 按钮按下时,将变数 a、b 和 play 设定为预设值,并清空画面。

micro:bit - 小玛莉游戏机

完成後,启动 micro:bit,就可以开始玩小玛莉游戏机了。

micro:bit - 小玛莉游戏机

范例解答

范例解答:小玛莉游戏机

延伸练习

如果已经熟悉了小玛莉游戏机的原理,还可以尝试更多好玩的作法:

  • 尝试让中奖灯出发时速度较快,接着越跑越慢 ( 解答 )。

关於我

大家好,我是 OXXO,是个即将迈入中年的斜杠青年,如果对我有点兴趣(笑,可以与我联系,一起来做点有玩又有创意的东西吧!


<<:  #22 JS: HTML DOM Fundamentals

>>:  [NestJS 带你飞!] DAY07 - Provider (下)

番外篇 - 波皮辣椒那你会修电脑吗仙姑狗

哈罗~ 大家好 相信看到标题的人应该都很困惑 这什麽名字啦~ 嘿 没错~ 这其实是我们的队名XD 好...

Day11-415. Add Strings

今日第一题:415. Add Strings Given two non-negative inte...

Day 7【钱包登入区 - Login Button】Kitten or Ice Cream?

【前言】 先来回顾一下 Day2 Project 分析的使用者流程,今天先来做第一步的 「登入按钮...

每个人都该学的30个Python技巧|技巧 12:终止回圈咒语—break及continue(字幕、衬乐、练习)

前两天教了for回圈还有while回圈,正常来说执行次数到了或是等到条件式不成立,这个回圈才会结束,...

gMSA 设定无密码的工作排程 (下)

使用gMSA作为Sql Server的服务帐号 有时候为了让管理跨server的资源更方便,服务就需...