整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          一篇文章教會你使用HTML打造一款顏色配對游戲

          一篇文章教會你使用HTML打造一款顏色配對游戲

          一、項目背景】

          createjs是一個基于canvas的制作H5游戲、動畫、交互的庫。包括EaselJs、TweenJs、SoundJs、 PreloadJs四個部分。它基于容器進行展示,其中根容器是stage(舞臺)對象。

          今天教大家用EaselJs、TweenJs結合做一個顏色配對游戲。

          【二、項目準備】

          1、去下方網站:

          http://www.createjs.cc/

          然后下載EaselJs、TweenJs這兩個模塊。

          2、軟件:Dreamweaver

          【三、項目目標】

          隨機產生4種顏色,讓下方的色塊通過鼠標移動,匹配上方的顏色框。如果上方顏色框與下方色塊顏色相同。全部色塊匹配完成則為成功。

          【四、項目實現】

          1、導入EaselJs、TweenJs模塊。

          <script src="js/easeljs-0.7.1.min.js"></script>
          <script src="js/tweenjs-0.5.1.min.js"></script>

          2、body 創建畫布canvas 設置畫布大小,畫布添加描邊 ,id屬性。

          <canvas id="canvas" width="600" height="400" style="border: black solid 1px"></canvas>

          3、創建shapes.js文件。定義一個初始化init()方法 ,創建stage對象。

          function init() {
              stage=new createjs.Stage("canvas");
          }

          4、定義畫圖形方法buildShapes(),調用createjs.Shape()方法 用graphics繪制描邊正方形。填充顏色。

          function buildShapes() {
              var colors=['blue', 'red', 'green', 'yellow'];
              var i, shape, slot;
              for (i=0; i < 4; i++) {
                  //slots 描邊正方形
                  slot=new createjs.Shape();
                  slots.push(slot);
                  //shapes 正方形
                  shape=new createjs.Shape();
                  shape.graphics.beginFill(colors[i]);
                  shape.graphics.drawRect(0, 0, 100, 100);
                  shape.regX=shape.regY=50;
                  shape.key=i;
                  shapes.push(shape);
              }
          }

          5、設置正方形x,y的位置, for循環隨機填充顏色,添加在stage上。

          slot.graphics.beginStroke(colors[i]);
          slot.graphics.beginFill(createjs.Graphics.getRGB(255, 255, 255, 1));
          slot.graphics.drawRect(0, 0, 100, 100);
          slot.regX=slot.regY=50;
          slot.key=i;
          slot.y=80;
          slot.x=(i * 130) + 100;
          stage.addChild(slot);

          6、定義setShapes方法,for循環隨機產生一個r值,添加到shapes。產生移動的正方形。添加到舞臺(stages)上。

          function setShapes() {
              var i, r, shape;
              var l=shapes.length;
              for (i=0; i < l; i++) {
                  r=Math.floor(Math.random() * shapes.length);
                  shape=shapes[r];
                  shape.homeY=320;
                  shape.homeX=(i * 130) + 100;
                  shape.y=shape.homeY;
                  shape.x=shape.homeX;
                  stage.addChild(shape);
                  shapes.splice(r, 1);
              }
          }

          7、添加鼠標事件。控制正方形移動。

           shape.addEventListener("mousedown", startDrag);

          8、定義開始游戲方法startGame,設置游戲的幀數,添加監聽事件。

          function startGame() {
              createjs.Ticker.setFPS(60);
              createjs.Ticker.addEventListener("tick", function (e) {
                  stage.update();
              });
          }

          9、判斷游戲方法startDrag(e)

          1)獲取當前鼠標的坐標。

          var shape=e.target;

          2)讓鼠標的坐標等于填充正方形的坐標。

          stage.addEventListener('stagemousemove', function (e) {
                  shape.x=e.stageX;
                  shape.y=e.stageY;
              });

          3)hitTest方法。測試圖像是否與顏色相同的框有交集,判斷顏色是否相同。

          if (slot.hitTest(pt.x, pt.y)) {
                      shape.removeEventListener("mousedown",startDrag);
                      score++;
                      createjs.Tween.get(shape).to({x:slot.x, y:slot.y}, 200, createjs.Ease.quadOut).call(checkGame);
                      console.log('h');
                  }
                  else {
                      
                  }

          4)TweenJs設置動畫效果。

          createjs.Tween.get(shape).to({x:shape.homeX, y:shape.homeY}, 200, createjs.Ease.quadOut);

          10、定義贏的方法checkGame ,用score分別代表四種顏色色塊,判斷score的值。

          function checkGame(){
              if(score==4){
                  alert('You Win!');
              }
          }

          11、在init()中,調用方法,實現效果

          buildShapes();
          setShapes();
          startGame();

          【五、效果展示】

          1、f12運行到chrome瀏覽器。

          2、拖動隨機顏色塊,匹配顏色框。

          3、四個顏色塊匹配完成 彈框 (勝利)!!

          【六、總結】

          1、本文主要介紹了createjs中EaselJs、TweenJs的用法,以及對stage是如何創建的,在stage上怎么去繪制圖形。在頁面上如何去呈現stage。

          2、就本項目中的難點,重點,提供了詳細的講解和提供有效的解決方案。

          3、大家可以嘗試了解createjs的其他模塊,官網上有對應的API文檔供大家學習。

          4、按照操作步驟,自己嘗試去做。自己實現的時候,總會有各種各樣的問題,切勿眼高手低,勤動手,才可以理解的更加深刻。

          5、需要本文源碼的小伙伴,后臺回復“顏色配對”四個字,即可獲取。

          ****看完本文有收獲?請轉發分享給更多的人****

          想學習更多Python網絡爬蟲與數據挖掘知識,可前往專業網站:http://pdcfighting.com/

          是一篇有趣的文章,我們精選了 JS13K 游戲編程挑戰的優秀作品,與大家分享。JS13K 是專為 JavaScript 開發者量身定制的編程競賽,報名參賽的開發者需要根據挑戰主題,利用 JS 開發一款不超過 13KB(譯者注:壓縮后檔案大小不超過 13KB,且不得使用任何托管的函式庫、圖片或資料)的游戲進行角逐。

          我們精選了去年(譯者注:2018 年的主題為-離線游戲)參賽的優秀作品,你不光能體驗小游戲的樂趣,還可以搜尋一些編程的靈感。一起來瞧瞧吧!


          1.OnOff

          這是一個很有挑戰性的關卡游戲,簡約的設計與有趣的音效讓游戲妙不可言。躲閃尖刺,躍過深坑,通過場景切換完成 25 個由易到難的關卡挑戰。作者還提供了一個很酷的關卡編輯器,讓你體驗創建關卡的樂趣。

          游戲體驗:https://js13kgames.com/games/onoff/index.html

          項目地址:https://github.com/starzonmyarmz/js13k-2018

          2.Everyone's sky

          Everyone's sky 是一款經典的科幻風格太空冒險游戲。除了主打太空冒險,這款游戲還兼具了一些 RPG 游戲要素。在游戲中,通過控制飛船移動,聯合太空中的其他勢力收集資源。你可以結交盟友,和平的完成任務,也可以攻擊你所遇到的一切勢力。和平還是毀滅,掌握在你的手中。

          游戲體驗:https://js13kgames.com/games/everyones-sky/index.html

          項目地址:https://github.com/remvst/everyones-sky

          3.Underrun

          這是一款第三人稱射擊游戲。游戲主角被關在損壞的實驗室里,通過射殺變異的蜘蛛人,完成搜尋、重啟終端系統的任務。游戲運行流暢,而像素風格的場景與人物,出色的燈光與音效,也讓游戲蒙上一層陰暗、恐怖的氛圍。

          游戲體驗:https://js13kgames.com/games/underrun/index.html

          項目地址:https://github.com/phoboslab/underrun

          4.Konnekt

          這是一個簡單的即時戰略游戲。你需要清除病毒感染的系統節點,完成游戲挑戰。隨著關卡的深入,游戲難度會不斷遞增,你需要處理病毒感染的節點也會增多。這款游戲看似簡單,卻相當有挑戰。

          游戲體驗:https://js13kgames.com/games/konnekt/index.html

          項目地址:https://github.com/monsterkodi/konnekt

          5.Super Chrono Portal Maker

          這款游戲與原版的超級馬里奧如出一轍。你需要控制主角移動、跳躍挑戰 30 個不同級別的關卡,而每個級別也引入了豐富的游戲機制,讓游戲妙趣橫生。此外,開發者還提供了關卡構建器,幫助你打造專屬的關卡并與朋友分享。

          游戲體驗:

          https://js13kgames.com/games/super-chrono-portal-maker/index.html

          6.Offline Paradise

          這是一個快節奏的跑酷游戲,你需要控制游戲主角奔跑、跳躍、沖刺躲避不同的障礙物。游戲里設置了自動保存點功能,省去了挑戰失敗而重新開始游戲的煩惱。游戲不僅運行流暢,游戲場景、動畫、音效也令人心情愉悅。

          游戲體驗:https://js13kgames.com/games/offline-paradise/index.html

          項目地址:https://github.com/sirxemic/js13k-game

          7.Raven

          Raven 是一款動作益智游戲。你的任務很簡單,通過調整游戲人物視角,在躲避神秘生物的同時完成修復安全攝像頭的目標。游戲看似簡單,但任務難度隨關卡的增加變得困難重重。

          游戲體驗:https://js13kgames.com/games/raven/index.html

          項目地址:https://github.com/elliot-nelson/js13k-2018-raven

          8.Systems Offline

          這是一款相當鍛煉大腦的益智游戲。游戲的背景故事設定在破損的空間站內,你需要操縱主角在氧氣耗盡之前,修復空間站系統并逃生。游戲設置了三個級別難度,操作簡單(支持色盲模式),只需要利用鼠標就可以完成游戲。

          游戲體驗:https://js13kgames.com/games/systems-offline/index.html

          項目地址:https://github.com/eschatonic/SystemsOffline

          9.Re-wire

          Re-wire 是一款邏輯思維游戲。你需要躲避鋸齒的干擾,將線纜相連并插入插座。隨著游戲進程的深入,挑戰難度逐漸增加。開發者很有心,還提供了游戲自動保存功能。喜歡的朋友可以試試。

          游戲體驗:https://js13kgames.com/games/re-wire/index.html

          項目地址:https://github.com/JMankopf/js13k-rewire

          10.Spacecraft

          這款游戲與跑酷游戲類似。你需要操作飛船,在太陽系各大行星上收集金幣,并躲避障礙,勇奪高分。游戲還提供了購買飛船的功能。

          游戲體驗:https://js13kgames.com/games/spacecraft/index.html

          項目地址:https://github.com/tricsi/spacecraft


          感謝你的閱讀。若你有所收獲,歡迎點贊與分享。

          注:

          1. 本文版權歸原作者所有,僅用于學習與交流;
          2. 如需轉載譯文,煩請按下方注明出處信息,謝謝!

          英文原文:10 Amazing JavaScript Games In Under 13kB of Code

          作者:Georgi Georgiev

          譯者:IT程序獅

          譯文地址:

          https://zhuanlan.zhihu.com/p/57789538


          家好,我是你們的章魚貓。

          掃雷大家都玩過吧,Windows 里面的經典游戲。我記得上初中那會,上計算機課,都是偷偷玩這個游戲,懷念呀。但是不得不說,掃雷相比紙牌難度還是大一點的,畢竟還要費一點腦子的。

          今天要推薦的項目就是重溫經典,只通過 HTML/CSS(沒有任何 JavaScript)來實現的掃雷游戲。

          這個游戲另外一個很有趣的地方就是,為了強調沒有使用 JavaScript,掃雷游戲中的雷就是 JS,哈哈哈。

          整個項目使用最核心的技術就是 CSS 里面的是 Space Toggle,感興趣的同學可以了解一下哦。

          通過如下網站可以試玩上面的掃雷游戲:

          https://propjockey.github.io/css-sweeper/

          更多項目詳情請查看如下鏈接。

          開源項目地址:

          https://github.com/propjockey/css-sweeper


          主站蜘蛛池模板: 日韩人妻不卡一区二区三区| 国产成人AV一区二区三区无码 | 国产激情精品一区二区三区| 国产在线不卡一区二区三区 | 91大神在线精品视频一区| 亚洲人AV永久一区二区三区久久| 天码av无码一区二区三区四区| 日韩人妻一区二区三区蜜桃视频 | 国产成人av一区二区三区在线 | 国产成人高清视频一区二区| 国产一区二区三区国产精品| 国产精品视频无圣光一区| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产在线观看一区二区三区四区 | 国产精品久久久久久一区二区三区| 精品乱码一区二区三区在线| 精品乱码一区内射人妻无码| 免费视频精品一区二区| 亚洲AV无码一区二区三区人| 国产在线视频一区二区三区| 成人久久精品一区二区三区| 亚洲AV无码一区二区一二区| 天堂va在线高清一区 | 亚洲Av永久无码精品一区二区| 国产AV午夜精品一区二区三| 无码少妇一区二区浪潮免费| 久久久久女教师免费一区| 亚洲一区二区三区播放在线| 久久亚洲中文字幕精品一区四| 亚洲一区精品视频在线| 日韩精品一区二区三区影院| 亚洲乱码av中文一区二区| 肥臀熟女一区二区三区| 久久福利一区二区| 一区三区三区不卡| 久久精品无码一区二区app| 精品国产香蕉伊思人在线在线亚洲一区二区| 精品无码国产一区二区三区麻豆| 国内精自品线一区91| 狠狠色婷婷久久一区二区| 久久精品成人一区二区三区|