Blockly培訓案例-puzzle游戲的制作(二)

完成puzzle游戲的制作(一)相關(guān)的案例之后昌粤,來正式開始著手做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. 導出工作區(qū)

拼圖案例不涉及Toolbox工具箱侮穿,所以這里直接定義工作區(qū)即可,將需要用到的塊添加到工作區(qū)毁嗦,然后導出Starter Code和Workspace Blocks文件亲茅。


設(shè)置并導出工作區(qū)
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文件巾乳,在瀏覽器中查看是否創(chuàng)建成功。


puzzle界面成功加載
5. 對“檢查答案”功能進行設(shè)計
(1)添加按鈕

在body中添加“檢查答案”的按鈕

<button id="check_button">檢查答案</button>
(2)設(shè)計生成代碼

給每個塊設(shè)置返回代碼鸟召,這里為了方便匹配和判斷胆绊,選取簡單的數(shù)字作為返回值:

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文件中添加對應(yīng)的button控制代碼:

 /* 創(chuàng)建點擊函數(shù) */
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("別灰心压状,繼續(xù)加油!");
    }
}

/* 添加點擊事件監(jiān)聽 */
document.getElementById("check_button").addEventListener("click", button_click);

修改完成之后跟继,保存所有代碼种冬,用瀏覽器打開html文件進行測試:


恭喜你镣丑,全對!

別灰心娱两,繼續(xù)加油传轰!

說明:
在最初設(shè)計返回代碼時,“尾巴”和“羽毛”模塊的返回代碼定義的是“#weiba”和“#yumao”谷婆,但是和主塊(question塊)進行拼接后值傳遞過程中,發(fā)現(xiàn)總是會返回undefined的數(shù)據(jù)類型辽聊,無法進行相等判斷纪挎,故采用21和22這樣的數(shù)字,進行判斷跟匆。(后續(xù)會針對這一問題盡行更新發(fā)布)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末异袄,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子玛臂,更是在濱河造成了極大的恐慌烤蜕,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件迹冤,死亡現(xiàn)場離奇詭異讽营,居然都是意外死亡,警方通過查閱死者的電腦和手機泡徙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門橱鹏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堪藐,你說我怎么就攤上這事莉兰。” “怎么了礁竞?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵糖荒,是天一觀的道長。 經(jīng)常有香客問我模捂,道長捶朵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任枫绅,我火速辦了婚禮泉孩,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘并淋。我一直安慰自己寓搬,他們只是感情好,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布县耽。 她就那樣靜靜地躺著句喷,像睡著了一般镣典。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上唾琼,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天兄春,我揣著相機與錄音,去河邊找鬼锡溯。 笑死赶舆,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的祭饭。 我是一名探鬼主播芜茵,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼倡蝙!你這毒婦竟也來了九串?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤寺鸥,失蹤者是張志新(化名)和其女友劉穎猪钮,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胆建,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡烤低,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了笆载。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拂玻。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宰译,靈堂內(nèi)的尸體忽然破棺而出檐蚜,到底是詐尸還是另有隱情,我是刑警寧澤沿侈,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布闯第,位于F島的核電站,受9級特大地震影響缀拭,放射性物質(zhì)發(fā)生泄漏咳短。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一蛛淋、第九天 我趴在偏房一處隱蔽的房頂上張望咙好。 院中可真熱鬧,春花似錦褐荷、人聲如沸勾效。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽层宫。三九已至杨伙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間萌腿,已是汗流浹背限匣。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留毁菱,地道東北人米死。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像贮庞,于是被迫代替她去往敵國和親哲身。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 去年的兩期培訓贸伐,發(fā)現(xiàn)老師們對blockly-games興趣較高,而且參訓老師在返校之后怔揩,很多都使用blockly-...
    P_Zhi閱讀 5,410評論 0 5
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,166評論 25 707
  • 清明節(jié)放假回舅舅家看看生病的外婆捉邢,偶然看到電視里在播放這個電視劇,先生也說豆瓣評分很高商膊,沒等我決定要不要看的時候...
    錦鯉spring閱讀 166評論 0 2
  • 都說婚姻是愛情的墳?zāi)梗瑸槭裁磹矍樾蕹烧的唬瑓s在婚姻的小船里說翻就翻吝镣。這些年來離婚率居高不下,一路飆升昆庇。是情涼薄還是...
    素墨無痕閱讀 308評論 0 2
  • 今天族長讓我們想想: 這52天收獲了什么末贾?寫了這么些天,我們有沒有養(yǎng)成良好的閱讀整吆、寫作習慣拱撵,有沒有愛上寫作?還是開...
    嬌嬌貓閱讀 263評論 5 12