html5泡泡龙游戏开发随笔
来源:互联网 发布:文件编辑软件 编辑:程序博客网 时间:2024/05/01 12:37
由于刚刚入职,上一款游戏开发已经进入尾声,所以在下一款游戏到来之前的一段时间,做了一个泡泡龙的游戏。在做这款小游戏时候,发现里面的逻辑还是挺多的,所以在此记录一下开发过程中比较重要的点。
用到的技术,html5 canvas PIXI.JS游戏引擎,js开发
1. 发射小球与上方球的碰撞检测处理。
方法:
① 发射球开始运动时,让其与每一个上方的小球进行圆心距离判断,当距离为2个半径时,那么我们认为发生碰撞,让他停止运动。
② 停止了不代表真的可以停止。因为我们要确保每一个小球周围的位置都是固定的,所以我们要对停止的小球进行位置调整。
用一个函数来获取碰撞时,与发射球碰撞小球周围的6个位置坐标,判断发射球的坐标与那6个坐标距离,哪个距离近,我们就把小球移动到最近的那个坐标位置。
发生碰撞时,要给一个力,让被撞到或者间接撞到的球有一个弹动
方法:
递归两次,确保发射球碰到的球,以及这个被碰到的球的周围的球,发生相应弹动。弹动方向就是发射球与这个球的延长线上碰撞成功之后,我们需要判断是否消除的问题
方法:
小球对象设置一个属性canPop,属性默认设置为false。这时我们要递归这个发射球,如果这个发射球周围6个位置有和他相同的颜色,那么把这个小球标记为canPop,同时递归这个球。(切记被递归过得不能再递归),最后遍历所有小球,如果canPop为true >=3,那么消除这几个球。
4.消除之后,还有判断是否处于未连接状态的小球
方法:
获取最顶端小球的数组,对这些球分别向下递归,递归到的就标记为处于连接状态,当所有球遍历一遍,那些处于未连接状态的就可以消失了。
5.给发射球添加辅助线,碰到边界要折回来
方法:
这个线是若干点组成,这些点的X坐标要放到一个数组中,每个点的X坐标就是前一个点的X坐标+xxx(根据点与点间距获得每个点X坐标间距离)。当某个点的坐标碰到边界,那么这个点的X坐标位置为这个边界对面镜像位置,同时后面的坐标就是X坐标+(-xxx).
两边边界方法一样。
由于此demo在其他项目上直接写的,还没有单独抽取出来,所以源代码暂时不上传了。。有什么问题欢迎交流。
- html5泡泡龙游戏开发随笔
- C#+XNA开发的泡泡龙游戏
- cocos2dx 泡泡龙游戏开发思路探究
- Unity中利用C#开发泡泡龙游戏
- 我写的Flash泡泡龙游戏
- 泡泡龙游戏算法实现简介
- 基于cocos2d-x简易泡泡龙游戏
- 古代珍宝币泡泡龙游戏介绍
- VC 类泡泡龙游戏算法
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第42讲:PHP数据库开发案例
- cocos-js web开发泡泡龙游戏【一 加载游戏场景】
- cocos-js web开发泡泡龙游戏【二 生成游戏所有元素】
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第一讲引言
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第二讲html运行原理及结构
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第三讲:html符号实体、超链接
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第四讲:html表格元素
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第五讲:无序列表、有序列表、框架
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第七讲:DIV+CSS入门
- 查询数组中相同元素的个数
- 学习使用Gradle
- Eclipse使用技巧总结
- MapReducer实现单词计算
- java中的反射机制
- html5泡泡龙游戏开发随笔
- DM368+MT7601U+JLA800 无线工作OK
- (1.1.28) C++模板:函数模板、类模板、模板与继承
- POJ---1988-Cube Stacking(并查集)
- 【effective c++读书笔记】【第9章】杂项讨论
- 九宫格写法
- 回归-普通最小二乘法(OLS)解析式推导
- 基于Zxing 字符串生成二维码
- iOS多线程——NSOperation & NSOperationQueue