You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
functionupdate(){if(keydown.space){player.shoot();}if(keydown.left){player.x-=5;}if(keydown.right){player.x+=5;}player.x=player.x.clamp(0,CANVAS_WIDTH-player.width);}player.shoot=function(){console.log("Pew pew");// :) Well at least adding the key binding was easy...};
functionEnemy(I){
...
I.explode=function(){this.active=false;// Extra Credit: Add an explosion graphic};returnI;};player.explode=function(){this.active=false;// Extra Credit: Add an explosion graphic and then end the game};
【译】html5游戏入门
原文链接
简介
如果你想用canvas做个游戏,那么来对地方了。
但是但是你至少知道javascript怎么拼写(╯‵□′)╯︵┻━┻
既然没问题,那先来玩一下或者下载
创建canvas标签
废话不多说,我们必须创建一个canvas标签,简单起见,用一下
不喜欢的jQuery游戏循环
为了能够让游戏平滑动画,我们用30帧的频率。
现在我们可以先给这两个函数放置play,重要的是setInterval函数会定期照顾他们的。
hello world
现在我们有了这个循环,让我们开始画东西吧~
注意:确认修改之后刷新一下,万一哪里不对,代码变的少还能看出哪里不对。
如果没错,那么显示的是静止的字母,虽然好看,但我们已经有了动画循环,所以我们应该很容易让他动起来。
现在如果没出错,那么字母应该在移动,但是有残影出现。想想为什么会这样,因为我们没有清除之前的画面呢,so 我们加点清除画布的代码。
现在可以看到字母在屏幕上移动了,恭喜你,你已经快入门了。让我们继续。
创建玩家
接下来创建一个物体用来给玩家控制,我们创建了一个简单的object:
我们简单地着色了这个物体,当我们清除画布的时候,画上这个物体。
键盘控制
使用jQuery HotKeys
使用jQuery HotKeys,这个插件提供了简单的键盘输入检测
我们可以这么绑定事件
不用想哪个按键是哪个号码真舒服,我们刚才实现了“当玩家按上的时候,做一些事情”,碉堡的插件!
玩家的移动
键盘输入检测已经完成了,但我们还要处理键盘输入之后要做什么。
你可能会想使用事件驱动的方式去处理键盘输入,但是这样做系统不一,按键效果不一样,而且脱离了动画循环呢,这样做就可以跨系统了,保证了一致性,也让游戏更平滑了。
有一个好消息,我们有一个key_status.js的文件,提供了类似keydown.left等等。
去下载的文件里找现在我们可以去查询是否有按键了,然后我们就这么写:
这样玩家可以控制了。
你可能注意到玩家可以跑出屏幕,让我们限制一下玩家的位置,而且似乎控制速度有点慢,我们顺便加加速。
clamp这个函数可以在下载的util.js里看到然后我们加点炮弹进去。
添加更多物体
子弹
我们需要一个数组放子弹
接下来我们创建一个子弹原型
但玩家射击时,我们应该实例子弹,然后添加到子弹数组中.
我们需要把子弹的动画添加到没帧的动画里,为了能让子弹变成无限的效果,我们过滤了子弹数组,只保留了激活的子弹.同时删除了已经撞到敌人的子弹.
最后一步就是画子弹了.
敌人
现在我们要像添加子弹一样添加敌人.
加载和添加图片
虽然目前这些方块飞来飞去看起来很酷,但有图片就更酷了。我们使用了一个叫sprite.js的文件,可以从下载的文件里看到。
碰撞检测
我们已经有了很多敌人飞来飞去了,但他们没有交互呢
mb打不到他们,我们是时候加点碰撞检测了.让我们使用一个简单的方法检测:
我们需要检测如下两种碰撞:
让我们给update加入处理碰撞之后的处理
现在我们需要给敌方飞船和玩家添加爆炸效果,爆炸的同时会移除
声音
为了可玩性,我们将要添加声音效果进去,我们用到sound.js这个文件,让事情变得非常简单。
使用这些API就能很快地完成一个简单的游戏.
告别
再说一下游戏地址,也可以下载
well,我希望你开始喜欢用js和html5写简单的游戏,随着学习的深入,将来会有更多地挑战呢.
参考文献
HTML5 Canvas Cheat Sheet
HTML5 Game Engines
译后感
第一次完整的翻译一篇文章,
真蛋疼有些句子感觉不好翻,就随便糊弄一下,BTW,我也按这个教程写了例子,好像写完还有很多问题呢(逃The text was updated successfully, but these errors were encountered: