游戏开发

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

你可能感兴趣的:(游戏开发)