Navigation

    CreatiCode Scratch Forum

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • CreatiCode

    广播消息与接收消息(第2部分)

    二维积木
    1
    1
    192
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      creaticodeteacher2-mail last edited by admin

       

      先修科目

      • 广播消息与接收消息

       

      介绍

      在另一篇文章,大家已经学习了如何广播消息与接收消息。

      有些使用消息的高级方式,我们将在本文章中讨论。

       
       

      带参数的消息

      当我们广播消息时,可选择附加一个参数。这样我们就可以重新使用同一种消息。

      例如这个项目,角色科迪问用户要转几次。如果用户回答“1”,科迪就广播消息“转1次”,另外2个角色就转1次。同理,如果用户回答“2”或“3”,科迪就广播消息“转2次”、“转3次”,另外2个角色同样会响应这个消息。

       

       
       

      尽管这个程序能够运行,但有个问题。用户有可能输入任意数字,比如10、100。为了正确处理所有回答,我们要添加很多种消息:“转4次”、“转5次”……“转10次”……“转100次”……

      好在你不必这么做。你只需发送一条消息“转向”,然后再添加一个参数,就是转向次数:

      当其他角色收到这条消息,它们可以设置一个变量,那个参数就存入这个变量。例如,如果科迪广播消息“转向”,并且带参数10,然后螃蟹收到消息“转向”,数值10就存入一个新变量。之后,这个变量就用来控制转几次。

       
      同理,当甲虫收到消息“转向”,就把这个参数存入另一个变量:

       
      现在程序不仅简洁明了,还能响应任意的转向次数!

       
      注意,利用这个积木,你可以把“等待”与“参数”结合起来。

       
       
       

      消息只发送至一个角色

      对于另一个更高级的方式,你可以把消息只发送至一个角色,而不是所有角色。如果你想让一些隐私消息仅对2个角色之间可见,就适合用这个积木。

      例如,在上方例子中,你可以把积木“广播”换成积木“发送”:

      角色转动过快,为了看清角色转动过程,使角色每转1次等待0.3秒。

      结果,只有螃蟹会响应这条消息:

      1 Reply Last reply Reply Quote 0
      • First post
        Last post