cocos2d-iphone源码分析(2):Director

GprMax正演模拟:为什么你的反射波‘消失’了?可能是直达波在捣鬼(附Python后处理脚本) 本文深入探讨了GprMax正演模拟中反射波信号被直达波淹没的现象,并提供了Python后处理脚本的实战指南。通过时域置零、自适应增益控制、频域滤波等多种技术,有效增强反射波信号,帮助用户解决探地雷达模拟中的常见问题。文章还包含详细的代码示例和效果评估方法,适合GPR数据处理的研究人员和工程师参考。 阅读详情

简介

CCDirector负责创建和处理主窗口,和管理场景的的执行。同时负责:

  • 初始化OpenGL ES的context
  • 设置OpenGL像素格式(默认是RGB565)
  • 设置OpenGL缓冲深度(默认是0-bit)
  • 设置投影模式(默认是3D)

CCDirector一般作为单件使用,标准用法是:[[CCDirector sharedDirector] methodName]。IOS下[CCDirector sharedDirector]返回的对象是CCDirectorDisplayLink。

CCDirector继承自UIViewController。CDirector是真个引擎的核心,它控制整个运行过程。一般初始化代码如下:

// Main Window
     window_ = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

     // Director
     director_ = (CCDirectorIOS*)[CCDirector sharedDirector];
     [director_ setDisplayStats:NO];
     [director_ setAnimationInterval:1.0/60];

     // GL View
     CCGLView *__glView = [CCGLView viewWithFrame:[window_ bounds]
                                             pixelFormat:kEAGLColorFormatRGB565
                                             depthFormat:0 /* GL_DEPTH_COMPONENT24_OES */
                                     preserveBackbuffer:NO
                                               sharegroup:nil
                                           multiSampling:NO
                                        numberOfSamples:0
                                ];

     [director_ setView:__glView];
     [director_ setDelegate:self];
     director_.wantsFullScreenLayout = YES;

     // Retina Display ?
     [director_ enableRetinaDisplay:useRetinaDisplay_];

     // Navigation Controller
     navController_ = [[UINavigationController alloc] initWithRootViewController:director_];
     navController_.navigationBarHidden = YES;

     // AddSubView doesn't work on iOS6
     [window_ addSubview:navController_.view];
//     [window_ setRootViewController:navController_];

     [window_ makeKeyAndVisible];

     // create the main scene
     CCScene *scene = [CCScene node];
     ....
     // and run it!
     [director_ pushScene: scene];

初始化流程:

 

1. director_ = (CCDirectorIOS*)[CCDirector sharedDirector];

[CCDirector sharedDirector]返回的对象是CCDirectorDisplayLink,创建CCScheduler(调度器)、CActionManager(动作管理器)、CCTouchDispatcher(触摸事件处理器),并把创建的动作管理器加入调度器,然后调度器就在时间片离调用CActionManager相关方法。(相关文件:CCDirector.m, CCDirectorIOS.m)

2. [director_ setAnimationInterval:1.0/60];  设置FPS。

3. 初始化GLView,为渲染准备一个视图。

3.   [director_ setView:__glView];

[director_ setDelegate:self];

Director是继承于UIViewController,设置视图和代理者。

4.   CCScene *scene = [CCScene node];

创建主场景。

5   [director_ pushScene: scene];

把主场景推入场景堆栈,并执行。

任务

  • Memory Helper:使用purgeCacheData方法,可以自动清除所有cocos2d缓存的数据
  • Scene OpenGL Helper:可以设置OpenGL的Alpha混合和深度检测(setAlphaBlending、setDethTest)
  • Director Integration with a UIKit view:
  • Director Scene Landscape:场景布局
  • Director Scene Management:管理场景(runWithscene, pushScene, popScene, replaceScene, end, pause, resume, stopAnimation,startAnimation,drawScene)

属性

  • runningThread:cocos2d线程
  • runningScene:当前正在运行的场景,cocos2d一次只能运行一个场景
  • animationInterval:FPS
  • displayStats:控制是否显示一些统计信息
  • isPaused:控制Director是否暂停
  • isAnimating:控制Director是否运行
  • projection:设置OpenGL的投影
  • totalFrames:从Director开始运行,执行的帧数
  • secondsPerFrame:每一帧用时
  • deltegate:实现CDirectorDelegate协议的代理对象
  • scheduler:调度器
  • actionManager:动作管理器
  • touchDispatcher:用户触摸操作的处理器

查看更多相关代码:test/DirectorTest.m

2013/01/24  14:44 于上海

2025年09月中国电子学会青少年软件编程(Python)等级考试试卷(一级)答案 + 解析 阅读详情

相关推荐

霍尔编码器 vs 磁编码器:如何为你的电机控制项目选择最佳传感器(附实战对比)

