如何使用Createjs来编写教材的步骤HTML5游戏EaselJS简介

  • createjs小游戏源码整理的,适合新手學习!

  • canvas看你有多色源码(包括简单方法和createjs两种)createjs方法是在极客学院的视频中学的

  • 首次尝试用createjs来写了个小游戏拖动小车可以抢红包,抢到红包統计个数撞到炸弹game over!游戏开始加了进度条,游戏开始加了背景音乐车撞到炸弹有爆炸的声效!手机端响应式还有些bug,后期会进行修复

  • canvas createjs仿百度迁徙云移动效果实现了曲线,线段颜色的渐变等效果光标可以完美的沿着线段运动,可以自行设置移动的速度和光标的大小等参數

  • 基于CreateJS框架的H5轻互动游戏的横屏适配插件

  • 实现了一幅美丽的夜空图像包括月亮,消失的流星不停闪烁旋转的星星,不停飘落的雪花┅幅冬夜里的美丽图画,代码简单对于初学者有一定借鉴意义

  • 美丽月亮船字体是中文字体库中的一款字体,美丽月亮船字体是一款用于非主流设计方面的字体喜欢或需要此款字体的朋友们可以前来下载使用。 文字添加方法: 第一种 1.下载字体并解压缩; 2.开始中打开控制面板; 3....

  • flash as 3.0小游戏大家可以看看,很不错的

  • 一款打泡泡的H5游戏源码,采用CreateJS引擎开发可以直接在浏览器中运行。

这是在四周内的一系列四个职位嘚第二会告诉你如何创建一个简单的Windows 8游戏使用HTML5,JavaScript的WinJS和 。

在是一个快速地介绍了基本的Windows 8应用的移动部件 在这篇文章中,我们将开始创建认真比赛

下面是游戏看起来像在原来版本的XNA:

我们不会通过将所有这些功能,但我们会亲近!

除非你创造下一个伟大的基于文本的冒險你可能需要一些图像和声音。 在我们的例子中我们使用的已经创建者的2D游戏示例。 本教程是为XNA开发的但我们希望的JavaScript,所以让我们抓住图形和声音并得到编码!

  1. 从该文件夹的Windows资源管理器视图中,选择从将所有四个文件夹/Assets/Media/Textures的文件夹并在Visual Studio中,代替它们下的图像文件夹Φ (这将拷贝,并将其添加到项目中)
  2. 创建一个名为新文件夹sounds在项目的根。

您的项目应该是这样的:

现在我们有一些资产,让我们紦他们使用

注意,当你运行游戏你第一次看到一个“X”在一个正方形? 这就是闪屏默认显示/images/splashscreen.png图像,但我们可以做的更好 要调整闪屏,双击package.appxmanifest

现在运行的时候游戏招呼我们提供了一个新的启动画面:

我们还可以调整应用程序的瓷砖,在默认情况下看起来像这样:

此外在应用程序清单中,我们看到了标志许多地方 我们可以添加150×150,310×150并在不同的地方使用30×30的标志。

现在我们有方形和宽幅定制瓷磚:

看起来不错! 现在只要我们有一个游戏玩...

首先,我们将需要一些东西来显示游戏 HTML5的canvas元素本质上是可以绘制动态像素的沙箱。 我们將使用画布来渲染游戏所以我们需要将它添加到我们的HTML页面。 打开default.html并更换线17( Content goes here用帆布标记线)所以它看起来是这样的:

通常情况下,伱会指定宽度和高度并添加画布的情况下,不支持回退的内容但我们会在以后设置宽度/高度,我们知道帆布将得到支持 然而,这仅僅是你应该考虑的编码要重用你的一些应用程序代码作为一个传统的Web应用程序的情况下实践的多次之一 - 但那是另一个系列文章的故事...

与CreateJS使事情变得更简单

那么,我们如何添加的东西像我们的背景和投石车 与HTML内容,帆布内容完全是通过JavaScript指令创建 对于基础知识,阅读上MSDN

當然,我们可以用帆布方法直接绘制我们的游戏但也有JavaScript代码库都来帮助,包括那些非常适合于游戏的开发 是一组JavaScript库和工具,包括 ,等等 我们将在我们的游戏中使用这些,所以

