完成puzzle游戏的制作(一)相关的案例之后,来正式开始着手做puzzle游戏。

Puzzle游戏界面

1. 新建代码块

使用Blockly Developer Tools新建拼图所涉及的代码块。

拼图模块1

拼图模块2

拼图模块3

拼图模块4

拼图模块5

2. 导出代码块

导出代码块

点击Block Exporter选项卡,全选所有代码块,选择Block Definition(s)和Generator Stub(s)的文件类型,并分别定义文件名,点击Export,即可将所有的块的定义代码导入到puzzle_b.js文件夹中,将所有的块的生成代码导入到puzzle_g.js文件夹中。

3. 导出工作区

拼图案例不涉及Toolbox工具箱,所以这里直接定义工作区即可,将需要用到的块添加到工作区,然后导出Starter Code和Workspace Blocks文件。

设置并导出工作区

4. 文件的整理

新建文件夹,并将2和3步中导出的文件,都复制粘贴到新建的文件夹中;将blockly_compressed.js和javascript.js文件复制粘贴到新建的文件夹中;

js文件整理

js文件导入:

<script src="blockly_compressed.js"></script>
<script src="puzzle_b.js"></script>
<script src="javascript_compressed.js"></script>
<script src="puzzle_g.js"></script>

并将workspace的xml文件,插入到body标签中,修改导出的workspace.js中的代码:

/* Inject your workspace */
var workspace = Blockly.inject('blockDiv', options);

完成以上步骤之后,保存所有的文件,并用浏览器打开html文件,在浏览器中查看是否创建成功。

puzzle界面成功加载

5. 对“检查答案”功能进行设计

(1)添加按钮

在body中添加“检查答案”的按钮

<button id="check_button">检查答案</button>

(2)设计生成代码

给每个块设置返回代码,这里为了方便匹配和判断,选取简单的数字作为返回值:

Blockly.JavaScript['question'] = function(block) {var value_question_img = Blockly.JavaScript.valueToCode(block, 'question_img', Blockly.JavaScript.ORDER_ATOMIC);var dropdown_leg_number = block.getFieldValue('leg_number');var statements_question_statement = Blockly.JavaScript.statementToCode(block, 'question_statement');// TODO: Assemble JavaScript into code variable.var code = (value_question_img=="(#cat)" && dropdown_leg_number=="4" && statements_question_statement==21 );if(code){return "yes";}else{return "no";}
};Blockly.JavaScript['answer_img_cat'] = function(block) {// TODO: Assemble JavaScript into code variable.var code = '#cat';// TODO: Change ORDER_NONE to the correct strength.return [code, Blockly.JavaScript.ORDER_NONE];
};Blockly.JavaScript['answer_img_dog'] = function(block) {// TODO: Assemble JavaScript into code variable.var code = '#dog';// TODO: Change ORDER_NONE to the correct strength.return [code, Blockly.JavaScript.ORDER_NONE];
};Blockly.JavaScript['answer_statement1'] = function(block) {// TODO: Assemble JavaScript into code variable.var code = '';code = '21';return code;
};Blockly.JavaScript['answer_statement2'] = function(block) {// TODO: Assemble JavaScript into code variable.var code = '22';return code;
};

并且在workspace.js文件中添加对应的button控制代码:

 /* 创建点击函数 */
function button_click(){var code = Blockly.JavaScript.workspaceToCode(workspace);console.log(code);console.log("----" + code.match("no"))if(code.match("no")== null){alert("恭喜你,全对!");}else{alert("别灰心,继续加油!");}
}/* 添加点击事件监听 */
document.getElementById("check_button").addEventListener("click", button_click);

修改完成之后,保存所有代码,用浏览器打开html文件进行测试:

恭喜你,全对!

别灰心,继续加油!

说明:
在最初设计返回代码时,“尾巴”和“羽毛”模块的返回代码定义的是“#weiba”和“#yumao”,但是和主块(question块)进行拼接后值传递过程中,发现总是会返回undefined的数据类型,无法进行相等判断,故采用21和22这样的数字,进行判断。(后续会针对这一问题尽行更新发布)

作者:郅朋
链接:https://www.jianshu.com/p/b129459d90e4
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

