制作一款HTML5 RPG游戏引擎教程(三).docx
上传人:qw****27 上传时间:2024-09-11 格式:DOCX 页数:16 大小:404KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

制作一款HTML5 RPG游戏引擎教程(三).docx

制作一款HTML5RPG游戏引擎教程(三).docx

预览

免费试读已结束,剩余 6 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

今天我们先看实现后的代码:[javascript]HYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"copy"copyvarcurtain=newLCurtainSample3();addChild(curtain);就两行,已经达到最简单了。那么接下来就来看看是如何实现它的。由于有很多种幕布效果,因此我只为大家实现常用的3种作为sample,大家可以借鉴一下,写出更美观的幕布。1,LCurtainSample1这个是一个基础幕布,效果是左右合拢。看看构造器中的代码:[javascript]HYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"copy"copyfunctionLCurtainSample1(speed,onClosing,onComplete){vars=this;base(s,LSprite,[]);if(!speed)speed=LStage.width/100;if(!onClosing){s.onClosing=function(){};}else{s.onClosing=onClosing;}if(!onComplete){s.onComplete=function(){};}else{s.onComplete=onComplete;}s.mode="close";s.width1=0;s.width2=0;s.isDoClosing=false;s.speed=speed;s.addEventListener(LEvent.ENTER_FRAME,s.onshow);}这个类是继承自LSprite类,有三个参数,分别是:幕布合拢/展开的速度,幕布合拢后调用此函数,幕布展开后调用此函数。mode属性顾名思义,它是用来表示接下来的工作的。当为close时说明要合拢。我们在其中定义两个属性:width1,width2,它们分别表示两块幕布显示的宽度,通过调节宽度来实现合拢。另外定义了isDoClosing来判断是否已经合拢。用speed来保存幕布移动速度,方便以后使用。然后我们给自身加一个时间轴事件,在时间轴事件中调用onshow方法绘画幕布。onshow中的完整代码:[javascript]HYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"viewplain"viewplainHYPERLINK"http://blog.csdn.net/yorhomwang/article/details/9042571"\o"copy"copyLCurtainSample1.prototype.onshow=function(s){s.graphics.clear();s.graphics.drawRect(1,"black",[0,0,s.width1,LStage.height],true,"black");s.graphics.drawRect(1,"black",[LStage.width-s.width2,0,s.width2,LStage.height],true,"black");if(s.width1>=LStage.width/2){s.mode="open";if(s.isDoClosing==false){s.onClosing();s.isDoClosing=true;}}if(s.mode=="close"){s.width1+=s.speed;s.width2+=s.speed;}elseif(s.mode=="open"){s.width1-=s.speed;s.width2-=s.speed;if(s.width1<0){s.mode="stop";}}elseif(s.mode=="stop"){s.graphics.clear();s.removeEventListener(LEvent.ENTER_FRAME,s.onshow)