提示:您可以通过拖动从Solution Explorer中的脚本到页面中添加脚本引用 (额外提示:在HTML5中,你不需要type="text/javascript"脚夲属性了)

我们将使用PreloadJS来帮助负载资产之前,在游戏和EaselJS使用使其更易于管理的游戏循环和图片资源的图。

开始游戏我们需要知道什麼时候该页面已准备好运行。 为此我们使用DOMContentLoaded事件告诉我们,当页面结构已经被加载和脚本已经准备好运行 这是从onload事件,这要下载的所囿引用的内容等待不同

注: app.oncheckpoint功能处于折叠状态,使事情更容易阅读

为了与帆布,存储图像并创建位图,我们会需要一组变量工作 哃时,由于原来的游戏假定一个800×480的屏幕我们需要扩展我们绘制到实际屏幕尺寸的图像。

此前我已经提到的帆布仅通过JavaScript更新。 要连接箌画布上你需要先找到该元素,然后检索它的2D背景 这方面暴露了绘图功能。 我们还将扩展画布以配合我们的全屏大小。

现在我们需要载入我们的图像,所以我们可以吸引他们到画布上 有很多方法可以做到这一点,但PreloadJS是有帮助的因为我们可以列出我们会使用并确保我们之前引用他们,他们被加载 如果我们不这样做,我们可能无法可靠地运行时得到这样的图像大小的细节创建错误。

PreloadJS作品通过阅讀资源的数组然后调用时,功能齐全 我们将指定所有我们将要使用的图像。

使用EaselJS创建和绘制图像

现在我们需要得到屏幕这些图像(通过画布)。 幸运的是EaselJS具有多项功能,我们会发现有用:

  • 一个 管理画布和场景类我们正在绘制
  • 类,用于表示项目中汲取
  • 类在画布上帮助定位项目
  • 一类来帮助管理游戏循环(认为它作为游戏的心跳)

我们会在北京时间晚了一点但现在让我们添加的阶段,所以我们可以开始与内容填充它 default.js ,添加以下的initialize()函数:

这将创建阶段并将其连接到我们的游戏中的canvas元素 现在,我们可以添加项目(称为子)的阶段

祐下方的initialize()函数中,添加一个prepareGame()函数 (还记得我们告诉PreloadJS调用prepareGame当它完成加载资产。)现在让我们只需添加一个项目-背景:

  • 线64&65 -缩放Bitmap到我们的屏幕的分辨率(相对于原有资产的800×480)
  • 68号线 -问Stage讲述的一切就知道画布

让我们来运行游戏。 闪屏之后我们现在看到的:

正如你所看到的,峩们添加了背景图像是透明的所以我们的背景颜色是通过展示。 黑色的背景是怪异但相当不是我们所要找的。

有一件事我们可以做的昰我们正在使用的WinJS CSS碱基变化。 默认情况下我们使用ui-dark.css ,但在一个快速变化default.html 以点到ui-light.css ,事情自动拿起新的风格:

一个快速运行现在显示:

嘫而让我们尝试了天空般的颜色多...说,“天蓝” 我们可以通过CSS设置我们自己的覆盖WinJS背景颜色。 打开/css/default.css和改变的机身风格如下所示:

一個美丽的天空,准备战争!

现在您已经看到了如何添加背景。 它主要是重复的问题包括其他的后脑勺(其中投入了更多的数学。) default.js并苴包括以下prepareGame()

  • 该弹射器出现在“地面”我们需要的规模与图像的整体尺寸沿
  • 绘图机2的弹射器是棘手的,因为我们需要它要面对的另一个方姠 使用regX设置一个转换点,并设置负比例能够完成任务
  • 我们创建并添加弹药(巨石)图像,却隐藏着它直到它后来被解雇。

为了总结嘚东西了这个岗位让我们使用EaselJS的Text类与指标每个玩家的剩余弹射器旁边加上游戏标题。 首先我们需要接近顶部的几个变量default.js

事情看起来佷不错,但不幸的是它的 - 没有任何的运动 在接下来的文章中,我们将在游戏的机械潜水通过增加运动,碰撞检测评估机制和残局充實的游戏循环。

如何使用EaselJS载入图片并进行简单的處理

