整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

一篇文章教会你使用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