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

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

createJs的由来,基础什么的就不说了,就直接说createJs的用法吧。

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

接下来开始分析代码:

首先引入js文件

<script src="easeljs-071minjs"></script>

<script src="preloadjs-041minjs"></script>

然后进行舞台初始化 *** 作:

function init(){

stage = new createjsStage("cas");

C_W = stagecanvaswidth;

C_H = stagecanvasheight;

var manifest = [

{src:"image/manpng" , id:"man"},

{src:"image/groundpng" , id:"ground"},

{src:"image/bgpng" , id:"bg"},

{src:"image/highjpg" , id:"high"},

{src:"image/coinspng" , id:"coin"}

]

loader = new createjsLoadQueue(false);

loaderaddEventListener("complete" , handleComplete);

loaderloadManifest(manifest);

drawLoading();

}

上面就用到了preloadJs中的方法,实例化一个loader,把需要加载的文件放在manifest里面,进行加载,加载完成后调用回调handleCompelete函数:

function handleComplete(){ //当素材load完后执行该方法

var manImage = loadergetResult("man"),

lowground = loadergetResult("ground"),

highground = loadergetResult("high"),

bgImage = loadergetResult("bg"),

coins = loadergetResult("coin");

sky = new createjsShape();

skygraphicsbf(bgImage)drawRect(0,0,C_W,C_H);

skysetTransform(0, 0, 1 , C_H/bgImageheight);

stageaddChild(sky);

man = createMan(200,326,manImage);

//该框为判定角色的判定区域

kuang = new createjsShape();

kuanggraphicsbeginStroke("rgba(255,0,0,05)")drawRect(0 , 0 , mansize()w , manpicsize()h15);

// stageaddChild(kuang);

mapHandle(lowground , highground , coins);

createjsTickertimingMode = createjsTickerRAF;//设置循环方法,可以是requestAnimationFrame或者是setTimeout

createjsTickersetFPS(30);//舞台帧率控制

createjsTickeraddEventListener("tick", tick);//绑定舞台每一帧的逻辑发生函数

windowaddEventListener("keydown" , function(event){

event = event||windowevent;

if(eventkeyCode===32&&manjumpNum<manjumpMax){

manjump();

}

})

}

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

然后进行舞台循环设置,上面有注释了,就不说了。

教程参考Colin Garven提出的实现圆形进度按钮的思路。我们将使用Jake Archibald讲过的SVG素描动画技术来实现圆形进度过程,然后提供一个成功或失败的状态来显示完成后的最终状态。 今天给大家展示如何实现一个漂亮的进度按钮的思路

createJs的由来,基础什么的就不说了,就直接说createJs的用法吧。

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

接下来开始分析代码:

首先引入js文件

<script src="easeljs-071minjs"></script>

<script src="preloadjs-041minjs"></script>

然后进行舞台初始化 *** 作:

function init(){

stage = new createjsStage("cas");

C_W = stagecanvaswidth;

C_H = stagecanvasheight;

var manifest = [

{src:"image/manpng" , id:"man"},

{src:"image/groundpng" , id:"ground"},

{src:"image/bgpng" , id:"bg"},

{src:"image/highjpg" , id:"high"},

{src:"image/coinspng" , id:"coin"}

]

loader = new createjsLoadQueue(false);

loaderaddEventListener("complete" , handleComplete);

loaderloadManifest(manifest);

drawLoading();

}

上面就用到了preloadJs中的方法,实例化一个loader,把需要加载的文件放在manifest里面,进行加载,加载完成后调用回调handleCompelete函数:

function handleComplete(){ //当素材load完后执行该方法

var manImage = loadergetResult("man"),

lowground = loadergetResult("ground"),

highground = loadergetResult("high"),

bgImage = loadergetResult("bg"),

coins = loadergetResult("coin");

sky = new createjsShape();

skygraphicsbf(bgImage)drawRect(0,0,C_W,C_H);

skysetTransform(0, 0, 1 , C_H/bgImageheight);

stageaddChild(sky);

man = createMan(200,326,manImage);

//该框为判定角色的判定区域

kuang = new createjsShape();

kuanggraphicsbeginStroke("rgba(255,0,0,05)")drawRect(0 , 0 , mansize()w , manpicsize()h15);

// stageaddChild(kuang);

mapHandle(lowground , highground , coins);

createjsTickertimingMode = createjsTickerRAF;//设置循环方法,可以是requestAnimationFrame或者是setTimeout

createjsTickersetFPS(30);//舞台帧率控制

createjsTickeraddEventListener("tick", tick);//绑定舞台每一帧的逻辑发生函数

windowaddEventListener("keydown" , function(event){

event = event||windowevent;

if(eventkeyCode===32&&manjumpNum<manjumpMax){

manjump();

}

})

}

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

然后进行舞台循环设置,上面有注释了,就不说了。

腾讯原生小程序框架 OMIX20现在支持的是在页面中去使用状态管理,但实际工作中很多情况下需要我们在appjs中就去使用状态管理,比如说在onLaunch中我们需要授权登录并且获取用户的信息,这些就会需要在获取后用状态管理及时存储,方便以后的使用。所以我们需要对其改装。

目前我使用的是240版本,如果不知道的话可以在utils中的createjs中最上面注释查看版本号。

打开createjs,找到create方法。

将if语句中的 Page(option)放入createPage中

这样就可以在appjs中使用了,引入createjs和store中的indexjs在appjs中直接写storedataxxx就好

1appjson

{

"pages":[

"pages/audio/audio"]}

使用audio组件

2 audiowxml

<audio

poster="{{poster}}"

name="{{name}}"

author="{{author}}"

src="{{src}}"

id="myAudio"

controls

loop></audio><button type="primary" bindtap="audioPlay">播放</button><button type="primary" bindtap="audioPause">暂停</button><button type="primary" bindtap="audio14">设置当前播放时间为14秒</button><button type="primary" bindtap="audioStart">回到开头</button>

3 audiojs

Page({

onReady(e) {

// 使用 wxcreateAudioContext 获取 audio 上下文 context

thisaudioCtx = wxcreateAudioContext('myAudio')

},

data: {

poster: '>

CreateJS包含4个部分,EaselJS、TweenJS、PreloadJS、SoundJS,其中最主要的部分EaselJS包含了开发Html5游戏的所有功能,仅仅使用EaselJS几乎可以完成所有的开发工作,其余三项可以看作EaselJS的辅助工具。比如响应tick事件然后改变元素坐标就可以实现动画功能,而使用TweenJS来创建补间动画,则可以省去你很多代码,简化了 *** 作。一个简单的tick动画看起来是这样的:<pre t="code" l="js">var stage, circle;

function init(){

stage = new createjsStage(documentgetElementById('game'));

createjsTickeraddEventListener("tick", handleTick);

createjsTickersetFPS(60);

circle = new createjsShape();

circlegraphicsf("red")dc(0,0,50);

circlex = 0;

circley = 100;

stageaddChild(circle);

circleaddEventListener("click", function(event){

createjsTickersetPaused(!createjsTickergetPaused());

});

}

function handleTick(event){

if(!eventpaused){

circlex +=5;

if(circlex > 1000){

circlex = 0;

}

}

stageupdate();

}

以上就是关于如何使用Createjs来编写HTML5游戏TweenJS和Tick动画全部的内容,包括:如何使用Createjs来编写HTML5游戏TweenJS和Tick动画、如何使用createjs创建一个透明的按钮 优才学院、如何使用Createjs来编写HTML5游戏EaselJS简介等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10637776.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存