本文深入对比了霍尔编码器和磁编码器在电机控制项目中的应用,从技术原理、性能参数、成本效益到实际场景选择提供了全面分析。通过实验室测试和项目案例,帮助工程师根据精度、环境抗性和预算选择最佳传感器方案,特别适合机器人、伺服驱动等领域的开发者参考。

weixin_28312391的博客 350

【Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!...

Himi 原创,转载请注明! 原文地址:http://blog.youkuaiyun.com/xiaominghimi/article/details/6704898 好像有段时间没有更新了,主要项目比较着急,不过现在cocos2d基本算是全拿下了,进展很顺利,那么在这里主要给大家介绍下一些Himi遇到的问题; 本章介绍两个知识点: 1. 在Cocos2d中添加系统组件...

┢┦ī М ī 220

liquibase扩展支持达梦数据库

近期项目中需要支持国产数据库,需要liquibase底层支持达梦数据库,记录下操作的详细步骤以便分享。 1.liquibase支持的数据库很多如MySQL, PostgreSQL, Oracle, Sql Server, DB2。但是达梦数据库并不支持,所以需要新建DMDatabase类来适配达梦数据库。达梦语法和Oracle很像所以只需要复制liquibase-core下的Oracle Database做些修改就可了。以下为需要修改的地方 public class DMDatabase extends A

qq_43677719的博客 5472

疯狂ios讲义之创建cocos2d项目(3)

13.3.3 cocos2d项目结构和代码分析这一节将向游戏开发者介绍HelloWorld项目的目录结构,以及各个部分是如何协同工作的。通过本节的学习,你会对各个部分之间的联系有个大致的了解。图13.22显示了HelloWorld项目的项目导航面板。图13.22cocos2d项目引用两类不同的文件:源码文件和资源文件(包括图像文件、声音文件和属性文件等)。Default.png文件是在iOS加载应...

weixin_34144848的博客 152

01 高等数学 上下册知识点总结

极限与连续 8个等价无穷小 8个常用泰勒公式 高数复习——多元函数微分学 一、概念 一元函数: 可微<=>可导 △y=A△x+o(△x)dy=AdxA=f′(x)\triangle y=A\triangle x+o(\triangle x)\\dy=Adx\\A=f'(x)△y=A△x+o(△x)dy=AdxA=f′(x) 多元函数: 可微=>可导(可导指两个偏导数存在,反之不成立) 可微=>连续(反之不成立) △z=A△x+B△y+o(p)dz=Adx+BdyA=δzδxdx

qq_44292038的博客 1万+

win11本地部署openclaw实操第5集-X11图形化界面搭建,让WSL2“看见”世界

本文介绍了在WSL2中实现图形界面(GUI)的方法。由于WSL2默认没有图形界面,需要使用X11服务器作为"翻译显示器",将Linux程序的图形指令渲染到Windows窗口中。推荐使用VcXsrv作为X11服务器,详细说明了其安装和配置步骤,包括选择"One large window"显示模式、禁用访问控制等关键设置。随后在Ubuntu中安装轻量级xfce4桌面环境,并通过设置DISPLAY环境变量将图形输出指向VcXsrv。最终通过startxfce4命令成功在Vc

weixin_44626085的博客 811

[cocos2d-x] --- CCDirector类详解

  Email : hahayacoder@gmail.com   1 CCDirecor(导演)在cocos2d-x引擎中是一个很重要的类,CCDirector使用单例模式实现,所以整个游戏中只有一个导演。CCDirector在整个游戏中扮演很重要的角色:(1)在开始游戏和结束游戏时负责游戏的初始化和销毁工作。(2)管理游戏的关卡,即场景。负责各个场景之间的切换。(3)设置、获取系统信息...

系统运维 242

Tailscale 自建 DERP 中继服务器

Tailscale自建DERP中继服务器

Accompagner的博客 4328

CCdirector的几个主要功能

1,初始化OpenGl  环境 2,管理整个游戏场景,什么时候创建和怎样创建。 3, 游戏的暂停和结束。 4,以及缓存的处理。 5,由于为单例模式,2.版本中,为CCdirector::sharedDirector->end();在3.版本中为,Director::getInstance->end(); 游戏结束 6,CCdirector::sharedDirector->GetRunn

u013011717的专栏 2217

3DGS 2025实战指南:从安装到训练全流程解析

本文提供了3D Gaussian Splatting (3DGS) 从零开始的完整实战指南。详细解析了使用gsplat库进行环境配置、依赖安装(包括pycolmap和fused-ssim)、数据准备与COLMAP处理、核心训练流程及参数调优,并探讨了2025年3DGS在动态场景、可控编辑等领域的最新进展,帮助开发者快速掌握这一前沿3D重建技术。

b3n4m5q6w7的博客 357

【AIGC】COT思维链:让AI学会拆解问题,像人一样思考

COT思维链的出现,为AI的发展开辟了一条新的道路。它让AI学会了像人类一样思考,将复杂问题分解成简单的步骤,并逐步推理出最终答案。希望我的引导会对你产生启发。

