首页 > 作文

制作网页游戏需要什么(在手机上自己制作游戏的方法)

更新时间:2023-04-03 10:07:43 阅读: 评论:0

html5技术的兴起有多方面的原因,其中比较重要的一点就是,越来越多的开发者选择以网页的形式来制作应用软件与游戏。本文通过设计一款卷轴类游戏,介绍了如何利用lufylegend游戏引擎来开发基于html5的web游戏。

1、html5技术特点

html5是html的最新规则版本,它有很多优点,其中比较重要的一点是具有强大的跨平台特性。html5增加了很多新的元素,其中包括与web游戏设计紧密相关的canvas元素。

从文字处理到电子游戏,它们所需的全部图形功能,canvas元素都会提供。尽管它在各个平台中的性能有所差异,不过总的来说,canvas的运行速度还是很快的。浏览器厂商们在遵循html5规范方面做得都相当好,所以,编码良好的canvas应用程序无需修改即可在兼容html5的浏览器中运行。

2、lufylegend开发框架

现在的游戏开发变得越来越复杂,需要制作各种炫丽的效果,还要制作各种基于2d或者3d的场景。为了节省游戏开发者的时间,让开发者集中精力在游戏的创新上,出现了许许多多的游戏引擎。

lufylegend是一个html5开源引擎,它实现了利用仿actionscript3.0的语法进行html5的开发,包含了lsprite,lbitmapdata,lbitmap等多个as开发人员熟悉的类,支持google chrome,firefox,opera,ie9,ios,android等多种热门环境。

3、利用html5技术来设计卷轴类游戏

在本游戏制作中,可以将游戏层次划分为:进度条显示层、背景层、人物层、障碍层。进度条显示层用来显示图片读取时的进度,背景层用来显示不断卷动的背景图片,人物层用来显示游戏中的主角,障碍层用来显示不断出现的各种地板。

本游戏利用html5的跨平台特点,分别给游戏添加键盘事件和触屏事件,以使游戏在电脑上和智能手机上都能运行。

3.1、游戏初始化

先利用lsprite对象的graphics属性和ltextfield对象制作游戏标题和游戏说明文字,然后定义一个进度条,利用lloadmanager来显示进度条,最后给背景层backlayer增加鼠标点击事件。主要代码如下:

  loadinglayer=new loadingsample2(50);   backlayer.addchild(loadinglayer);   lloadmanager.load(imgdata,function(progress){   loadinglayer.tprogress(progress);   },gameinit);

当点击游戏画面的时候,首先要将背景层清空,然后添加背景图片。lsprite的die函数表示移除所有的事件监听,removeallchild函数表示移除所有子对象。主要代码如下:

  backlayer.addeventlistener(lmouevent,mou_up,gamestart);   function gamestart{   backlayer.die;   backlayer.removeallchild;} 

3.2、显示卷轴背景

新建一个background类,在其构造器内建立3个lbitmap对象,并依次显示。因为背景图片是可以无缝衔接的,所以显示到画面上就好像一张图片一样。

background类的run函数是将background对象中的3个子图片向上移动一个stage_step步长,这个步长会在定义部分提前定义好相应的值,待第一个lbitmap对象移出屏幕后,就会把第二个lbitmap对象的坐标赋值给第一个lbitmap对象,然后再重新计算其他两个lbitmap对象的坐标。相关代码如下:

  background.prototype.run=function{  var lf=this;  lf.bitm爱莲说注音版ap1.y-=stage_step;  lf.bitmap2.y-=stage_step;  lf.bitmap3.y-=stage_step;  if(lf.bitm四川乱戳ap1.y<-lf.bitmap1.getheight){  lf.bitmap1.y=lf.bitmap2.y;  lf.bitmap2.y=lf.bitmap1.y+lf.bitmap1.getheight;  lf.bitmap3.y=lf.bitmap1.y+lf.bitmap1.getheight*2;}}

在循环播放监听函数onframe中不断调用background类的run函数,就可以达到背景卷动的效果。

3.3 添加地板

在这个游戏中,有各种各样的地板,这些地板有一些共同的属性,比如它们都在不停地向上移动。为了实现这些共同的属性,先建立一个floor类,作为所有地板的父类,这个父类里包含了所有地板的公共部分。floor类的定义如下:

  function floor{   ba(this,lsprite,[]);   var lf=this;   lf.hy=0;  lf.tview;   }   floor.prototype.tview=function{}   floor.prototype.onframe=function{   var lf=this;   lf.y-=stage_step;   };   floor.prototype.hitrun=function{} 

其中,hy属性是用来控制游戏主角相对于地板的位置,tview函数用于给地板设定皮肤,每调用一次onframe函数,地板就向上移动一个stage_step长度。当游戏主角落到每个地板上,会根据地板的不同而有不同的表现,比如强制左移,强制右移,或者向上跳起等,hitrun函数就是为了实现这些不同的表现而建立的。

有了公共类floor,各种各样的地板子类都必须继承自floor,并重写相应的tview、onframe和hitrun函数。

3.4、添加游戏主角

主角类chara继承自lsprite,其主要属性有:movetype用来控制游戏主角是左移还是右移,hp表示当前血量,maphp表示最大血量,hpctrl用来控制血量恢复的速度,isj三角函数的图像与性质ump用来表示游戏主角的当前状态是否处于跳跃状态,index用来控制动作变换的快慢,speed表示下落的速度,_charold用来记录游戏主角每次下落之前的y坐标。

chara类的changeaction函数用于控制游戏主角的动作,定义如下:

  chara.prototype.changeaction=function{   var lf=this;   if(lf.movetype=="left"){hero.anime.taction(3);}   el if(lf.movetype=="right"){hero.anime.taction(2);}   el i精细化管理实施方案f(hero.isjump){hero.anime.taction(1,0);}   el{hero.anime.taction(0,0);} } 

changeaction函数的原理是根据movetype来设定游戏主角的动作是左移还是右移,当既不是左移也不是右移的时候,则判断其状态是不是跳跃,是则设定动作为跳跃,否则设定动作为站立。

3.5、游戏数据显示

游戏的数据包括游戏主角的血量和总共下降的层数,首先建立几个变量来表示这些数:layers表示下降的层数,初始值为0;layerstext用来将层数的数值显示到画面上;hptext用来将血量显示到画面上。然后建立showinit函数来进行文字显示的初始化,主要代码如下:

  function showinit{   layerstext=new ltextfield;   layerstext.x=10;   layerstext.y=20;   layerstext.size=20;   layerstext.weight="bolder";   layerstext.color="#ffff00";   backlayer.addchi森林狂想曲伴奏ld(layerstext);   } 

完成以上的工作,游戏制作完成,在浏览器中运行。

4、结束语

本文介绍了如何在游戏中实现卷轴滚动效果,游戏虽然简单,但是里面有弹跳、坠落、重力等内容,这些同时也是一般横版过关游戏的组成部分,相信会对想制作横版过关游戏的朋友起到一定的借鉴作用。

本文发布于:2023-04-03 10:07:42,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/13532560a1a9f52899418ca6cc8a57ce.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:制作网页游戏需要什么(在手机上自己制作游戏的方法).doc

本文 PDF 下载地址:制作网页游戏需要什么(在手机上自己制作游戏的方法).pdf

标签:游戏   函数   地板   主角
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图