• Cocos2diPhone场景切换的基础知识


    场景切换:游戏系统包括3个典型场景,分别由3个不同的层来实现,场景的切换主要使用Director的ReplaceScene函数来实现。

    //ReplaceScene函数原型:
    -(void) newGame:(id) sender
    {
    Scene *sc = [ Scene node];
    [ sc addChild:[ GameLayer noder]];
    [[ Director sharedDirector] replaceScene: sc];
    }

    首先创建一个新的Scene实例,在创建一个目标层的新实例(在以上代码众就是GameLayer),附加给这个场景实例,再调用Director的ReplaceScene函数,并将新场景(就是包含了GameLayer层的场景实例sc)作为当前激活层展示其内容。

    需要实现画面切换效果时,可以将上面的代码改为下面这样,使用画面切换效果类(SlideInRTransition)的静态函数返回的场景类传递给ReplaceScene。

    [[Director sharedDirector] replaceScene: [ SlideInRTransitiontransitionWithDuration:1.2f scene: sc]];

    画面坐标系:坐标系的概念,一般意义上的坐标系为笛卡尔坐标系,不同的图形库采用不同的坐标系,iPhone平台提供了两种绘图库:Quartz 2D和OpenGL ES。其中Quartz是Core Graohics绘图库的子集,OpenGL ES是跨平台图形库OpenGL的嵌入设备版(Embedded System)。这两者的坐标系的原点就不一样。

      1.Quartz的原点在左上角:这是一种基于虚拟“画布”绘图模型的图形库。绘图指令可以按次序向“画布”上画下不同的内容,后面画的内容覆盖签名画的内容(透明除外)。

      2.OpenGL ES的原点再左下角:OpenGL ES相对来说比较复杂,这实际上是一个3D的绘图库,按照“状态机”模型设计的绘图库,这个理解起来比较复杂,不是简单的让后者简单叠加再前者上面,而是纪录各个绘制内容的3维位置关系,按照系统设定的投影关系,展示所有绘制的这内容是在某个特定的虚拟“窗口”上的图像。

    Cocos2D-iPone是基于OpenGL ES(针对OpenGL的学习是值得的,主流操作系统都支持该图形库,比如说Google手机的Android)。

      1.anchorPoint:为了将一个矩形图像精准的放置在屏幕一个位置上,需要设置该矩形的位置参考点,(人们通常习惯于将参考点放是、认为是该矩形的左上角那个点)。CocosNode的该属性就是这个参考点的,x,y轴按照OpenGL ES坐标系,数值采用相对自身宽高的比例。

       2.Position:CocosNode对象的实际OpenGL ES坐标,注意此处需要浏览课本,此原理为图解。

    代码分析请观看书本。

  • 相关阅读:
    2020.08.28【周报】
    区间合并【排序、栈】
    1042 数字0-9的数量【解题数分DP】
    asp.net数据分页方法
    纯css面板插件,自适应,多样式
    c#winform图表控件使用示例
    使用妹子UI开发的体验分享
    阿里云储存代码整理(由三卷天书整理)
    测试程序的时候用到写参数或者错误日志的几个方法,用来方便发现错误
    fineUI表格控件各属性说明
  • 原文地址:https://www.cnblogs.com/chenxiangxi/p/2267406.html
Copyright © 2020-2023  润新知