没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
首发于:泰然论坛
iOS 5 中的 UIKit 粒子系统教程
泰然翻译组出品 翻译:Benna, TXX_糖炒小虾;校对:Iven,子龙山人, sai, u0u0
原文:UIKit Particle Systems in iOS 5 Tutorial
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,
切勿进行商业传播。同时,转载时不要移除本申明。如产生任何纠纷,均与本博客所有人、发
表该翻译稿之人无任何关系。谢谢合作!
Ray 的话:这是第 15 篇、也是最后一篇《iOS 5 盛宴》中的 iOS 5 教程!这篇教程来自我们的新
书《iOS 5 教程》中的一篇免费预览章节。这个礼拜三我们将迎来《iOS 5 盛宴》系列的最后一
次发布——来自史诗般的《iOS 5 盛宴》奉送,最后一次#ios5feast 的广播!:]
这是篇教程由 iOS 教程小组成员 Marin Todorov 所撰写,他是一位拥有超过 12 年经验的软件开
发者,一位 iOS 的独立开发者,同时他也是 Touch Code Magazine 的创立者。
你可能已经看过一些粒子系统,它们被应用于很多 iOS 应用程序和游戏中,诸如爆炸、火特效、
下雨或者下雪等。然而,你所看到的这些特效类型可能大部分出现在游戏之中,因为 UIKit 不提
供内置的功能来创建粒子系统----直到 iOS 5 的出现,这种情况将有所改变,本教程将采用 UIKit
来制作粒子系统!
现在,利用 iOS 5 你能直接在 UIkit 中使用粒子系统,给你的应用程序带来很多令人兴奋的视觉
享受。这里有一些非常适用于使用粒子系统的例子:
UIKit 游戏:是的,你可以通过普通的 UIKit 制作游戏(有些游戏类型运作得相当好,尤
其是棋牌类游戏)。现在,你可以用爆炸、烟雾等其他更引人的东西制作更好的游戏!
美化 UI 效果:当你的用户在界面上移动一个物体时,它能留下一条烟雾痕迹,为什么不做
呢?
令人目眩的屏幕转场效果:何不在你的应用程序显现下一个场景时,让之前的场景消失在
一个火球中?
首发于:泰然论坛
希望能用 UIKit 粒子系统做些什么,也许你已经有一些很酷的想法啦。那么,让我们开始吧!
在这个教程中,我们将开发一个叫“Draw with fire”的应用程序,让你(你猜中了)在屏幕上
绘制火焰。
你将和我一起完成粒子系统的创建与设置来实现屏幕上看到的效果,让你能将你的想法一步步实
现。当这个应用完成,你就能用它绘制一个用火焰标记的漂亮的问号,就像这个:
新的粒子 API
有两个类在你创建粒子系统时将会需要使用,它们在 QuartzCore 框架中,名叫 CAEmitterLayer
和 CAEmitterCell。
通常的想法是你创建一个 CAEmitterLayer,并将一个或多个 CAEmitterCell 添加到里面。接着
每个单元(cell)会按它配置的样式产生粒子。
而且 CAEmitterLayer 继承自 CALayer,你能轻易地在 UIKit 分层的任何地方加入它!
首发于:泰然论坛
我想这个新的 UIKit 粒子系统最酷的是一个单独的 CAEmitterLayer 可以支持多个
CAEmitterCell。这支持你完成一些相当复杂而且很酷的效果。例如当你创建泉水时,你能拥有
一个 cell 发射水滴,另一个 cell 在泉水上发射水蒸汽!
Getting Started
打开 Xcode,并从主菜单中选择 File\New\New Project,选择 iOS\Application\Single View
Application 模版,点击 Next,键入程序名“DrawWithFire”,再键入 DWF 为前缀,选择 iPhone
for Device Family,确认勾选“Use automatic reference counting”(其他选择框别选)。接
着点击 Next,再点击 Create 保存项目。
选择你的项目,再选择 DrawWithFire 的 target。接着打开 Build Phases 选项卡,展开 Link Binary
With Libraies 部分,再点击“+”按钮,双击 QuartzCore.framework,将 Quartz 绘图功能添
加到项目里面。
我们将创建一个自定义 UIView 类来开始项目,这个类将有 CAEmitterLayer 作为它的层。事实上,
完成这些非常简单,通过重写 UIView 类的+(Class)layerClass 方法并返回一个 CAEmitter 类。
相当酷哦!
创建一个新文件,采用 iOS\Cocoa Touch\Objective-C 类模板,类名为 DWFParticleView,继承
于 UIView。
打开 DWFParticleView.m 并替换为如下代码:
#import "DWFParticleView.h"
#import <QuartzCore/QuartzCore.h>
@implementation DWFParticleView
{
CAEmitterLayer* fireEmitter; //1
}
-(void)awakeFromNib
{
//set ref to the layer
fireEmitter = (CAEmitterLayer*)self.layer; //2
}
+ (Class) layerClass //3
{
//configure the UIView to have emitter layer
return [CAEmitterLayer class];
}
剩余10页未读,继续阅读
资源评论
愤怒的小鸡
- 粉丝: 1
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功