1.问题一:在menu.js中需要使用到const.js文件中的变量,怎么办?如下图:

解决:在const.js文件中写上module.exports={},大括号里面写对应的变量对,如下图:

然后在menu.js文件中,使用require引入,如下图:

这样,一个文件就可以使用另一个文件定义的变量了,class的访问是通过import来访问的。

2.开始页面显示出来了,接下来是选择player的数目。在Main中初始化事件监听,看下面的代码:

然后看一下initEvent()的内容,这里监听了touchstart事件,实现的效果是点击屏幕任意一点,改变palyer的位置(1还是2):

3.后续的工作内容大致上跟上面的一样,这里贴一下最终的开发进度图:

整体的流程是先绘制出来地图块,玩家坦克,敌方坦克,然后敌方坦克随机的移动和射击,敌方坦克的边界检测部分卡住的事件最长,然后一点一点的打印,搞清楚了里面的机制和流程,接下来是方向键控制玩家坦克的移动和射击,图中的A键是玩家1的射击键。最后再加一个游戏结束的功能基本上就把主流程开发完成了。

4.由于没有一步一步的开发和记录文档,这里就记录一下开发中的难点和问题

4.1 微信小程序中的eval不支持,所以暂时先用的是注释掉的代码行,如下面的程序:

setMapLevel(level) {this.level = level;var tempMap = eval("map" +  this.level); //这里就是拼接,然后获取到真正的array,但微信不支持eval函数//var tempMap = LEVEL.map1;console.log("tempMap length is "+LEVEL.map1); //for testthis.mapLevel = new Array();for (var i=0;i<tempMap.length; i++) {this.mapLevel[i] = new Array();for (var j=0; j<tempMap[i].length; j++) {this.mapLevel[i][j] = tempMap[i][j];}}}

4.2 在tank.js中,玩家坦克、主界面中的选择坦克、敌方坦克都会有一句代码是(这里拿PlayTank举例 ):
    PlayTank.prototype = new Tank()

初步的理解是跟继承差不多,用了Tank类中的属性和方法,如果PlayTank定义了同名方法和属性,则执行PlayTank中的方法和属性。

4.3 export和import中也有一些问题,在使用isGameOver变量的时候,现在main.js 中export了isGameOver,然后在Collision.js中使用了isGameOver,这时候编译器报了isGameOver是read-only属性,最后解决办法是在main.js中定义了方法并export,然后方法中设置isGameOver的值,最后在Collision.js中import此方法并调用。

微信小程序之坦克大战学习相关推荐

  1. 微信小程序_基础组件学习02

    微信小程序_基础组件学习02 swiper组件 swiper是滑块容器,也就是手机端的轮播图. swiper组件有两部分组成swiper和swiper-item. swiper-item需要放在swi ...

  2. 微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动

    微信小游戏制作坦克大战(四)添加敌方坦克,敌方坦克可以随机移动 首先导入敌方坦克素材 重命名为敌方坦克1 敌方坦克也移动到屏幕外面,后面使用克隆体来显示. 我们给敌方坦克添加事件 好的,现在敌方坦克已 ...

  3. 微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克、炮弹爆炸

    微信小游戏制作坦克大战(六)碰撞检测,主角坦克碰到敌方坦克.炮弹爆炸 导入坦克爆炸效果的图片和声音素材 给主角坦克添加事件 给爆炸动画添加事件 当主角坦克碰到敌方坦克或者炮弹时显示爆炸效果 下一篇文章 ...

  4. 微信小游戏制作坦克大战(五)敌方坦克可以发射炮弹

    微信小游戏制作坦克大战(五)敌方坦克可以发射炮弹 在资源管理器中复制炮弹,重命名为敌人坦克的炮弹. 修改敌方坦克的积木 给敌方坦克炮弹添加事件 现在,敌方坦克已经可以自动发射炮弹啦. 下一篇文章:微信 ...

  5. 微信小游戏制作坦克大战(九)切换场景,游戏重新开始

    微信小游戏制作坦克大战(九)切换场景,游戏重新开始 新建一个游戏结束场景 主角坦克爆炸后切换到游戏结束场景 添加背景音乐 好了,至此坦克大战小游戏基本做好,小伙伴们可以继续完善哈. 体验地址:

  6. 微信小游戏制作坦克大战(八)统计得分

    微信小游戏制作坦克大战(八)统计得分 导入数字图片素材 新建得分变量 给数字添加事件 敌方坦克发生爆炸时,数字增加1 实现效果 下一篇文章:微信小游戏制作坦克大战(九)切换场景,游戏重新开始

  7. 微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸

    微信小游戏制作坦克大战(七)碰撞检测,敌方坦克碰到主角坦克炮弹爆炸 导入发生炮弹的音效素材 主角坦克发射炮弹或者敌方坦克发射炮弹时播放音效 修改敌方坦克积木 4.效果: 敌方坦克碰到主角坦克炮弹爆炸 ...

  8. 页面生命周期_微信小程序的生命周期学习笔记-应用篇

    在我们学习微信小程序的过程当中,我们会参考很多资料.在这些资料中,我们经常能够看到"生命周期"四个字,在前面的课程中也提到过.在这里做一个说明. 生命周期是一类函数的统称,这些函数 ...

  9. 微信小程序商城源码学习

    微信小程序从申请appid到创建hello,收集了好久的源码资源.让你两天学会小程序开发. 经过一番学习,总算学会了小程序的开发,学会搭建后台服务器,接下来打算租个阿里云服务器,研究一下微信小游戏的开 ...

最新文章

  1. java中exception in_java.lang.ExceptionInInitializerError
  2. vue 修改div宽度_vue 拖动调整左右两侧div的宽度
  3. 第九章 泛型结构和接口
  4. Gossip协议详解
  5. c语言链表编程作业,C语言编程入门——链表
  6. 属性加密测试用例相关问题的分析
  7. java求最小步数_关于java:查找两点之间的最小步数?
  8. Win7系统经常报错怎样解决?
  9. 网站提速-缓存技术(4)
  10. bzoj 1801: [Ahoi2009]chess 中国象棋 bzoj 4806: 炮
  11. [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结
  12. 智汇华云 | 集群自动化部署服务流程之自动化集群配置(上)
  13. 花生壳 Linux arm
  14. 混合高斯模型背景建模原理
  15. Python解线性方程组的直接法(5)————平方根法求解线性方程组
  16. 不花冤枉钱就能回家 --- 程序员教你如何高效抢票
  17. js 入门基础(一)
  18. 2356 - 成绩排序
  19. java 累加器_Spark累加器(Accumulator)
  20. 33.Region的概念及配置多region

热门文章

  1. java动态代理--代理接口无实现类
  2. Python网络爬虫从入门到实践 -- chapter 1 -- 网络爬虫入门
  3. 通俗易懂。Cocos2dx和Unity3D概念,二者区别?哪个更好一点?
  4. 【最详细的分析】1061 Dating (20 分)
  5. 【题意分析】1024 Palindromic Number (25 分)_38行代码AC
  6. QT Creator应用程序开发——信号与槽
  7. shell脚本详解(九)——一键部署DNS正向解析
  8. 给刚开始学习Linux的小白们的福利——资源已经分享,可随时下载
  9. 关于 $ Super $ $ 和 $ Sub $ $ 的用法
  10. 树莓派更换软件源提高下载速度