cocos2d-x导演,层,场景,精灵

1. 场景(对应的是CCScene类,由CCScene类实现器功能)更多是app中一个独立的工作流程。一些人可能会称其为“屏幕”或者“舞台”。你    的游戏可以包含多个场景,但是在给定的同一时间段中,只能有一个场景是活跃有效的。

2. 一个cocos2d场景是由许多节点组成,这些节点作为子节点被添加到场景中。添加到场景中的子节点都是CCNode的子类,例如CCLayer和CCSprite,它们赋予场景外观表现和行为表现。典型的例子,你可以创建CCLayer的子类并将其添加到一个空白的CCScene实例中,来实现场景。然后,一CCNodes子类形式实现游戏中其他的图形和游戏对象,并将它们作为子节点添加到你创建的CCLayer中。

3. CCTransitionScene为实现类。这些类为场景之间的转换提供特殊过渡效果——例如渐变,在从侧面滑动

4.

Director

导演

CCDirector是单例对象,负责场景之间的导航。它知道当前那个场景是活动的,并且允许你通过取代当前场景,或者从场景栈中推进一个新的场景来改变场景。当你向栈中推进一个新的场景,CCDirector会暂停前一个场景,但是在内存中仍然保留它,当你将栈顶的场景推出,暂停场景会从最近的状态恢复。

CCDirector还负责初始化OpenGL ES。

5.

Layers



CCLayer是处理玩家触摸事件的CCNode子类。层知道怎样渲染自己,也可能是半透明的,这样游戏玩家就可以看到当前层下面的其他层。CCLayers在你定义游戏的外观和行为方面非常有用,所以,你应该要花很多编程时间编写CCLayer子类,来完成做你需要实现的。



一般在CCLayer中定义触摸事件的处理者。CCLayer通过实现触摸事件的方法(ccTouchBegan, ccTouchMoved, ccTouchEnded, or ccTouchCancelled) 可以回应玩家的互动。这些触摸事件会传播到场景中的所有层,从前向后,直到某个层截获并处理这些触摸事件。

而复杂的应用程序会要求你定义定制CCLayer子类,cocos2d提供了一些预先定义的层。一些例子包括CCMenu(简单的菜单层),CCColorLayer(填充色层),CCLayerMultiplex(可以复用他的子节点,可以每次激活其中一个子节点,同时禁用其他的)。

层可以包含任何CCNode作为子节点,包括CCSprites(精灵), CCLabels(标签),甚至其他的CCLayer对象。因为层是CCNode子类,层可以通过手动或者使用CCActions进行切换

6.

Sprites

精灵

Cocos2d中的精灵和其他游戏引擎中的精灵相似。它是可以运动,旋转,缩放,执行动画,并接受其他转换。

CCSprite是精灵的实现类,可以拥有其他的精灵作为子节点。当父节点的精灵改变,子节点也随之改变。

因为精灵是CCNode的子类,可以手动或者使用CCActions改变精灵。

获取可视区域大小, 获取可视区域起点 vs 获取窗口大小

VisibleSize(可视区域大小)会返回此点的OpenGL视图的可视区域大小。如果没有调用CCEGLView::setDesignResolutionSize()的话,此值等于getWinSize的大小。 getVisibleOrigin(获取可视区域起点)会返回此点的OpenGL视图的可视区域起点。

convertToNodeSpace:转换坐标,x相加取负值,y相加取负值。
convertToWorldSpace:
convertToWorldSpace会经常返回你的精灵的SCREEN位置,如果你想捕获精灵的taps而且需要移动/缩放layer的时候,这可能非常有帮助。
convertToWorldSpaceAR

convertToWorldSpaceAR返回相对锚点的位置:所以如果你的场景 - 根layer有一个锚点位于ccp(0.5f, 0.5f)。- 默认的,convertToNodeSpaceAR应返回相对于屏幕中心的位置。

Actions

Actions 继承了CCNoded的属性。actions通常会修改对象的一些属性,如位置,旋转,缩放等。如果这些熟悉在一段时间内被修改,它们是CCIntervalAction actions,相反则是 CCInstantAction actions.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值