2019-8-29 12:13:49 [显示全部楼层]
25460浏览
查看: 25460|回复: 14

[教程] 此帖,让mind+不再“单机”

[复制链接]
本帖最后由 Storm 于 2019-8-30 09:54 编辑

大家好。今天给大家分享一个mind+联机项目游戏,可以双人联机玩转mind+(不是一台电脑两人玩哦!)。

      鉴于之前和同事出差打乒乓球的灵感。我用mind+做了一个可以联机的类似于乒乓球的游戏。我们先来一个视频压压惊。


    【游戏说明】两台主机通过mind+实时模式中MQTT模块进行连接(此模块类似与“广播”功能)。30s的时间,进行对抗赛,分差为A-B的得分,大于0,A获胜;小于0,B获胜。当球打到对方的背景色时加一分。两个画面实时同步。

      熟悉mind+或scratch等图形化编程软件的老师应该知道,实时模式一般给我们的印象都是“单机游戏”,只能在一台电脑上玩。那作为一个经历过红警、冰封王座等局域网游戏的“叔叔”,也想把mind+做成一个联机游戏。于是就开始了胆大心细的尝试。
此帖,让mind+不再“单机”图13


       这个项目是在我学习mind+官网上SIoT本地物联网物联网内容时想到的。那接下来就要开始进行讲解了。

      在阅读下面内容之前,务必先学习mind+官网中SIoT本地物联网中的内容。(https://mc.dfrobot.com.cn/thread-281102-1-1.html

     或下载学习附件中的“mind+物联网实施模式无硬件”文件

以上是官方教程,实时模式无硬件介绍到此为止。接下来就是对此项目讲解环节。
      首先我们来mind+里面的几个模块
此帖,让mind+不再“单机”图1

      通过以上官方教程的指导。我们可以进行一个小结:
      1、mind+可以通过程序将文本、数字等信号发送到SIoT网页端,并储存;
      2、SIoT网页端可以向mind+发送特定的指令,当mind+收到特定指令时,可以执行自定义编写的程序;
     【思考】(我学习时内心的独白)
      1、既然SIoT网页端可以向连接相同网络和地址的mind+发送指令,是否可以发出一条指令后,两个主机上的mind+同时接收到相同的指令?
      2、是否可以A主机mind+发送消息→SIoT网页端→B主机mind+接收信息→执行程序?
      3、“MQTT”模块,是否相当于一个可以跨越主机的“广播”模块?
      答案是  YES!
     【注意】MQTT模块只有5个通道,意思是只能发送5个不同类别的“广播”。


联机弹弹球游戏开始
设计思路

确定整个游戏所需要的角色:滑板A、滑板B、球。(背景在背景库中选择后,手绘加上两个底色即可)
      A主机-A滑板
      1、实现效果:A主机控制滑板A,B主机的滑板A和A主机同步。
      2、程序示例:此帖,让mind+不再“单机”图2
      3、程序说明:此处选择的是Topic_0通道,发送特定的指令(up&down)。
       A主机-B滑板
      1、实现效果:受B主机控制,同步进行。
      2、程序示例:此帖,让mind+不再“单机”图3
       3、程序说明:此处还是选择Topic_0通道,发送的特定指令(up1&down1)区分A滑板的指令。
      A主机-球
      1、实现效果:点击绿旗时,球从中间顶点向下随机方向准备。点击球时发射。碰到边缘反弹;碰到滑板向对面随机角度反弹;碰到对方底色得分。
      2、程序示例:此帖,让mind+不再“单机”图4此帖,让mind+不再“单机”图5此帖,让mind+不再“单机”图6此帖,让mind+不再“单机”图7
       3、程序说明:
         图一,设置初始值,且球的初始方向同步(通过变量储存数据,发送到
Topic_1)。注意在MQTT初始化参数*这个部分要添加多个通道。
此帖,让mind+不再“单机”图8
         图二,是接到图一后面的程序,通过一个通道让双方计分并显示的分数同步。
         图三,由主机A点击小球,两边同时开始游戏并开始计时。控制小球碰到滑板A和滑板B时,通过两个通道(Topic_2、Topic_3)反弹效果同步。
         图四,同步计时并公布比赛结果。(此程序也可以放在前面任意两个角色中)


      B主机-A滑板
      1、实现效果:受A主机控制,在B主机同步。
      2、程序示例:此帖,让mind+不再“单机”图9
      3、程序说明:程序和A主机的程序是相对应的。注意数据要一致。
      B主机-B滑板
      1、实现效果:由B主机控制,设置初始值,同步A主机。
      2、程序示例:此帖,让mind+不再“单机”图10
       3、程序说明:此处连接了本地SIoT。
      B主机-球
      1、实现效果:和A主机同步运行
      2、程序示例:此帖,让mind+不再“单机”图11此帖,让mind+不再“单机”图12
      3、程序说明:和A主机小球的程序相对应。
Tips
1、滑板的尺寸需要点击其造型进行修改调整;
2、球和滑板的速度根据实际体验感调整移动距离;
3、开局说“go go go”是为了检验SIoT是否连接成功;
4、同一个角色内程序过多的话会影响同步的时效性;
5、此功能还可以做成聊天软件。


IoT物联网功能在结合硬件的使用中,功能会更加丰富、炫酷
对于初学者来说,做一个实时模式的联机游戏也是比较有成就感的
希望这篇帖子能够给更多老师一些教学的灵感
让创客的文化流行起来
不足之处,还请多多指教
(源程序代码见附件,欢迎体验)

End

局域网mind+程序.zip

24.05 KB, 下载次数: 5220

mind+物联网实时模式无硬件.zip

2.85 MB, 下载次数: 5252

本帖被以下淘专辑推荐:

Mary  高级技师

发表于 2019-8-29 13:33:10

好贴,真不错。
回复

使用道具 举报

rzyzzxw  版主

发表于 2019-8-29 15:22:30

好贴,真不错。
弱弱问一句,对面女同事不吵你们么。
回复

使用道具 举报

Storm  高级技师
 楼主|

发表于 2019-8-29 15:26:12

rzyzzxw 发表于 2019-8-29 15:22
好贴,真不错。
弱弱问一句,对面女同事不吵你们么。

哈哈。和谐社会,和谐办公。
回复

使用道具 举报

rzyzzxw  版主

发表于 2019-8-29 16:30:59

Storm 发表于 2019-8-29 15:26
哈哈。和谐社会,和谐办公。

这个帖子想法真棒,欢迎继续分享。
回复

使用道具 举报

春秋大仙  高级技师

发表于 2019-8-29 18:24:19

太赞了~就需要这种学生肯定喜欢的项目!
回复

使用道具 举报

木子姐姐  管理员

发表于 2019-8-30 17:27:00

看完想玩一把~
回复

使用道具 举报

DFByw_XnB4X  初级技师

发表于 2019-8-30 17:54:01

哇,很好玩的样子!!!
回复

使用道具 举报

DR_Choi  见习技师

发表于 2019-9-3 15:42:31

不错!
回复

使用道具 举报

gada888  版主

发表于 2019-9-23 07:31:24

不错的教程
回复

使用道具 举报

Pk0ckbCpxjtn  学徒

发表于 2021-9-1 20:54:36

感谢大佬!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

qin苒  初级技师

发表于 2021-9-13 20:08:36

期末做一个
回复

使用道具 举报

Storm  高级技师
 楼主|

发表于 2021-10-21 14:28:11


可以的!
回复

使用道具 举报

栎阳安琪  见习技师

发表于 2024-9-8 13:21:51

孩子,恕我直言,你做的是我之前热过的冷菜。
联机捉迷藏
MQTT的应用很早就有人出过教程了,在我们之前有很多先例。你要加把劲呀!争取更上一层楼!!!
回复

使用道具 举报

代码满天  初级技师

发表于 2024-9-8 14:00:47

栎阳安琪 发表于 2024-9-8 13:21
孩子,恕我直言,你做的是我之前热过的冷菜。
联机捉迷藏
MQTT的应用很早就有人出过教程了,在我 ...

呃,所以贪吃蛇什么时候出联机,期待ing……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail