如何使用Createjs来编写HTML5游戏TweenJS和Tick动画

作者&投稿:居苏 (若有异议请与网页底部的电邮联系)
如何使用Createjs来编写HTML5游戏TweenJS和Tick动画~

createJs的由来,基础什么的就不说了,就直接说createJs的用法吧。
首先到createJs官网下载,createJs分成easelJs(图形动画)、preloadJs(文件加载)、soundJs(音频控制)以及tweenJs(补间动画)四部分,大家下载的时候,建议下载两个文件,一个是压缩版文件,用于项目中的引用,再下载个源码文件,用于查看用法、API、demo等。因为楼主目前只用了easelJs和preloadJs,所以暂时就只说这两个,其实就这两个已经非常够用了。
接下来开始分析代码:
首先引入js文件



然后进行舞台初始化操作:
function init(){
stage = new createjs.Stage("cas");
C_W = stage.canvas.width;
C_H = stage.canvas.height;

var manifest = [
{src:"image/man.png" , id:"man"},
{src:"image/ground.png" , id:"ground"},
{src:"image/bg.png" , id:"bg"},
{src:"image/high.jpg" , id:"high"},
{src:"image/coins.png" , id:"coin"}
]

loader = new createjs.LoadQueue(false);
loader.addEventListener("complete" , handleComplete);
loader.loadManifest(manifest);

drawLoading();
}

上面就用到了preloadJs中的方法,实例化一个loader,把需要加载的图片文件放在manifest里面,进行加载,加载完成后调用回调handleCompelete函数:
function handleComplete(){ //当图片素材load完后执行该方法
var manImage = loader.getResult("man"),
lowground = loader.getResult("ground"),
highground = loader.getResult("high"),
bgImage = loader.getResult("bg"),
coins = loader.getResult("coin");

sky = new createjs.Shape();
sky.graphics.bf(bgImage).drawRect(0,0,C_W,C_H);
sky.setTransform(0, 0, 1 , C_H/bgImage.height);
stage.addChild(sky);

man = createMan(200,326,manImage);

//该框为判定角色的判定区域
kuang = new createjs.Shape();
kuang.graphics.beginStroke("rgba(255,0,0,0.5)").drawRect(0 , 0 , man.size().w , man.picsize().h*1.5);
// stage.addChild(kuang);

mapHandle(lowground , highground , coins);

createjs.Ticker.timingMode = createjs.Ticker.RAF;//设置循环方法,可以是requestAnimationFrame或者是setTimeout
createjs.Ticker.setFPS(30);//舞台帧率控制
createjs.Ticker.addEventListener("tick", tick);//绑定舞台每一帧的逻辑发生函数

window.addEventListener("keydown" , function(event){
event = event||window.event;
if(event.keyCode===32&&man.jumpNum<man.jumpMax){
man.jump();
}
})
}

获得加载完成后端的图片数据就直接用loader.getResult就可以获取了,跑酷游戏需要一个背景,所以,我们实例化一个sky,然后进行位图绘制,bf方法是beginBitmapFill的缩写,该方法就是开始绘制位图,后面的drawRect是位图的绘制区域,区域当然是整个画布啦,所以就是drawRect(0,0,C_W,C_H)。实例化出来sky后就直接添加到舞台stage里面就行了。接下来是实例化一个角色,createMan方法后面有说,是自己封装的。
然后进行舞台循环设置,上面有注释了,就不说了。

你好,其实很简单
教你个方法,直接去各大游戏论坛查找攻略就可以了
一般各大平台都有游戏专区,专区里的攻略已经很详细了。

createJs的由来,基础什么的就不说了,就直接说createJs的用法吧。
首先到createJs官网下载,createJs分成easelJs(图形动画)、preloadJs(文件加载)、soundJs(音频控制)以及tweenJs(补间动画)四部分,大家下载的时候,建议下载两个文件,一个是压缩版文件,用于项目中的引用,再下载个源码文件,用于查看用法、API、demo等。因为楼主目前只用了easelJs和preloadJs,所以暂时就只说这两个,其实就这两个已经非常够用了。
接下来开始分析代码:
首先引入js文件
<script src="easeljs-0.7.1.min.js"></script>
<script src="preloadjs-0.4.1.min.js"></script>
然后进行舞台初始化操作:
function init(){
stage = new createjs.Stage("cas");
C_W = stage.canvas.width;
C_H = stage.canvas.height;
var manifest = [
{src:"image/man.png" , id:"man"},
{src:"image/ground.png" , id:"ground"},
{src:"image/bg.png" , id:"bg"},
{src:"image/high.jpg" , id:"high"},
{src:"image/coins.png" , id:"coin"}
]
loader = new createjs.LoadQueue(false);
loader.addEventListener("complete" , handleComplete);
loader.loadManifest(manifest);
drawLoading();
}
上面就用到了preloadJs中的方法,实例化一个loader,把需要加载的图片文件放在manifest里面,进行加载,加载完成后调用回调handleCompelete函数:
function handleComplete(){ //当图片素材load完后执行该方法
var manImage = loader.getResult("man"),
lowground = loader.getResult("ground"),
highground = loader.getResult("high"),
bgImage = loader.getResult("bg"),
coins = loader.getResult("coin");
sky = new createjs.Shape();
sky.graphics.bf(bgImage).drawRect(0,0,C_W,C_H);
sky.setTransform(0, 0, 1 , C_H/bgImage.height);
stage.addChild(sky);
man = createMan(200,326,manImage);
//该框为判定角色的判定区域
kuang = new createjs.Shape();
kuang.graphics.beginStroke("rgba(255,0,0,0.5)").drawRect(0 , 0 , man.size().w , man.picsize().h*1.5);
// stage.addChild(kuang);
mapHandle(lowground , highground , coins);
createjs.Ticker.timingMode = createjs.Ticker.RAF;//设置循环方法,可以是requestAnimationFrame或者是setTimeout
createjs.Ticker.setFPS(30);//舞台帧率控制
createjs.Ticker.addEventListener("tick", tick);//绑定舞台每一帧的逻辑发生函数
window.addEventListener("keydown" , function(event){
event = event||window.event;
if(event.keyCode===32&&man.jumpNum<man.jumpMax){
man.jump();

获得加载完成后端的图片数据就直接用loader.getResult就可以获取了,跑酷游戏需要一个背景,所以,我们实例化一个sky,然后进行位图绘制,bf方法是beginBitmapFill的缩写,该方法就是开始绘制位图,后面的drawRect是位图的绘制区域,区域当然是整个画布啦,所以就是drawRect(0,0,C_W,C_H)。实例化出来sky后就直接添加到舞台stage里面就行了。接下来是实例化一个角色,createMan方法后面有说,是自己封装的。
然后进行舞台循环设置,上面有注释了,就不说了。


有大神能解释下CATIA中“CreateReferenceFromBRepName”这个命令的具...
CreateReferenceFromBRepName 这个函数并不是经常使用,因为要得到BRep元素比较困难.何为BRep元素,打个比方,你用一个矩形草图拉升了一个凸台.则这个凸台的各个面,各条边线,各个顶点就是BRep元素.你要用这些元素去创建一个Reference,就要知道这些元素的名称.这些BRep元素要得到它们的名字比较困难的.所以这个...

编程语言有几种,分别都是编什么程序的?
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。 [NextPage] Java语言简介 一.Java的由来 当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢? Java语言其实最是诞生于1991年,起初被...

U盘量产是什么意思,量产有什么用,麻烦回答的详细点,谢谢!!
7. 使用量产工具要注意什么1)不要怕,大胆的弄,U盘不会坏的,如果有报废的,请低价卖给我,我收。2)量产也有经常出错的时候,如U盘变成8M,同1),再次进行。8. 量产出的CD-ROM最大可以是多少不同版本,牌子不一样,我的4G的ICREATE的可以量产出1G多点。这个技术指标开发商不透露。9. 量产工具版本越高越好吗?不...

请教CreateIoCompletionPort在c#里如何
印象中,.Net的ThreadPool就是采用完成端口模型的,不知道你是做何种应用,一般情况下应该是不需要自己封装的。

CFrameWnd和CWnd的同名虚函数Create的重写
通过classwizard给我生成的是CWnd中的Create 里面还有一个类的选项你没有选,仔细找找看

MVC 模型里如何设置默认值,比如 CreateDate设置成 获取当前时间,迁移...
当使用model继承时,model会继承abstractbaseclassmodel的modelmanager,而不会继承非abstractbaseclass的manager.model的第一个modelmanager通常作为默认的manager,当被替换时,可能会发生不可预测的问题.4.数据库事务(Transaction)在django1.6中,ORM默认会autocommit每一个数据库查询,也就是说,每次使用m.create()或m.update...

activity生命周期中哪些方法是可见不可操作,哪些方法是可操作不可见...
onCreate():进行布局的初始化,当需要用到数据库时对数据进行绑定等操作,onStart():当activity处于可见之前调用onStart方法onResume():当程序呈现在我们面前,并且能够与使用者进行交互onStop():当activity不可见时调用onRestart():当activity被执行onStop方法后,如果activity还行继续运行,就会执行on...

安装番茄花园win7系统创建主分区后怎么分配剩余空间
3、假设用List Disk命令显示的目标磁盘为0号,则建立分区的步骤如下:List Disk Select Disk 0 Clean Create Partition Primary Size=512000 Active Format Quick Create Partition Extended Create Partition Logical Size=512000 Format Quick Create Partition Logical Size=512000 Format Quick Create ...

何和建字搭配的词汇?
[build;establish;set up;found;create;erect;form;install] 开始成立或产生 建立一个朝代 建绒 jiàn róng [silk fabrics] 因最早产于建康得名。表面丝绒密而挺立,棕黑色,用于做鞋帽 建设 jiàn shè [construct;build] 创立新事业;增加新设施;充实新精神 经济建设 建省 jiàn shěng [provinciate...

onCreate中的savedInstanceState有何具体作用
每个activity都要进行一些必要的初始化, 而这些初始化就是通过调用父类的构造函数来进行的, 举个例子,生成一个空白的activity,起码有一个标题,这个标题是怎样关联和生成的,就是通过构造函数来处理的啦。

镶黄旗18860293790: 如何使用createjs来编写html5游戏 -
松才络泰: createJs的由来,基础什么的就不说了,就直接说createJs的用法吧.首先到createJs官网下载,createJs分成easelJs(图形动画)、preloadJs(文件加载)、soundJs(音频控制)以及tweenJs(补间动画)四部分,大家下载的时候,建议下载...

镶黄旗18860293790: 如何使用Createjs来编写HTML5游戏完成一个简单的打飞机游戏 -
松才络泰: CreateJS包含4个部分,EaselJS、TweenJS、PreloadJS、SoundJS,其中最主要的部分EaselJS包含了开发Html5游戏的所有功能,仅仅使用EaselJS几乎可以完成所有的开发工作,其余三项可以看作EaselJS的辅助工具.比如响应tick事件然...

镶黄旗18860293790: 如何使用winchm将html转为chm格式 -
松才络泰: 1 首先准备好要制作的html,然后打开winchm,在弹出的对话框中选择“create a new project”!2 接着在New Project中选择“create a project using existing html files”,然在“project title”中输入你想要建立的工程的名字,在“html position”...

镶黄旗18860293790: 如何使用JavaScript创建一个动态表格 -
松才络泰: // 你的 HTML 的 body 中添加如下内容// 一个 div 用来放生成的 table ; 一个按钮执行 create // <div id="div"></div> // <input type="button" onclick="create()" /> // 以下是 js 方法<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/...

镶黄旗18860293790: 如何用htHTML+CSS+JS实现如下图效果,即图片循环滚动播放 -
松才络泰: html> t>PreviousNext1. 12. 23. 3========================================== slider,jq自己下载,相信不用我教.顺便可以看看教程,对这些有点了解.

镶黄旗18860293790: java里怎样用js动态生成表格? -
松才络泰: <html><head> <title>使用javascript动态创建表格table</title><SCRIPT LANGUAGE="JavaScript"> function CreateTable(disposeCount,resolveCount,remainCount){//创建表格 var oTable = document.createElement("table"); oTable....

镶黄旗18860293790: JavaScript里面的innerHTML到底怎么用?什么时候才用到innerHTML?到底HT -
松才络泰: 举个例子,现在有个<span id='aa'></span>的标签,你想在里面加一个连接,内容叫测试,并且设置点击事件,你就可以这样:通过id aa获取span对象,然后.innerHTML=<a href="javascript:void(0);" onclick='test()' alt="测试" title="测试"...

镶黄旗18860293790: jsp怎么写增删改查代码? -
松才络泰: 下面的代码即可实现(对数据库的操作): <%@ pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8" %> <%@page import="java.sql.*"%> <center> <H1> <font color="blue" size="12">管理中...

镶黄旗18860293790: createjs 如何改变stage坐标原点 -
松才络泰: js获取DIV的位置坐标的方法有三种,分别如下:<br><br>方法一:<br><br>?<br>var odiv=document.getElementByIdx_x('divid');<br>alert(odiv.getBoundingClientRect().left);<br>alert(odiv.getBoundingClientRect().top);<br>方法二:<br><br>?<br...

镶黄旗18860293790: 什么是HT技术 -
松才络泰: 什么是HT(超线程)技术? HT技术在使用多线程软件和在多任务环境这两种情况下为计算机用户带来更高性能.为使用多个称为"线程"的代码段而编写的软件应用将把含HT技术的3.06GHz奔腾4处理器视为"两个"逻辑处理器,它们能够同...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网