***************************************************************************
申明:本系列教程原稿来自网络,翻译目的仅供学习与参看,请匆用于商业目的,如果产生商业等纠纷均与翻译人、该译稿发表人无关。转载务必保留此申明。
内容: How to start an empty GLKit application for iOS 5
原文地址:http://games.ianterrell.com/how-to-start-an-empty-glkit-application-for-ios-5/
译文地址:http://blog.csdn.net/favormm/article/details/6904242
***************************************************************************
本教程是2D游戏引擎教程的序,但对于任何一个刚步入iOS世界,想用Xcode4开发GLKit相关应用的人,本教程都有抛针引线的作用。其中大部份内容都是摘取自我的另一篇教程“学习iOS5中GLKit关于OpenGL的基本用法”,那篇教程绘制了一个3D立方体,很值得一读。
用XCode创建一个新的iOS应用,模版选择“Empty Application”。取个工程名(我将要编写一个游戏引擎,所以我命名为"ExampleEngine"),保持默认选择(如果是编写一个库,那在类前最好有个前缀,我用的是“EE”),保存。
接着我们添加OpenGL与GLKit相关frameworks。点击左上角的工程,然后选中TARGETS下你的target,再选中Build Phases栏,在“Link Binary With Libraries”中加入GLKit, OpenGLES,QuartzCore这三个framework。完成后,你将会在工程中看到你加入的framework,当然你也可以用拖的方式将其拖入Frameworks分组下。
确保你选择的是模拟器(如果你有开发者帐号,你可以用合法的provisioning profile来真机调试,于是你可以选择device),按⌘B
确保可以正确编译。
在AppDelegate头文件里引入GLKit头文件,这样就可以调用GLKit中的方法。
GLKit了类化了UIView与UIViewController,利用它们将方便我们把OpenGL场景集成到我们的应用中。两个类都是用代理(苹果Objective-C库中一种非常通用的设计模式)的计设模式嵌入到我们的应用代码中。我们要用AppDelegate作为GLKit的代理,因此得告诉编译器AppDelegate会实现代理协议。
现在来创建场景。将application:didFinishLaunchingWithOptions:这个方法用下面代码替换:
-
第3,4行创建OpenGL绘制时需要的上下文。
-
第6,7行设置绘制场景的view。第6行,由OpenGL上下文创建屏幕大小的view。第7行指明view的代理为AppDelegate。这样绘制每一帧的时候就会调用glkview:drawInRect:这个方法。
-
第9-11行,创建GLKViewController,并指明其代理类与view。代理方法中我们主要关心
glkViewControllerUpdate:
-
第13-15行,将我们的controller与"window"关联,以便显示。
-
第17行通知OS我们的应用已启动完成。
现在代理方没还没实现所以有警告提示,但是也可以运行。运行后,你会看到纯色的背景,看一看吧!
现在我们把这些警告去掉交改背景为灰色。在theapplication:didFinishLaunchingWithOptions:方法下面实现如下代理方法:
现在再运行,你会看到灰色背景,由gl开头的API实现的。在OpenGL与GLKit中,颜色由四个分量组成,分别是红,绿,蓝与alpha(透明度),每一个分量取值范围是[0,1]。
如果你打开上面代码中的NSLog注释,你会在控制台看到如下打印。
这儿有两个方法,因为GLKit基于state与presentation的(类似于MVC的设计模式或HTML/CSS分开发设计)。State(动画,物理模拟,游戏逻辑)应在glkViewControllerUpdate:这回调中,而glkView:drawInRect应用来绘制场景的。
源码下载:empty-glkit
分享到:
相关推荐
第4章介绍灯光模拟背后的概念,以及利用glkit并使用相对简单的应用代码演示灯光效果;第5章讲解并演示从任意视点渲染几何对象的技术;第6章介绍如何制作动画;第7章介绍了如何加载并使用模型;第8章讲解了特效的使用...
Newsstand: 学习如何制作一个杂志风格的程序 UIPageViewController: 学习如何让view controller支持页面卷动效果 Turn-Based Gaming: 学习如何使用新的Game Center API开发turn-based游戏 Core Image: 学习如何...
3DmikuARCamera 没有AR标记卡,启用了用户交互功能,您可以通过拖动,旋转,缩放来控制... 通过Xcode 6.3.2 Objective-C,GLKit,openGL ES 2.0 至少iOS 6.0 仅适用于iPhone Portrait (miku 3D模型从网上下载)
应用开发实践指南:iOS卷》是一本系统的具备实战性的OpenGL ES 3D图形开发指南。由资深iOS开发专家根据OpenGL ES最新版本撰写,不仅详细讲解了OpenGL ES与GLKit的结合使用,而且还系统讲解OpenGL ES的核心概念、技术...
使用单个纹理文件对立方体的每一面进行纹理化使用 OpenGL ES 2.0 和 GLKit 框架在 iOS 上实现的演示基本思想是使用这个单一的纹理: 纹理立方体的每一面:
LiveStageMMD-GLKit-GLES2 LiveStageMMD-GLKit-GLES2 iOS 5.0及更高版本支持GLKit API OpenGL ES 2.x支持GLSL...使用Xcode在iPhone或iPad上安装了该应用程序的用户 LiveStageMMD-GLKit-GLES2 单击右侧的[Download Z
应用开发实践指南:iOS卷》是一本系统的具备实战性的OpenGL ES 3D图形开发指南。由资深iOS开发专家根据OpenGL ES最新版本撰写,不仅详细讲解了OpenGL ES与GLKit的结合使用,而且还系统讲解OpenGL ES的核心概念、技术...
LiveStageMMD-GLKit-GLES1 LiveStageMMD-GLKit-GLES1 iOS 5.0及更高版本支持GLKit API OpenGL ES 1.x支持固定...使用Xcode在iPhone或iPad上安装了该应用程序的用户 LiveStageMMD-GLKit-GLES1 单击右侧的[Download Z
3DmoePhotoView 3D图片查看演示,您只能左右滑动来控制图片,图片具有滑动动画 通过Xcode 6.3.2 Objective-C,GLKit,openGL ES 2.0 至少iOS 5.0 仅适用于iPhone Portrait
OpenGL ES应用开发实践指南 iOS卷,绝版电子书。这是一本系统的具备实战性的OpenGL ES 3D图形开发指南。由iOS开发专家根据OpenGLES*版本撰写,不仅详细讲解了OpenGL ES与GLKit的结合使用,而且还系统讲解OpenGLES的...
OpenGL_ES之GLKit索引绘制“金字塔”并渲染其纹理和颜色混合,详细介绍了GLKit使用索引绘制“金字塔”的全部步骤和逻辑处理,并处理渲染了纹理以及和颜色的混合。
在GLKit框架下使用VAO绘制一个立方体
OpenGL-ES 使用苹果提供的 GLKit 框架实现
在 iOS 上使用 OpenGL ES 和 GLKit 进行离屏渲染 使用 OpenGL ES 渲染 UIImage 并将其显示在屏幕上。 所有渲染都在 OffscreenRenderer 类中完成,该类具有 UIImage 属性来获取渲染图像。
在GLkit框架下, 实现对多个对象渲染不同的纹理。
在GLkit框架利用VAO和索引创建一个Cube
使用苹果提供的GLKit框架写的一个OpenGL ES 入门程序, 即绘制一个三角形
在GLKit框架下利用VBO绘制一个立方体
关于CeedGL CeedGL是一个将OpenGL对象封装到Objective-C对象中的库。 它不是试图强制编码风格或定义特定的场景图,而是旨在使其更易于使用Objective-C的OpenGL。 现代OpenGL(ES 2.0,Desktop 3.0)定义了许多“对象...
用苹果提供的GLKit框架写的“OpenGL ES 程序” ,绘制了一个五角星。