飞机大战游戏(二)

今天继续上篇的飞机大战,不知道大家在上个飞机大战的时候有没有什么问题,如果有的话,可以问我,下面,我们继续上次的来继续讲 上篇,我们说到画背景,然后我们将继续 画完背景之后加载完图片,然后上次有个没有说,就是画logo,也就是飞机大战的四个字,logo,要不然用户不知道这是啥游戏,这个算是一个小功能,但是也要有,下面是代码: logo加载 因为图片有宽高,所以我们不要写固定的值,所以就用公式:canvas宽度高度/2 - 图片的宽高,如果看着太居中不好看,可以让字往上点,弄个什么黄金比例什么的,这个看大家喜好了 好了,上面的完成了,我们就可以开始了,然后可以给这个开始加一个事件,当点击的时候就开始: 天空 首先我们这里整个游戏里需要一个主引擎,也就是每次canvas画完之后需要重新删掉重画一次,也就是一个定时器 主引擎 我们看下里面有哪些东西:首先就是天空的渲染,也就是我们上篇写到的Sky,他有画和移动,清除的话是在画之前清除的,如果不知道,可以看下上篇里面的draw,第一行就是清除 然后我们在这个主引擎里面就会出现我们主要的一个变量:状态,然后,我们根据状态来控制游戏里面的飞机的暂停和开始或其他动作,最后呢,我说下,里面定时器中的最后一个参数,42,也就是42毫秒,这个呢,属于是我们眼睛的一个物理知识,说我们人类的眼睛,一秒钟只能识别24次,如果少了就会让我们看起来很卡,然后一秒/24就约等于42了 接着上面的说,当点击的时候的函数,当点击的时候状态就会从准备中跑到加载的阶段,如果大家注意看,会看到准备开始的时候底部会有一个小飞机飞过,这个呢可以看到里面有个loading函数,这个就是加载这个小飞机的 加载 首先我们先定位下小飞机的位置,一般这个都是放在底部的,这样看起来舒服点,当然也可以放在其他位置,然后就有了开始的几句,x坐标为0,y坐标为canvas的高度减去图片的高度 画图片这个的话,我就不多说了,ctx。drawImage就可以了,这个不知道的可以去百度这个api,里面参数说的很详细了 然后我们需要让他动起来了,因为定时器是一直在动的,所以我们每次动的时候声明一个变量,然后一直加,然后每当他走多少的时候,我们执行下我们的函数,这个方法呢也是我们这个整个游戏的主要方法,设置动画的快慢,就是根据这个来的 然后我们这个加载的图片呢,主要就只有那么三个当然如果大家有素材可以放更多,但是我们这个是放在一个数组里面的,以便大家添加更好的素材,然后就判断是否是到数组的最后一个,如果到了,我们就可以开始游戏了 好了,今天就先讲到这里了,主要的东西基本都可以了,其他的方法和这个类似,下次应该能一次讲完了,大家如果没有看懂的,也可以去我之前说的游戏网站,查看源码,或者大家自己有更好的素材也可以自己换下试试,挺好玩的,好了这次就这样了,下次再见了

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):