如何用HTML5开发一款手机游戏

话提前先简单介绍一下phaser,这是一款HTML5的游戏开发框架,下面的介绍也是基于这个框架进行写的

 

下面这个是游戏的演示,控制白色的方块移动,并躲避黑色的方块,靠吃掉黄色的方块得分

 


 

代码1:先搭出来游戏框架

说明:暂时先构建了两个状态函数:Load和Play

Load:用于加载资源,很多游戏中的加载进度条也是写在这里面的

Play:游戏的主运行模块

 

代码2:加载游戏资源,Load模块

下面这个图是验证屏幕尺寸等比例缩放的

下面是引入的图片素材

代码3:创建游戏世界,Play模块的create函数,先定义一些基本信息

 

代码4:创建sprite并显示,sprite是用于操作或者显示动画的游戏元件

this.loadLevel(); //创建sprite(操作的方块、移动的方块、用于吃掉的方块、和被吃掉或撞击后散开的小方块),这个函数在create里被调用 

下面是结果画面的演示图

发现没有黑色来回移动的方块,这是因为虽然把它添加到group中,但没有给他设定一个显示位置,后面的几步会通过移动来显示它

 

代码5:键盘按键操作白块移动

上/下/左/右 我先贴出一个上的例子图,下/左/右 和 上 一样,感兴趣的同学可以读一读源码

this.movePlayer()要加在周期函数的update函数中才可被循环调用

下面是效果图

 

代码6:手机触摸滑屏操作

有很多的原理和代码5的相似,就不添加注释了,注释里记录的是手机操作思想

手机操作暂时演示不了。。。。。

 

代码7:碰撞检测,我也只举一个例子白块碰黄块的例子,白碰黑的同理,感兴趣的可以翻看代码

update函数内部添加下面这个调用

game.physics.arcade.overlap(this.square, this.coin, this.takeCoin, null, this);

这个是覆盖检测,当参数1(square:白块)覆盖了参数2(coin:黄块),会自动调用参数3(回调函数),而参数4是重叠后二次检查的回调函数(如果重叠不是最终目的,还需要其他的判断时),参数4对象应用的上下文(一般都是this),结果返回true/false

 

下面是takeCoin检测覆盖后触发的函数

 

代码8:粒子发射器,就是撞击后产生的散列效果

this.loadParticles()因为是属于创建函数,创建一次就可以了,所以要放在create里调用

 

代码9:被撞击后的黄块重新生成

这段是代码7中,time.events触发的回调函数,game.time.events.add(500, this.addCoin, this);

意思是当执行到这段代码时,间隔500毫秒后,触发this.addCoin

下面的目前的效果图

 

代码10:spawnEnemies和addEnemy本来想把代码段贴出来,但考虑到和程序的关联性比较强,我就不贴了,感兴趣的同学可以对照着源码来看。

有几行逻辑我单独列出来解释一下:

enemy.body.velocity.x = -100*i*speed; //这个是设定速度,速度是只能设定在物理体上的,有了这个速度就可以自行运动

enemy.body.velocity.y = -100*j*speed; //物理系统的速度有两种,一种是 速度+角度(可以看看api文档),一种就着这个x轴和y轴各自包含一个速度

enemy.reset(game.width/2 +i*8*8, game.height/2 +j*8*8 +j*190); //重置显示的坐标位置,功能和enemy.setTo一样,下面讲区别

enemy.anchor.setTo(0.5); //重设锚点

enemy.checkWorldBounds = true; //检查世界边界

enemy.outOfBoundsKill = true; //超出边界的时候执行kill()

 

再说一下kill()函数,kill不会真正的删除对象,对象还是原来的对象,

只是把下面这3个设置成了false 

this.alive = false; //是否是活着的
this.exists = false; //是否存在
this.visible = false; //是否可见

物理系统的众多运动和动画、补间动画等,都会先判断这几个;

所以当重置reset坐标位置的时候,这几项会重新赋成true,而set则不会

 


 

注:源码我放到了附件里

再分享几个网站:
http://www.phaserengine.com/ (这是phaser框架的中文网,吐槽:网站目测是机器翻译的,略有些糟糕)

http://phaser.io/ (这是官方网站,文档例子非常全)

http://phasereditor.boniatillo.com/blog/downloads (官方出的开发工具,收费的,不知道网上有没有破解的)

转载于:https://www.cnblogs.com/wujianbufengsao/articles/6835927.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值