zoukankan      html  css  js  c++  java
  • SKEmitterNode类

    继承自 SKNode:UIResponder:NSObject
    符合 NSCoding(SKNode)
    NSCopying(SKNode)
    NSObject(NSObject)
    框架  /System/Library/Frameworks/SpriteKit.framework
    可用性 可用于iOS 7.0或者更晚的版本
    声明于 SKEmitterNode.h
    参考指南 Sprite Kit Progamming Guide

    概览

    重要提示:这是一个初步的API或者开发技术文档。虽然已经审阅了本文档的技术准确性,但是它不是最终的版本。本机密信息仅适用于苹果开发者计划的注册会员。苹果提供这些机密信息来帮助你采用这些技术和编程接口。此信息如果有变更,根据本文档实现的软件应使用操作系统软件和最终文档测试。新版本的文档可能会拥有新的API或者技术。

    一个SKEmitterNode实例,是一个自动创建和渲染粒子的节点。粒子有点类似于节点,但是它不能像节点那样访问方法,也不能给它关联上动作。粒子发射器经常被用于创建烟雾,雨,火花等粒子效果。

    一个粒子是一个被混合后添加到帧缓冲区的节点,这个节点有质感和颜色。当你配置一个粒子发射器的时候,你需要设置粒子的生产速率以及每个粒子的属性。这些粒子有以下的属性:

    粒子的位置
    粒子的速度
    粒子的旋转和缩放量
    粒子的颜色以及混合粒子纹理的混合因子
    粒子的alpha值和混合模式
    粒子的生命周期

    对于每一个属性,你需要配置一个平均的初始值,以及一个值域。粒子发射器会在值域内选择一个随机值。

    有一些属性还允许你指定一个速度,或者加速度属性,以便于在粒子的生命周期内修改粒子属性的值。例如,粒子发射器创建了一些粒子,并将这些粒子的alpha值初始为1.0,alpha值的变换速度初始为-0.2,这样的话,这些粒子的alpha值将在5秒内,从1.0变为0.0,也就是说粒子从创建开始到消失,一共花了5秒。你可以使用关键帧序列来实现一些更为复杂的粒子变换。

    当粒子创建好之后需要确定的事项

    实例方法

    - advanceSimulationTime:

    促进发射器粒子仿真。

    - (void)advanceSimulationTime:(NSTimeInterval)sec

    参数 sec:粒子仿真所需秒数
    返回值 void

    论述

    一个粒子发射器一旦添加到场景中,将自动的在新的动画帧里创建新的粒子。这个方法允许你人为地促进粒子仿真,使他可以生成新的粒子以及推进现有的粒子。这个方法通常的用法是,通过一个首次添加到场景中的粒子,来预填充粒子发射器节点。

    - resetSimulation

    移除所有已经存在的粒子,并重新启用粒子仿真。

    - (void)resetSimulation

    论述

    重置粒子仿真,清楚粒子仿真的内部状态。

    属性

    particleBirthRate

    粒子生产速率。

    @property (atomic) CGFloat particleBirthRate

    论述

    粒子每秒钟产生的数量,默认值为0.0。

    numParticleToEmit

    粒子发射器在停止前需要发射的粒子数量。

    @property (atomic) NSUInteger numParticleToEmit

    论述

    默认值为0,表示粒子发射器将无限发射粒子。如果提供一个非零的值,发射器将发射指定数量的粒子,然后停止。

    决定发射粒子的节点

    targetNode

    渲染粒子的目标节点。

    @property (atomic, weak) SKNode *targetNode

    论述

    默认值为nil,这种情况下,粒子就相当于是粒子发射节点的子节点。在未来的帧动画中,粒子的位置将受粒子节点的属性的影响。如果你另外指定一个目标节点,新产生的粒子将受粒子发射器的影响,而其他的粒子则受你指定的那个目标节点的影响。

    例如,假设你有一个粒子发射器节点,这个节点是场景节点的子节点,这个节点绕着Z轴旋转。发射器节点的行为将根据目标节点的值来改变。

    如果targetNode属性为nil,那么粒子的位置只受发射器节点影响。
    如果目标节点指向发射器节点,新产生的粒子随着发射器改变,以前产生的粒子随着目标节点改变。

    添加到场景中的粒子,将不受发射器的控制而独立的运动。

    决定一个粒子的生命周期。

    particleLifetime

    粒子的平均生命周期,以秒为单位。

    @property (atomic) CGFloat particleLifetime

    论述

    默认值为0.0。

    particleLifetimeRange

    粒子的生命周期,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleLifetimeRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的生命周期是一个随机的值,这个值可能在值域的一半左右浮动。

    决定一个粒子的初始位置。

    particlePosition

    粒子的平均初始位置。

    @property (atomic) CGPoint particlePosition

    论述

    默认值为(0.0,0.0)。

    particlePositionRange

    粒子的初始位置,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGPoint particlePositionRange

    论述

    默认值为(0.0,0.0)。如果值为非零的时候,每个粒子的位置是一个随机的值,这个值可能在值域的一半左右浮动。

    particleZPosition

    粒子的平均初始深度。

    @property (atomic) CGFloat particleZPosition

    论述

    默认值为0.0。

    particleZPositionRange

    粒子的初始深度,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleZPositionRange

    论述

    粒子的初始深度,如果值为非零的时候,每个粒子的位置是一个随机的值,这个值可能在值域的一半左右浮动。

    决定一个粒子的速度和加速度。

    particleSpeed

    粒子的平均初始速度。

    @property (atomic) CGFloat particleSpeed

    论述

    默认值为0.0。

    particleSpeedRange

    粒子的初始速度,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleSpeedRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的速度是一个随机的值,这个值可能在值域的一半左右浮动。

    emissionAngle

    粒子的平均初始方向,以弧度表示。

    @property (atomic) CGFloat emissionAngle

    论述

    默认值为0.0。

    emissionAngleRange

    粒子的初始方向,这个值是一个允许的值域范围内的随机值,以弧度表示。

    @property (atomic) CGFloat emissionAngle

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的速度是一个随机的值,这个值可能在值域的一半左右浮动。

    xAcceleration

    粒子的水平加速度。

    @property (atomic) CGFloat xAccleration

    论述

    这个属性在模拟风、重力等效果的时候非常有用。它是平均作用在所有的粒子上面的。默认值为0.0。

    yAcceleration

    粒子的垂直加速度。

    @property (atomic) CGFloat yAccleration

    论述

    这个属性在模拟风、重力等效果的时候非常有用。它是平均作用在所有的粒子上面的。默认值为0.0。

    决定一个粒子的旋转。

    particleRatation

    粒子的平均初始旋转,以弧度为单位。

    @property (atomic) CGFloat particleRatation

    论述

    默认值为0.0。

    particleRatationRange

    粒子的初始旋转,这个值是一个允许的值域范围内的随机值,以弧度为单位。

    @property (atomic) CGFloat particleRatationRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的旋转是一个随机的值,这个值可能在值域的一半左右浮动。

    particleRatationSpeed

    粒子的旋转速度,以弧度每秒为单位。

    @property (atomic) CGFloat particleRatationSpeed

    论述

    默认值为0.0。它作用于所有粒子,默认值为0.0。

    决定一个粒子的缩放因子。

    particleScaleSequence

    一个缩放序列,用于指定粒子的缩放因子。

    @property (atomic) SKKeyframeSequence particleScaleSequence

    论述

    默认值为nil。如果值为非零的时候,particleScale属性,particleScaleRange属性和particleScaleSpeed属性将被忽略。这时候用这个缩放序列来指定粒子的缩放因子。

    particleScale

    粒子的平均缩放因子。

    @property (atomic) CGFloat particleScale

    论述

    默认值为1.0。

    particleScaleRange

    粒子的缩放因子,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleScaleRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的缩放因子是一个随机的值,这个值可能在值域的一半左右浮动。

    particleScaleSpeed

    粒子的缩放速度。

    @property (atomic) CGFloat particleScaleSpeed

    论述

    默认值为0.0。

    设置粒子的纹理和大小。

    particleTexture

    粒子渲染的纹理。

    @property (atomic, retain) SKTexture *particleTexture

    论述

    一个粒子的渲染就类似于一个精灵的渲染。这个属性的默认值为nil,这表示渲染的就是一个带有颜色的矩形。如果是一个非零的值,将会用一个彩色的纹理渲染粒子。

    particleSize

    每个粒子的初始大小。

    @property (atomic) CGSize particleSize

    论述

    默认值为CGSizeZero。如果使用默认值,粒子的大小将会根据纹理的大小来决定。如果粒子还没有纹理,你必须给粒子的大小赋上一个非空的值。

    配置粒子的颜色。

    particleColorSequence

    一个颜色序列,用于指定粒子的颜色。

    @property (atomic) SKKeyframeSequence *particleColorSequence

    论述

    默认值为nil。如果该属性为一个非空的值,则particleColor属性,particleColorAlphaRange属性,particleColorRedRange属性,particleColorGreenRange属性,particleColorBlueRange属性,particleColorAlphaSpeed属性,particleColorRedSpeed属性,particleColorGreenSpeed属性,particleColorBlueSpeed属性将被忽略,粒子将通过颜色序列来指定粒子颜色。

    particleColor

    一个粒子的平均初始颜色。

    @property (atomic, retain) SKColor *particleColor

    论述

    默认值为[SKColor clearColor]。一个粒子的颜色通过一个混合因子与纹理混合。具体参见“决定如何混合粒子颜色和纹理”部分。

    particleColorAlphaRange

    粒子颜色的初始alpha值,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleColorAlphaRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的初始alpha值是一个随机的值,这个值可能在值域的一半左右浮动。

    particleColoBlueRange

    粒子颜色的初始蓝色的值,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleColoBlueRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的初始蓝色值是一个随机的值,这个值可能在值域的一半左右浮动。

    particleColoGreenRange

    粒子颜色的初始绿色的值,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleColoGreenRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的初始绿色值是一个随机的值,这个值可能在值域的一半左右浮动。

    particleColoRedRange

    粒子颜色的初始红色的值,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleColoRedRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的初始红色值是一个随机的值,这个值可能在值域的一半左右浮动。

    particleColoAlphaSpeed

    粒子alpha值的变化速度。

    @property (atomic) CGFloat particleColoAlphaSpeed

    论述

    默认值为0.0。

    particleColoBlueSpeed

    粒子蓝色值的变化速度。

    @property (atomic) CGFloat particleColoBlueSpeed

    论述

    默认值为0.0。

    particleColoGreenSpeed

    粒子绿色值的变化速度。

    @property (atomic) CGFloat particleColoGreenSpeed

    论述

    默认值为0.0。

    particleColoRedSpeed

    粒子红色值的变化速度。

    @property (atomic) CGFloat particleColoRedSpeed

    论述

    默认值为0.0。

    决定如何混合粒子的颜色和纹理。

    particleColoBlendFactorSequence

    一个混合因子序列,用于混合粒子的颜色和纹理。

    @property (atomic) SKKeyframeSequence *particleColoBlendFactorSequence

    论述

    默认值为0.0。如果该属性为一个非空的值,则particleColorBlendFactor属性,particleColorBlendFactorRange属性和particleColorBlendFactorSpeed属性将被忽略。粒子将通过混合因子序列来混合粒子的颜色和纹理。

    particleColoBlendFactor

    一个平均的初始值,用做颜色混合因子。

    @property (atomic) CGFloat particleColoBlendFactor

    论述

    默认值为0.0,这表示使用纹理,忽略粒子颜色。如果该值为非零,则表示粒子的纹理将与颜色混合。

    particleColoBlendFactorRange

    一个初始值,用做颜色混合因子。这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleColoBlendFactorRange

    论述

    默认值为0.0,如果值为非零的时候,每个粒子的颜色的混合因子是一个随机的值,这个值可能在值域的一半左右浮动。

    particleColoBlendFactorSpeed

    粒子的混合因子变化的速度。

    @property (atomic) CGFloat particleColoBlendFactorSpeed

    论述

    默认值为0.0。

    在帧缓冲区混合粒子。

    particleBlendMode

    混合粒子的模式。

    @property (atomic) SKBlendMode particleBlendMode

    论述

    默认值为SKBlendModeAlpha。

    particleAlphaSequence

    一个alpha序列,用于指定粒子的alpha值。

    @property (atomic) SKKeyframeSequence *particleAlphaSequence

    论述

    默认值为nil。如果值为非空,则particleAlpha属性,particleAlphaRange属性,particleAlphaSpeed属性将被忽略。粒子将通过alpha序列来改变粒子的alpha值。

    particleAlpha

    粒子的平均初始alpha值。

    @property (atomic) CGFloat particleAlpha

    论述

    粒子的alpha属性相当于节点的alpha属性。粒子的颜色alpha值等于粒子颜色和纹理的混合状态乘以粒子的alpha值。然后粒子的颜色将在帧缓冲区混合。默认值为1.0。

    particleAlphaRange

    粒子的alpha值,这个值是一个允许的值域范围内的随机值。

    @property (atomic) CGFloat particleAlphaRange

    论述

    默认值为0.0。如果值为非零的时候,每个粒子的alpha值是一个随机的值,这个值可能在值域的一半左右浮动。

    particleAlphaSpeed

    粒子的alpha值变化速度。

    @property (atomic) CGFloat particleAlphaSpeed

    论述

    默认值为0.0。

    为粒子添加动作。

    particleAction

    为新粒子指定一个动作。

    @property (atomic, copy) SKAciton *particleAction

    论述

    为粒子添加复杂的动作,将严重影响粒子发射器的性能。因为粒子不是一个你可以直接操作的节点。你不能在以添加动作的粒子里面删除动作。

  • 相关阅读:
    SQLite的使用
    Messenger类的使用
    Binder的使用(跨进程——AIDL,非跨进程)
    Android Studio中如何创建AIDL
    第二章——Parcelable接口的使用(跨进程,Intent传输)
    InetAddress的作用
    第二章——Serializable的使用(跨进程使用和Intent的传递对象)
    SurfaceView绘图机制
    双缓冲机制简介
    内部类代码
  • 原文地址:https://www.cnblogs.com/jiackyan/p/3481114.html
Copyright © 2011-2022 走看看