智兔唯新的博客 9002

【Cocos2d-X开发学习笔记】第03期:渲染框架之导演类(CCDirector)的使用

提到“导演”一词,想必读者最先联想到的是电影。作为娱乐产业,游戏领域和电影领域有很多类似之处,比如 在游戏领域中,也存在制作人的职位。不过,此时提及的“导演”可不是一个人,而是在渲染框架中,有一个类充当 着导演的角色。在开始介绍Cocos2D-X引擎中的“导演”之前,请大家先想想在电影行业中的导演,通常在一部电影 中承担怎样的工作。   一、导演类            CCDire

我是一条寻水的鱼 3112

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(一)校园网核心交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 3795

cocos2d-iphone源码分析(1):场景

cocos2d-iphone是一个基于Objective-C的2D游戏引擎。还有一个跨平台版的叫cocos2d-x,这个现在貌似挺火的。用cocos2d开发应用之前,必须要先了解下面几个概念: Scenes:场景Director:导向器Layers:层Sprites:精灵 1.场景的概念 场景(CCScene对象)在app的工作流中,是一个比较独立的元素。你也可以把他称作“屏

GAME-LAB(游戏开发,微信公众号:fury-programer) 1515

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

cocos2dx(一)-ios平台程序怎么跑起来的

cocos2dx的在不同平台上可以运行,上层主要使用c++来写的,但是跟平台相关的东西还需要用平台的默认语言跟平台提供的api来写的。下图是AppDelegata相关类图 ios中首先是main函数如下,它创建了AppController类,这是ios app的应用代理类,当app启动时,会调用这个类的 - (BOOL)application:(UIApplication *)applicat

追求游戏之道 2549

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

UIKit和Cocos2d-x的整合使用;设置CCEAGLView背景为透明,来显示背后的UIView; 以及整合中遇到的问题的解决方案

原来我们的项目通过原始的UIKit来实现应用开发,但是现在需要往应用中增加礼物特效动画,而礼物特效需要通过cocos2d-x来实现。晚上的方法大多都是通过创建初始的cocos2d工程,再在工程中增加UIKit的实现。最著名的介绍这个方法的链接是: 但是我们的应用已经相对较大,所以计划在原有的应用中整合Cocos2d-x。初期走了比较多的歪路,比较复杂,但是后面合并成功后比较简单。首先把你的coc

Michaelin1208的博客 6302

cocos2d-x 3.1.1 学习笔记[21]cocos2d-x 创建过程

RootViewController.h

zhouyunxuan的专栏 6572

cocos2d-X学习之主要类介绍:CCDirector

在cocos2d-x里面,游戏的任何时间,只有一个场景对象实例处于运行状态,该对象可以作为当前游戏内容的整体包对象 Cocos2d-x引擎除了提供了CCDirector,还提供了一个CCDisplayLinkDirector,CCDisplayLinkDirector是一个可以自动刷新的CCDdirector。 CCDirector主要函数如下: CCScene *  g

Y.Light的专栏 575

iOS 关于不死后台

根据苹果文档中关于后台执行的描述,任何app都有10分钟左右的后台任务执行时间。 10分钟后,app会被iOS强行挂起。 但是,有5类app允许有“无限的”后台运行时间: 1. Audio。 2. Location/GPS。 3. VoIP。 4. Newsstand。 5. Exernal Accessory 。 你可以将任何app声明为上述5种类型以获得无限的后台运行时...

杨克进的博客 975

cocos2d内存管理的一些学习总结

这些天处理一个程序里的内存泄漏问题,主要是ios应用里用到了一个cocos2d做的CCBlade效果插件。 主要步骤: 在viewController的viewDidLoad方法中获取CCDirector的一个实例: CCDirector *director = [CCDirector sharedDirector]; 然后初始化一个CCGLView: CCGLView *g

msbls5的专栏 788

cocos2d-x CCDirector在Windows平台,Android平台,ios平台分析和用途-沈大海cocos2d-x教程10...

在一个Cocos2d-x的应用入口中,当应用环境加载完成会回调以下方法 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// bool AppDelegate::applicationDidFinishL...

mmdev 286

三、第一个cocos2d程序的代码分析

在第一讲中已经新建了第一个cocos2d程序,运行效果如下: 在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是如何显示出来的。 这是HelloWorld项目的代码结构: 下面,我们开始分析项目中的这些源文件: 从程序的入口点开始 这么多源文件在这里,究竟先看哪个呢?有些人可能会先挑内容少的来看,觉得这样就可

M了个J 1万+

cocos2d学习之CCDirector

CC

yesjava的专栏 1355

cocos2d-CCDirector分析

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33834910的博客 148
上一篇: cocos2d-iphone源码分析(1):场景
下一篇: 编码之道:是谁制造了混乱
future_fighter
博客等级 码龄20年 129粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值