angry Birds 学习札记

 AnchorPoint锚点: 

1.  CGPoint 有x和y的坐标。锚点是在0.0f-1.0f之间,缺省为0.5-0.5.  ccp(0.5,0.5)。  使用的数学系的坐标,左下角为0.0-0.0, 0.5-0.5 就是在中心。

      锚点就是一个小数,Position就是图片的大小乘以锚点的小数的值(也使用数学系坐标)。

2.  锚点和图片的等比例变大。图片变大会根据锚点等比例变化,如果锚点在(0.5,0.5)则图片向上下左右变大。


CCMenu菜单:

1.   CCMenu继承于CCLayer,CCLayer继承于CCNode。

2.  CCMenuItem继承于CCNode。

3.  CCMenuItemSprite可以放任何图片或自己画的图片。


CCAction精灵运动:

1.  类的层次 CCAtion->CCFiniteTimeAction->CCActionInterval->CCJumpTo/by 调到绝对路径/相对路径 CCMoveTo/By 移动 CCRotateTo/By  旋转

2.  函数调用  CCCallFunc->CCCallFuncN  有一个参数CCNode

3.  在CCJumpTo中 +(id)actionWithDuration:(CCTime)t position:(CGPoint)pos height:(cctime)h jumps:(NSUInteger)j ;  

4.  在CCMoveTo中,+(id)aciotnWithDuration:(ccTime)t position:(CGPoint)p;   直线移动,到p的时间。在移动过程中精灵的坐标是会变的。

5.  在CCCallFuncN中,+(id)actionWithtarget:(id)t selector:(SEL)s;

5.  在CCNode中的运动方法,-(CCAtion*)runAciton:(CCAtion*)action;   -(void)stopAllActions;


粒子特效:

1.  CCParticleSystem粒子特效的基类。CCparticleSystemQuad常用的子类,有很多的子类,CCParticleSnow,CCParticleFire...

2.  系统自带的粒子特效:CCParticleExplosion  爆破粒子效果 CCParticleFireworks  烟花粒子效果 

3.  CCTextureCache 管理纹理的管理器。  添加图片。 

4.   使用缺省粒子特效   [CCParticleSnow node].

5.  使用粒子设计器产生plist。 使用ARCH_OPTIMAL_PARTICLE_SYSTEM particleWithFile:@"".   网上出售的粒子特效,就是用来产生plist文件。


剧场动画切换:

1.  CCTransitionScene 剧场切换方法

2.  CCTransitionSplitCols   竖向动画

3.  CCTransitionSplitRows  横向动画

4.  CCTransitionRadialCCW  雷达效果

5.  CCTransitionTurnOffTiles  小格子动画

6.  CCTrandsitionSlideInL   左移效果


游戏关卡设置:

1.  通关数据保存,CCLabelTTF控件使用

2.  CCNode 添加一个孩子类,addChild:z:。   添加 孩子的时候,可以添加一个z坐标,用来表示图层。


cocos 2D坐标转换:

1.  UIView的坐标系统,从左上角向右为X正向,向下Y正向。 从横屏来看,从左下角看是,向上为X正向,向右为Y正向。

2.  OpenGL的坐标系统,与数学坐标一样。向右为X正向,向上为Y正向。  笛卡尔系统。

3.  世界坐标,左下角为原点。向右向上为正。xy都为正。                 iphone首先拿到的坐标是uiview坐标。

4.  对象窗口内的坐标,左下角为原点。向右向上为正。如layer的坐标。xy都为正。 CCNode 就是当前对象self的坐标。

5.  基于锚点的窗口内的坐标,窗口基于锚点(x,y)的笛卡尔坐标系(此时原点为锚点),坐标x向右为正,y向上为正。x,y可以为负数或正数及0.

6. IOS view到OpenGL坐标转换,[[CCDirector sharedDirector] convertToGL:location];   把OpenGL坐标转换成UIVIew坐标:-(CGPoint)convertToUI:(CGPoint)glPoint;

7.  ccTounches触摸系列: CCStandardTouchDelegate标准代理函数。

8.  CCTouch触摸系列: CCTargetedTouchDelegate代理函数。

9.  CCNode  -- (CGRect)boundingBox;  经过缩放和旋转后的大小。


布置精灵:

1.  游戏类层次关系,GameLayer, spriteBase基类。 pig, ice, bird

2.  使用数据源进行关卡的设置。


OpenGL ES画线:

1.  glColor4f 设置颜色。


事件机制:

1.  标准事件 @protocol   CCStandardTouchDelegate    特有事件  @protocol  CCTargetedTouchDelegate  

2.  glView/UITouch  -> CCTouchDispatcher -> CCNode 事件的传递

3.  增加标准事件,-(BOOL)isTouchEabled;  


Box2物理引擎:

1.  从微软开发中获取,都是使用C++编写。物理引擎就是解决游戏中的物理规律的变化。

2.  宇宙平衡世界,可见 Cocos2D 480*320  不可见Box2D 15米*10米

3.  b2world:box2d的世界。有很多的b2body,即刚体。 里面有很多的b2Fixture。b2Fixture包含各种属性,b2Shape。

4.  ballBodyDef.bullet = yes;  子弹效应。


物理世界的模型:

1.  Box2D模拟原理,就是通过原理来模拟下一时刻的世界。

2.  都是用C++来实现的啊。

3.  定义一个b2world的对象。

4.  创建地板,b2BodyDef

5.  创建地板的一个刚体b2Fixture。


碰撞测试:

1.  b2Contact 2个形状之间的碰撞。  可以获取2个形状shape的物理Fixture。

2. b2ContactListener  监听。

3.  Solver解算子。Begin, End.  

4.  postSolver, 在solver计算完成后调用的函数。












  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值