1.概念
hp:hit point 生命值,打击值 ,血条
waypoint:路点,路标。一系列坐标,可以对一个点在物理空间中的位置进行标识。在物体层定义的很多标识,每个标识有名称,位置。只要用数据类表示它就可以了。
creep:爬行,蠕动,敌人。
wave:攻击波次,某一组敌人
spawn:生殖,生产,产生,spawnRate生殖速度
HUD:head up display 抬头区域,信息显示区域。
兴趣点:对于敌人来说就是路点,而对于炮塔来说就是敌人的位置
tile :瓦片,瓷砖。我是革命一块砖,哪里需要哪里搬
2.策略
(1)炮塔调整:
追踪最接近的敌人,搜索地图上所有的敌人,通过比较它们和炮塔的距离来找出最接近的敌人。对于每个搜索到的敌人,再次检查它到炮塔的距离是否小于之前存储的距离。默认情况下,我们选择99999这个距离,因为任何一个出现在地图上的敌人到炮塔的距离都会小于这个值。
double curDistance = ccpDistance(self.position, creep.position);
(2)炮塔旋转
首先计算出当前点和兴趣点之间的方向向量。然后使用ccpToAngle函数将向量转换为弧度(反正切),接下来将这个弧度用CC_RADIANS_TO_DEGREES转换成角度。
还有一点需要注意的是,我们预计的旋转角度是0-359度,而cocos2d所处理的旋转角度一般是0-180和0-180度
//rotate the tower to face the nearest creep
CGPoint shootVector = ccpSub(self.target.position, self.position);
CGFloat shootAngle = ccpToAngle(shootVector);
CGFloat cocosAngle = CC_RADIANS_TO_DEGREES(-1 * shootAngle);
float rotateSpeed = 0.5 / M_PI; // 1/2 second to roate 180 degrees
float rotateDuration = fabs(shootAngle * rotateSpeed);
[self runAction:[CCSequence actions:
[CCRotateTo actionWithDuration:rotateDuration angle:cocosAngle],
nil]];
(3)获取金币:
随着时间的流逝金币会缓慢增长;
通过秒杀怪物来获取金币;
消费金币:
购买炮塔;
(4)失血
每当有敌人抵挡终点时,血条生命值会降低。
3.横版格斗过关游戏
横版格斗过关游戏的真谛就是,一个打不死的英雄小强靠着一双拳头或其它武器把碰到的所有敌人打个稀巴烂。
4.动画类型:
关键帧动画(keyframed animation)
骨骼动画(Skeletal Animation)
5.地图拼接与战争迷雾:利用地图拼接的原理来进行战争迷雾的实现
http://bbs.9ria.com/thread-157487-1-1.html
数学原理:以1,2,4,8分别代表一个区块的4个角落的素材编号。当发生叠加时候,将角落里的值进行累加,最后,4个角的合即为地图区块所对应的编号。
20.随机数
1)、arc4random() 比较精确不需要生成随即种子
使用方法 :
通过arc4random() 获取0到x-1之间的整数的代码如下:
int value = arc4random() % x;
获取1到x之间的整数的代码如下:
int value = (arc4random() % x) + 1;
示例:arc4random() % 2 结果非0即1。
2)、CCRANDOM_0_1() cocos2d中使用 ,范围是[0,1]
使用方法:
float random = CCRANDOM_0_1() * 5; //[0,5] CCRANDOM_0_1() 取值范围是[0,1]
3)、random() 需要初始化时设置种子
使用方法:
srandom((unsigned int)time(time_t *)NULL); //初始化时,设置下种子就好了。
22.wrong position of tile map when i convert to retina display
Me also observed same problem with cocos2D tile map and finally resolved by dividing CC_CONTENT_SCALE_FACTOR. In retina mode it gives 2.0.
23.尽量不用复杂的算法,无论是设计还是实现都要尽量遵循K.I.S.S懒人原则。
24.用一个不可见的碰撞检测层和固定不变的地图层重合,来判断是否该穿越。
物体层上用来标识一些位置。
可被拾取的物品放在不同于地图层的层中。
25.速率是标量,只有大小没有方向,它只描述物体运动的快慢,而不反映物体运动的方向;速度是矢量,有大小有方向。
这个方法的作用就好比照相时在找相机的位置。我们让用户传任何x,y坐标进来,但是有些坐标位置是不应该被移动到的位置,比如我们不想让屏幕移出地图的边缘(那里只有一片黑!)。
如果我们照相的时候,相机的中心位置比winSize.width/2或者winSize.height/2小,那么我们照出来的照片是不是就会有一部分不是我们想要的呢?同理,我们需要检查边界条件,这正是我们在这里做的。
想象一下,身处在一个巨大的世界中,我们能看到的区域是从0到winSize.height/width的这部分。我们视野的中心是centerOfView,并且我们知道要让中心在哪儿(actual position)。所以要让我们视野的中心向上向右移动到actual postion,我们只需要让地图相对的向下向左移动即可。
这一步是通过actual postion与centerOfView坐标相减得到的,然后把HelloWorld layer的坐标设为这个结果。
根据勾股定理,C² = A² + B², 所以:
C = √(A² + B²)
且有 A = B = 1 (从一个正方形移动到另一个的cost = G cost)
C = √(2)
C ≈ 1.41
所以对角线移动的cost等于1.41, 这比先向左移动然后再向上移动的cost值2 (1 + 1)还要少。
正如你所知道的,使用整形数去计算要远比浮点数方便,所以与其使用floats去代表对角线运动的cost值,还不如简单的对cost值乘10,然后四舍五入,这样水平或者垂直移动会消耗10,而对角线移动会消耗14。
100.
如何设计开发iphone塔防游戏4-栩栩如生
http://article.ityran.com/archives/953
http://article.ityran.com/
http://article.ityran.com/archives/2119
http://article.ityran.com/archives/2158
http://article.ityran.com/archives/1296
http://article.ityran.com/archives/2200
http://article.ityran.com/archives/1656
http://article.ityran.com/archives/1296
Cocos2d漫游指南4
http://blog.sina.com.cn/s/blog_9626c2940100x2ob.html
http://www.raywenderlich.com/1163/how-to-make-a-tile-based-game-with-cocos2d
地图图片参考
http://www.cnblogs.com/dekins/archive/2012/09/19/2693185.html
随机迷宫生成算法浅析
http://www.4ngel.net/article/17.htm
随机生成迷宫算法及其 Java 实现
http://www.originsoft.net/archives/165
百科知识竞赛题----综合选择题1
http://www.liyiok.cn/zstk1/zsjstk0929576zh018.htm
http://wenku.baidu.com/view/3a2fcf70f46527d3240ce0cc.html
实现人物8方向,站立,行走,攻击动画
http://www.cocoachina.com/bbs/read.php?tid=84034
图块
http://www.66rpg.com/
图标png网
http://www.iconpng.com
http://www.supersuraccoon-cocos2d.com/2011/09/17/sticky-demo-resource-list-keep-updating/
http://www.cocoachina.com/bbs/read.php?tid=74089
如何高效设计游戏——增强游戏体验游戏背景音乐无缝循环
http://www.gameres.com/thread_196765_1_1.html
分享到:
相关推荐
《Visual C++游戏开发经典案例详解》这本书是针对使用Visual C++进行游戏开发的专业指南,旨在帮助读者通过实例学习和掌握C++编程语言在游戏开发中的应用。书中的内容覆盖了从基础到高级的游戏开发技术,包括图形...
第2章 游戏开发相关android基础知识 23 2.1 游戏中的音效 23 2.1.1 游戏中的即时音效 23 2.1.2 即时音效的一个案例 24 2.1.3 背景音乐播放技术 27 2.1.4 简易音乐播放器的实现 29 2.2 简单数据的...
【标题】"NES游戏开发工具 NES游戏编程 NES游戏教程"涉及的是8位家用游戏机——Nintendo Entertainment System(NES)的游戏制作技术。NES是1980年代末至1990年代初流行的家用游戏机,它承载了一代人的游戏记忆。这...
Unity3D是一款由丹麦Unity Technologies公司开发的全面支持多平台的游戏开发引擎,支持Windows、Mac、iOS、Android、Wii、PS3等众多平台,具备跨平台开发的特性。该引擎以其高度优化的图形渲染管道、强大的跨平台...
Unity3D游戏开发是目前非常流行的游戏开发方式,本书《Unity3D 游戏开发》由宣雨松编著,由人民邮电出版社出版发行。该书详细介绍了如何使用Unity引擎进行游戏开发,并以实例为基础,帮助读者快速入门并掌握Unity3D...
DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX 游戏开发终极指南DirectX ...
随着智能手机的普及和移动游戏市场的蓬勃发展,Android游戏开发已成为计算机科学及软件工程领域的重要研究方向。本文基于Android平台开发了一款解谜游戏,旨在探讨开发过程中的关键技术和设计理念,并分析了游戏的...
DirectX 12游戏开发的知识点涵盖了3D图形编程的多个方面,包括DirectX基础、3D数学原理、DirectX 3D入门程序、HLSL着色器语言入门以及图形界面设计等内容。以下是详细的知识点: 1. DirectX简介: DirectX是一种由...
《Visual C++ 游戏开发案例实战》是一本专注于利用Microsoft的Visual C++环境进行游戏开发的实践教程。这本书由王浩编著,由清华大学出版社出版,提供了高清且带有书签的阅读体验,方便读者查阅和学习。在本书中,...
c#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的回合制RPG游戏源码.zipc#游戏开发基于unity3d的...
而以往在次时代3A游戏开发中有着重要地位的虚幻4(Unreal Engine4)在手游横行的时代似乎有点落寞。实际上无论是Unity3d还是虚幻4,在跨平台开发适配方面都有着不错的兼容性和延展性。虽然使用虚幻4来开发手游仍然...
游戏开发团队构架及开发流程 游戏开发公司通常包括游戏设计、程序员、美术等多个部门,每个部门内部又有明确的职位。游戏设计部门包括游戏设计主负责人、执行游戏设计师、辅助员等,负责游戏设计的整体把握、分配...
DirectX9.0是微软为Windows操作系统开发的一套应用程序接口(API),主要用于处理3D图形渲染、音频处理和输入设备控制等任务,特别是在3D游戏开发中应用广泛。本资源包含一本关于DirectX9.0和3D游戏开发的编程书籍的...
电子书下载 : http://blog.csdn.net/good3651/article/details/53420721 -------《Unity 3D游戏开发技术详解与典型案例》对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细的介绍,内容深入浅...
李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发。本书根据大富翁项目一一展开讲解游戏开发过程中涉及的各方面内容...
本书以实例教学为主线,循序渐进地介绍了Unity在游戏开发方面的不同功能。第1章,由零开始,引导读者熟悉Unity编辑器的各个功能模块,这部分内容对Unity程序员、美工和策划都有帮助。 第2~4章是3个不同特色的3D游戏...
《DirectX游戏开发终极指南》涵盖了游戏开发过程和方方面面,书中以一个名为Straned的第一人称射击游戏开发过程为主题展开介绍,首先介绍了DirectX和Direct3D图形学,然后逐章介绍了游戏引擎和完整游戏的开发过程。...
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
DirectX是微软推出的一系列应用程序接口(API),主要用于多媒体,尤其是游戏开发,它涵盖了图形、音频、输入设备控制等多个方面。这个"DirectX游戏开发终极指南"PDF版结合了源码,为初学者提供了一个全面了解和学习...
Unity3D/2D游戏开发从0到1分实战项目篇与开发理论篇。其中,开发理论篇,从初学者容易入门的角度分为上部分(1~14章)与下部分(15~29章)。上部分内容包括游戏历史与Unity发展概述、Unity界面与3D模型入门、Unity...