21天徒手撸一个游戏引擎(7)整合一些变量到Game对象

2021-04-08
阅读 6 分钟
1.2k
由于直接在game.js中写了很多逻辑,因此需要提取一些功能到Game对象中。新建codetyphon/game.js把之前在./game.js中的代码移过去 {代码...} 类对象Game,具有一些属性。 {代码...} 如果重新开始游戏,需要重新初始化 {代码...} 它得有update、render、start等方法 {代码...} 把step移过去 {代码...} 设置添加不同种类的...

21天徒手撸一个游戏引擎(6)自运动,及在Sprite中实现碰撞检测

2021-04-08
阅读 4 分钟
1.2k
sprite.js 中的constructor函数中增加: {代码...} sprite.js 中的update函数: {代码...} 这样,只要设置vx或vy,它就可以自己动了。在Sprite.js中的constructor函数设置: {代码...} 这是一个空方法,就是为了在实例化sprite时去设置update方法相应地,Sprite.js中: {代码...} 则在更新自身坐标后调用了on_update方法...

21天徒手撸一个游戏引擎(5)开火和分数

2021-04-08
阅读 7 分钟
1.2k
设置一个子弹数组: {代码...} 加载子弹素材 {代码...} 添加点击事件: {代码...} step中,update增加: {代码...} step中,draw增加: {代码...} 现在,可以开火了。但是炮弹还没有碰撞检测:在子弹的update中,加上碰撞检测 {代码...} 现在效果如下game.js 全部代码 {代码...} 分数 {代码...} 在bullets的碰撞检测代码 ...

21天徒手撸一个游戏引擎(4)碰撞检测

2021-04-08
阅读 6 分钟
1.3k
添加gameover素材。 {代码...} 增加一个gameover变量: {代码...} 在敌人的循环中,增加碰撞检测代码: {代码...} 在step中,增加: {代码...} 现在game.js全部代码如下 {代码...} 现在效果如下:gameover出来后,之前的游戏界面就没了。所以需要对update和draw拆开: {代码...} 现在效果如下:但是游戏结束后,player竟...

21天徒手撸一个游戏引擎(3)敌人,敌人

2021-04-07
阅读 2 分钟
1.3k
如何设置敌人在game.js中设置一个变量: {代码...} 在 step中,让time自增: {代码...} 时间间隔就是: {代码...} 由于敌人很多,因此是一个数组: {代码...} 敌人的图片要加到资源载入器中: {代码...} 当间隔一定时间时,增加敌人: {代码...} 绘制敌人 {代码...} 随机数,让敌人水平x位置是0~屏幕宽度: {代码...} 现...

21天徒手撸一个游戏引擎(2)图片资源加载器及精灵设置图片

2021-04-07
阅读 4 分钟
1.3k
上次代码有问题,只能在IDE上面预览,不能真机。因为真机小游戏中缺少window对象。解决方法就是,引用用微信的weapp-adapter。

21天徒手撸一个游戏引擎(1)先让它动起来

2021-04-06
阅读 4 分钟
1.2k
首先新建一个微信小游戏项目。删掉项目初始化后的代码。建立一个game.js的文件: {代码...} 效果如下:接下来,让它动起来。把下面的代码删掉 {代码...} 然后,定义屏幕宽高,及设置2个变量x和y: {代码...} 再定义一个绘制的方法 {代码...} 当执行draw(x,y)时,效果是一样的:接下来,要让它动起来。简单一点,从左往右...