原文地址:http://www.script-tutorials.com/html5-game-development-lesson-6/ 这是我们最新一篇HTML5游戏开发系列文章.我们将继续使用canvas来进行HTML5游戏开发系列的文章.这次是个完整的游戏例子,再现一款经典的电脑游戏--坦克大战.我将教你们使用交替的数组地图(alternative array-maps),同时将说明如何检测活动对象(坦克)和周围环境之间的碰撞. 前一篇的的介绍在HTML5游戏开发系列教程5(译). 第一…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-7/ 今天我们将完成我们第一个完整的游戏--打砖块.这次教程中,将展示怎样进行基本的碰撞检测和使用HTML5的本地存储.你可以使用鼠标和键盘来操作挡板,上一次游戏的持续时间和分数将会保存. 前一篇的的介绍在HTML5游戏开发系列教程6(译). 第一步:HTML <!DOCTYPE html> <html lang="en"> &l…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-5/ 最终我决定准备下一篇游戏开发系列的文章,我们将继续使用canvas来进行HTML5游戏开发系列的文章.今天我准备音乐的例子(有点儿像音乐合成器),它用到了使用CSS3来制作的基于DOM的对话框.为什么我使用独立的对话框--简单,最主要是因为CSS有很多处理标准元素的文本和样式的方法,且它可以使JS的代码简单,同时能提升例子程序的速度.所以你可以对这些对话框应…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-4/ 这篇文章是我们继续使用canvas来进行HTML5游戏开发系列的文章,我们要学习下一个元素:精灵动画和基本的声音处理.在我们这个示例中,你将看见一直正在飞的龙,我们能一直听见它翅膀扇动的声音,当鼠标释放事件发生时还有龙咆哮的声音.最后我们将教会龙移动到鼠标按下处. 前一篇的的介绍在HTML5游戏开发系列教程3(译). 第一步:HTML index.html…
用前面介绍的方法,创建一个cocos2d-x项目,可以看到新项目内容如下图:…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-8/ 这是我们最新一篇HTML5游戏开发系列文章.我们将继续使用canvas来进行HTML5游戏开发系列的文章.这次我将展示在你的项目中,如何使用Box2D的创建物体.Box2D是一个非常流行的开源物理引擎对于那些需要模拟2D物体的应用来说.在游戏开发中,2D物理引擎是个非常热门的话题.有了物理引擎的帮助,再设定环境和简单的规则,我们可以很容易的创建好玩的游戏.…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-10/ 最后我们将继续使用canvas来进行HTML5游戏开发系列的文章.今天我准备了一个新游戏--SkyWalker.这游戏基本上算是一个射击模拟类型的游戏(有飞机和敌人).我们的目标是到达终点线.该游戏有几个关键的特征:使用了精灵来处理飞机和爆炸,可以按下多个按键(比如你可以移动飞机的同时发射子弹),a certain level length,增强的碰撞检测…
原文地址:http://www.script-tutorials.com/html5-game-development-lesson-9/ 今天我们将继续使用canvas来进行HTML5游戏开发系列的文章.这次我准备了一个新游戏,是基于第4篇的游戏,但是增加了火球,敌人和碰撞检测.故,我们的龙可以发射火球来杀死敌人,并且记录分数.这样该游戏就有更多的交互性. 之前的翻译文章可以点击这里:http://www.cnblogs.com/pigzhu/p/3234255.html 第一步:HTML 首…
在上篇我们加上了简单的坦克之间的碰撞检测,这篇我们继续加上子弹之间, 子弹与坦克之间的碰撞检测,对于上一篇碰撞处理不太完美的地方我们继续改进. 1.子弹之间的碰撞 //玩家子弹和敌方子弹之间的碰撞 CCObject* pObj; CCARRAY_FOREACH(mEnemyTanks, pObj) { Bullet* enemyBullet = ((Tank*)pObj)->getBullet(); if (playerBullet->getFlyState() && enem…
上篇我们完成了简单的AI编写,但是各个坦克移动时之间是可以重合的, 这节课我们来完成坦克之间的碰撞检测,还是在上篇的EnemyAI中完成. 1.我先现在坦克类Tank中添加两个成员变量: CC_SYNTHESIZE(CCRect, mMovedRect, MovedRect); CC_SYNTHESIZE(bool, IsBlock, Block); mMovedRect是移动后的位置,目的是保存移动后的位置来检测碰撞, 如果发现与其他坦克碰撞了,则不执行移动动作: IsBlock是用来标记坦克…