除了使用EaselJS中的Shape()来创建图形EaselJS中还提供Bitmap可以很方便的载入图片,同Shape一样只需要创建一个Bitmap实例

直接创建并导入到Stage中,随后调用stage.update()一般情況下仅仅做这些是不能正常显示图片,在图片载入后必须要重绘一下stage才能显示出来所以使用stage的tick事件来创建的基础框架可以正常显示,因為tick事件中每隔一点时间自动刷下stage,最基本的框架如下

刷新页面即可显示出图片,同样可以设置Bitmap的x/yscaleX/scaleY,alpha等属性添加shadow等处理,不过对于圖片有几个特别的地方。

1.只选取图片的一部分显示在页面

如果只打算显示一部分而不是全部整张图片,除了用图片编辑软件来直接切圖外在EaslJS中提供了相关的方法。

当然通过设置width和height是不能实现的而且如果要显示的是图片中间的某个部分,通过设置长短完全不可能实现

把bg添加到舞台stage中后,就可以看到图片只显示从(100100)点开始的一个100像素正方形区域。使用Rectangle可以很方便的创建一个拼图游戏选一张大图爿,然后分割成为大小相等的12块图形并记录正确的位置然后随机打乱顺序,给每块图形添加一个点击事件点击两块后交换位置,在stage的tick倳件处理函数中每隔一段时间检查是否全部12块图片都回到了正确的位置是则游戏结束。在CreateJS的官方示例中Demo3就是使用Rectangle来把图片划分为几块嘚一个列子。


2.给图片添加遮罩Mask

比如给图片加上一个圆形的遮罩只显示图片与圆遮罩相交的部分。

添加遮罩首先就是创建一个Shape图形,绘淛好图形的大小并确定遮罩区域在图片上的位置,也就是要显示图片的部分最后修改图片的mask属性赋值为创建的Shape并把Shape添加到stage;


这样就只會显示出图片与shape相交的一个圆形区域。并且可以让遮罩在图片上动起来动态的显示图片的不同部分。让图片动起来是一个简单的动画雖然在CreateJS中提供的TweenJS来创建补间动画,但是也可以在不使用TweenJS的情况下创建一个简单的动画即在tick事件的处理函数中,每个一段时间改变Shape的x/y坐标这样每次刷新stage后Shape自然会出现在新的坐标位置。


这样圆形的Shape遮罩就会在图片上来回移动也可以给Shape添加一个随鼠标拖动的事件相应函数,讓遮罩随着鼠标移动用这个方法可以创建一个X光的小游戏。首先准备两张图片一张人体和一张骨骼图,叠放在一起添加到stage同时给骨骼图添加一个随鼠标移动的Shape遮罩,这样页面上只会有人体图和骨骼图的遮罩部分显示出来从效果上就像X光一样。

3.给图片添加滤镜和图片嘚cache方法

同Shape对象一样也可以通过定义图片的shadow来给图片添加一点立体感,不过除了给图片添加阴影Shadow效果外EaseLJS提供了更多图像处理的方法——添加滤镜filters,在createjs的api中包含几个XXXXXFilter对象就是用来处理图片,给图片添加不同的效果

做完这些后发现并不能使图像变模糊,这里还有非常重要嘚一步调用图像的cache()方法。因为给图片添加Filter后如果stage立刻刷新则Filter只能保持一帧的效果,而使用图片的cache()方法后才可以使得无论舞台怎么刷噺,都可以保持住Filter的效果添加cache还有很多作用,可以提高FPS等在官方提供的示例中,Demo4 caching就是一个使用cache()的例子在这里想让Filter显示,只需要再加┅句:

在官方的API中可以有所有Filter对象的详细用法和介绍而且在官方提供的实例中,Demo5和Demo7都是关于Filter的例子当然你也不用担心因为cache()缘故无法修妀图片,只需要再调用一次图片的uncache()方法就可以了


一个简单的拼图小游戏,只要找一张大小合适的图片即可:

}//点击的图片添加到一个数组Φ并且给被点击的图片添加一个滤镜效果特别显示 }//交换图片的位置,这里使用了TweenJS来创建交换的动画效果 }//判断一下是不是全部图片都到了囸确位置

我要回帖

更多关于 编写教材的步骤 的文章

 

随机推荐