云端聊天室
这篇文章延伸“云端变数记录文字”文章,搭配变数、广播消息...等积木,实作一个线上的云端聊天室功能,只要有注册 Scratch 的用户,都可以在这个范例中一对一的聊天。
打开范例
打开“云端变数记录文字”的范例,从这个范例进行修改。
角色设定
打开范例后,将猫咪的角色更名为“Cat”,并增加另外一个螃蟹“Crab”角色 ( 参考:Scratch 角色设定 )。
点击“螃蟹”角色,切换到“造型”页签,将第二个造型删除,保留第一个造型,将高度的尺寸调整到 90~100 之间,并对齐画布中心点 ( 因为螃蟹角色的造型比猫咪大,且没有对齐中心 )
增加第三个角色“标题”,输入“请选择你的角色”这几个文字,完成后在舞台上排列标题、猫咪和螃蟹角色 ( 如下图 )。
积木程序原理 ( 标题 )
点击“猫咪”角色,将下图框起来的积木,移动到“标题”角色里 ( 可以按右键复制、或放到背包里 ),移动之后删除这段积木。
点击“标题”角色,加入其他程序积木:
- 点击绿旗时:
- 定位到舞台中间偏上的位置 ( 0, 75 )。
- 新增一个变数 play 设定为 0。
- 显示标题。
- 收到 crab 和 cat 消息时:
- 隐藏标题。
积木程序原理 ( 猫咪 )
点击“猫咪”角色,设定点击绿旗时,定位在舞台中间偏左的位置。
从左侧积木清单里,将变数 code 的名称更换为 cat_code,变数 output 的名称更换为 cat_output,云端变数 msg 的名称更换为 cat_msg。
更换名称是为了方便与螃蟹 crab 识别。
放入“当角色被点击”积木,编辑点击猫咪角色时的动作:
- 判断变数 play 是否等于 0,如果等于 0 表示尚未选定角色,就执行对应的程序。
- 设定 play 为 1,表示已经选定角色。
- 将角色定位到舞台左下角 ( 165, -50 ),这个位置通常是聊天室里自己角色的位置。
- 广播消息“cat”,表示点选了猫咪角色。
- 设定 cat_output 变数为“空值”( 不包含任何空白 )。
- 使用重复无限次积木,每次重复执行:
- 询问用户并等待,使用 cat_output 作为询问的问题,就能够显示输入的文字,并同时可以让用户输入文字。
- 执行“编码”函数。
- 设定 cat_msg 的数值为 cat_code。
- 执行“解码”函数 ( 执行后,cat_output 的内容就会变成输入的文字 )。
放入“收到广播消息 crab”的积木,编辑收到 crab 消息的动作:
- 如果收到 crab 广播消息,表示用户选择了螃蟹角色。
- 将猫咪角色移动到舞台左上方,这个位置也是聊天室里“对方角色”的位置。
- 使用重复无限次积木,不断执行“解码”函数,将云端变数 cat_output 的内容,以文字的方式显示在舞台里。
积木程序原理 ( 螃蟹 )
点击“螃蟹”角色,设定点击绿旗时,定位在舞台中间偏左的位置。
新增一个云端变数 crab_msg,以及 crab_code 和 crab_ouput 两个变数。
将猫咪角色里的“编码”与“解码”函数,复制到螃蟹角色里 ( 点击右键复制或放到背包里 ),复制后将变数名称按照下图修改为 crab_code 和 crab_output。
继续将猫咪角色里的“当角色被点击”和“收到消息”的积木,复制到螃蟹角色里 ( 点击右键复制或放到背包里 ),复制后将变数名称按照下图修改为 crab_code 和 crab_output,收到消息改为 cat。
此处建议不使用“区域变数”( 参考:全域变数、区域变数 ),因为使用复制的方式,会造成区域变数错乱的状况发生,所以使用全域变数,并用名称区隔。
完成效果
完成后,除了原本的视窗之外,使用另外一个视窗打开这个专案,一个使用螃蟹角色,另一个使用猫咪角色,就能够开始进行一对一的云端聊天。
范例解答
范例解答:云端聊天室
微信扫码关注
抖音扫码关注