Google blockly简介(三)puzzle游戏的制作相关推荐

  1. html puzzle游戏,Blockly培训案例-puzzle游戏的制作(一)

    去年的两期培训,发现老师们对blockly-games兴趣较高,而且参训老师在返校之后,很多都使用blockly-games进行了教学尝试.而设计这个案例的原因一是老师们对blockly-games较 ...

  2. 【微信小游戏实战】零基础制作《欢乐停车场》三、游戏场景制作

    1.游戏立项 微信小游戏中有一款<欢乐停车场Plus>的小游戏,大家可以搜索玩下.这是一款益智类的小游戏,游戏中有红.黄.绿.蓝.紫5辆豪车6个停车位,玩家通过可行走路线移动小车,最终让各 ...

  3. Google blockly简介(二)Blockly Developer Tools使用

    现在国内Google官网打不开Blockly Developer Tools,要想使用此工具,那就用别的办法了. https://blockly-demo.appspot.com/static/dem ...

  4. Google blockly简介(一)Simple Blockly操作

    谷歌官网的有一些比较简单的demo,大家可以试一下. https://developers.google.cn/blockly/guides/configure/web/fixed-size 一.包括 ...

  5. 游戏配音怎么弄的?分享三个游戏配音制作方法

    随着时代的发展,人们对于配音的要求也越来越高,除了传统的文字配音外,现在又出现了游戏配音.其实游戏配音也是有一定门槛的,并不是人人都可以做得好的.但是如果你想要拥有一位自己喜欢的游戏角色,那么你就要学 ...

  6. # 使用Scratch 3.0制作弹球游戏(三)——游戏关卡及难度设计

    目录 使用Scratch 3.0制作弹球游戏(三)--游戏关卡及难度设计 1.第一关 1.1第一关游戏角色需求 1.2第一关游戏玩法设计 1.3角色设计--球 1.4角色设计--接球平台 1.5背景设 ...

  7. 升级到游戏设计师攻略之—— 用游戏编辑器制作MOD脱颖而出

    [导读] 立志成为游戏策划的你,和千千万万的游戏玩家的不同之处在哪? 是你玩过很多的游戏?别人也玩过 是你游戏打得比别人好?也许电子竞技更适合你 是你对游戏的理解比别人深,知道如何设计出更好玩的游戏? ...

  8. 三十位游戏业界最有影响力的人

    三十位游戏业界最有影响力的人(第30) 克里斯.泰勒(Chris Taylor) 现在所处公司:Gas Powered Games 克里斯.泰勒始终保持着自己的童心,他是一个真正的玩家,所以作为制作人 ...

  9. Chillingo分享三款游戏图标的设计经验

    每个月在iTunes上发布的游戏多达6000款以上,因此,游戏图标在如此狭窄的空间里激烈地竞争着用户的注意力.时间和屏幕空间.对于全方位普及免费模式的手游产业而言,要想在万千游戏图标中脱颖而出,无疑更 ...

最新文章

  1. linux更改用户的shell,Linux下通过shell更改用户密码
  2. 张苗 清华大学 计算机,2011222229张苗组件局域网及搭建服务器技术分析.doc
  3. Amarino例程无法使用的问题
  4. 微服务架构与Spring Cloud Alibaba
  5. 线性表的链式存储结构(C语言版)
  6. 腾讯和阿里巴巴考虑互相开放生态,是真开放还是新的垄断?
  7. 第二轮冲次会议第三次
  8. 前端写分页(用了自己同事写的插件)
  9. 现在时的条件句_57
  10. linux系统查看已连接串口,Linux下串口连接的简单测试
  11. java删除文件内容_java 删除文件中的数据
  12. hamcrest的jar包_重新设计Hamcrest
  13. 高版本linux安装gamit,Ubuntu 14.04下安装GAMIT/GLOBK10.50软件
  14. 高并发中的 限流、熔断、降级、预热、背压你都知道是什么意思吗?
  15. 区块链的分布式网络结构有哪些特点?
  16. 苹果手机怎么清除缓存_手机里的文件如何彻底删除?教你清除缓存的方法
  17. 密码学数论基础部分总结之 有限域GF(p) Galois Fields
  18. PetaLinux使用Gstreamer传输USB摄像头到DP显示屏
  19. Axure 9 - 中继器使用
  20. 图像去模糊算法 循序渐进 附完整代码

热门文章

  1. 华为mu739来电唤不醒问题调试记录
  2. 详解线上gitlab服务搭建(字数2w+)
  3. 善用google搜索,搜索引擎命令大全
  4. 招投标系统简介 招投标系统源码 java招投标系统开发类型 招投标系统功能设计
  5. oracle 12c rac搭建,Oracle 12C Rac到Rac搭建ADG
  6. 项目人力资源管理 试题分析
  7. 展锐平台WIFI吞吐问题解决方案
  8. 1968年图灵奖--理查德·哈明生平
  9. Word 论文页码、页眉、目录等设置
  10. JAVA毕业设计可视化工器具信息管理系统计算机源码+lw文档+系统+调试部署+数据库