手把手教你,三分钟学会制作「消消乐」游戏

10 篇文章 0 订阅
10 篇文章 0 订阅

消消乐,大概是陪伴我们长大的游戏,从以前的消方块,到现在的开心消消乐、宾果消消乐!

今天,我们要教给大家编程制作消除游戏!消除游戏孩子们都喜欢玩,今天,咱们就与孩子们一起用最新的Scratch 3.0,亲手制作自己喜欢的游戏吧!

ps:今天我们是使用的是英文版给大家做演示,如果孩子还小的话,可以使用西瓜的平台,点击左上角的地球标志将界面调整为中文版哦!

首先挑选一个角色 

我们进入软件,点击右下角的【选择一个角色】,在弹出的列表中挑选自己喜欢的角色,西瓜就选这个气球啦!。

 2.设置点击时播放的声音

从【事件】类别中找到这个黄色的【当角色被点击】模块,从【声音】类别中找到【播放声音pop】模块,把它们拖拽到代码编辑区,连接在一起。当我们在游戏中点击气球,它就会发出pop的声音了。

3.设置一个得分变量

如果我们将点击中角色的次数来计算我们成功消除的次数,并希望记录下这个数据,该怎么做呢?这个时候我们就会用到编程里一个非常重要【变量】。我们可以把点击的次数存放在变量里面。

如何建立呢?我们可以从左侧的【变量】类别中选择【建立一个变量】,并把它命名为score(分数)。大家会发现在舞台窗口的左上角就出现了“score 0”这个得分计数器啦。

 4.被点击时增加分数

我们已经添加了计分器,如何才能实现计分呢?我们从【变量】类别中把【将“xxx xxxx”增加1】中的xxxxxxxx改为我们之前建立好的score变量,然后把【将“score”增加1】模块拖拽到第2小节已经完成的程序下方。每点击一下气球,你就会发现计数器会增加1啦。

5.移动到随机位置 

在消除游戏中,被消除的对象出现的位置,并没有什么规律性,所以,咱们如何让气球,每次都出现在随机的位置呢?

我们将【事件】类别中的【当绿旗被点击】和【控制】类别中的【重复执行】拖拽到代码编辑区,然后从【运动】类别中找到【移到随机位置】放到重复执行模块内部,最后再添加【等待1秒】模块。

现在,我们点击绿旗,气球每隔一秒钟就会出现在随机的位置了。

6.改变颜色

不过,咱们的气球都是一个样,消除游戏中的被消除对象,可是有着各种造型的。咱们就先给气球换个颜色吧!怎么做呢?

西瓜告诉大家,只需要从【外观】类别中把【将颜色特效增加25】模块添加到刚才的程序中移到随机位置上方就好啦!

7.把得分清零

每当游戏重新开始的时候,我们肯定希望得分是从0开始的。那么如何将变量score设置成0呢?我们只需要把【变量】类别中【将“xxxxx”设为0】的xxxxxxxx改为我们之前建立好的score变量,然后把【将“score”设为0】模块拖拽到【当绿旗被点击】下方就好啦。

跟着我们一步一步地操作就可以完成游戏了,完成这个游戏的小朋友们是不是充满了成就感呢?!快去分享给你们的朋友一起玩吧!看看他们会不会给到更多改进的灵感呢?

虽然非常简陋,不过喜欢玩消除游戏的小学员都说,等到有时间自己可以研究研究做个加强版的消除游戏,我们很期待哦!

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
消消乐是一种经典的益智游戏,玩家需要通过消除相同颜色的方块来获得分数。下面是一个用Python实现消消乐游戏的简单示例: ```python import random # 游戏区域大小 ROWS = 8 COLS = 8 # 方块颜色 COLORS = ['R', 'G', 'B', 'Y'] # 创建游戏区域 board = [[random.choice(COLORS) for _ in range(COLS)] for _ in range(ROWS)] # 打印游戏区域 def print_board(): for row in board: print(' '.join(row)) print() # 消除相同颜色的方块 def eliminate(row, col, color): if row < 0 or row >= ROWS or col < 0 or col >= COLS or board[row][col] != color: return 0 count = 1 board[row][col] = '' count += eliminate(row-1, col, color) count += eliminate(row+1, col, color) count += eliminate(row, col-1, color) count += eliminate(row, col+1, color) return count # 消除所有相同颜色的方块 def eliminate_all(): total_count = 0 for row in range(ROWS): for col in range(COLS): if board[row][col] != '': count = eliminate(row, col, board[row][col]) if count > 1: total_count += count return total_count # 主循环 while True: print_board() score = eliminate_all() print(f"Score: {score}") if score == 0: print("Game Over") break # 重新填充空缺的方块 for col in range(COLS): empty_count = sum(1 for row in range(ROWS) if board[row][col] == '') if empty_count > 0: for row in range(ROWS-1, -1, -1): if board[row][col] == '': board[row][col] = random.choice(COLORS) empty_count -= 1 if empty_count == 0: break ``` 这个示例中,我们使用二维列表来表示游戏区域,每个元素代表一个方块的颜色。通过递归函数`eliminate`来消除相同颜色的方块,并计算消除的总数。然后,我们在主循环中不断打印游戏区域、消除方块并重新填充空缺的方块,直到没有可以消除的方块为止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值