SKSpriteNode类

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

概览

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

一个SKSpriteNode实例是一个节点,可以绘制带图片,有色方块,经过颜色混合的图片。

类方法

创建一个新的实例

+ spriteNodeWithColor:size:

创建并返回一个有色的精灵。

+ (id)spriteNodeWithColor:(SKColor *)color size:(CGSize)size

参数color:精灵的颜色
size:精灵的大小
返回值一个创建好的并初始化好的精灵实例

+ spriteNodeWithImageNamed:

通过图片文件创建并返回一个纹理精灵。

+ (id)spriteNodeWithImageNamed:(NSString *)name

参数name:放在项目中的图片文件的名字
返回值一个创建好的并初始化好的精灵实例

+ spriteNodeWithTexture:

通过纹理实例创建并返回一个纹理精灵。

+ (id)spriteNodeWithTexture:(SKTexture *)texture

参数texture:一个Sprite Kit纹理实例
返回值一个创建好的并初始化好的精灵实例

+ spriteNodeWithTexture:size:

通过纹理实例创建并返回一个纹理精灵并制定大小。

+ (id)spriteNodeWithTexture:(SKTexture *)texture size:(CGSize)size

参数texture:一个Sprite Kit纹理实例
size:精灵的大小
返回值一个创建好的并初始化好的精灵实例

实例方法

初始化一个新的实例

- initWithColor:size:

使用颜色和大小初始化一个精灵。

- (id)initWithColor:(SKColor *)color size:(CGSize)size

参数color:精灵的颜色
size:精灵的大小
返回值一个新的初始化好的精灵实例

论述

通过这个方法返回的精灵实例,它的texture属性值为nil。

- initWithImageNamed:

使用图片文件初始化一个精灵。

- (id)initWithImageNamed:(NSString *)name

参数name:放在项目中的图片文件的名字
返回值一个新的初始化好的精灵实例

论述

这个方法会创建一个新的纹理实例,并且把这个实例分配给texture属性。精灵的size属性是由图片的大小来决定的。颜色属性为白色(1.0,1.0,1.0)。

- initWithTexture:

使用一个纹理实例初始化一个精灵。

- (id)initWithTexture:(SKTexture *)texture

参数texture:一个Sprite Kit纹理
返回值一个新的初始化好的精灵实例

论述

精灵的size属性是由纹理的大小来决定的。颜色属性为白色(1.0,1.0,1.0)。

- initWithImageTexture:color:size:

使用一个纹理实例和一个颜色初始化一个精灵。

- (id)initWithTexture:(SKTexture *)texture color:(SKColor *)color size:(CGSize)size

参数texture:一个Sprite Kit纹理
color:精灵的颜色
size:精灵的大小
返回值一个新的初始化好的精灵实例

论述

要给纹理混合颜色,你还需要设置精灵的colorBlendFactor属性。

属性

查看物理属性

size

精灵的大小。

@property(atomic) CGSize size

anchorPoint

精灵的参考点。

@property(atomic) CGPoint anchorPoint

论述

你指定一个位于单元坐标空间的值。默认值为(0.5,0.5),表示精灵的参考点在正中。

查看精灵的纹理

texture

精灵的纹理

@property(atomic, retain) SKTexture *texture

论述

如果该值为nil,精灵将会使用颜色属性绘制一个颜色矩形。否则,精灵将会绘制这个纹理。相关的属性影响了纹理的应用。

centerRect

定义了纹理是如何应用到精灵的。

@property(atomic) CGRect centerRect

论述

这个矩形在单元坐标空间中。默认值为(0,0)-(1.0,1.0),表示整个纹理被拉伸到充满精灵。如果指定一个不同的矩形,矩形的坐标会变成一个3X3网格。网格的四个角不经过缩放直接应用。它的上和中下部分将水平缩放,左和中右部分将垂直缩放。中心是所有方向缩放。

colorBlendFactor

一个浮点point,描述了颜色是怎样与纹理混合的。

@property(atomic) CGFloat colorBlendFactor

论述

该值必须在0.0到1.0之间。默认值为0.0,表示颜色属性将被忽视,纹理的值不做任何改变。如果是一个大于0.0的值,纹理将与颜色混合,然后再绘制到场景。

查看颜色属性

color

纹理的颜色

@property(atomic, retain) SKColor *color

论述

如果纹理属性非空,那么颜色的红绿蓝值将会混合到纹理,然后绘制到场景,alpha属性将被忽视。如果纹理属性为nil,那么颜色属性将会被用于绘制一个颜色矩形。

blendMode

将精灵绘制到父缓冲区的混合模式。

@property(atomic) SKBlendMode blendMode

论述

默认值为SKBlendModeAlpha。

对不起,由于版权和隐私保护的原因,我无法直接提供完整的Xcode项目源代码示例,特别是涉及到特定游戏如"猴子找香蕉"的游戏代码。但是,我可以为你概述一般创建这种游戏的基本步骤,并分享一些关键代码片段。 在Xcode中创建一个简单的"猴子找香蕉"游戏,通常会包含以下几个部分: 1. **场景设置**:首先会在`GameScene.swift`文件中创建一个`SKSpriteNode`代表猴子和`SKSpriteNode`代表香蕉。 ```swift let monkey = SKSpriteNode(imageNamed: "bananaMonkey") let banana = SKSpriteNode(imageNamed: "banana") ``` 2. **触摸事件处理**:猴子弹幕需要监听触摸事件,通过`touchesBegan(_:with:)`方法移动猴子位置。 ```swift override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { let touch = touches.first! let location = touch.location(in: self) monkey.position = location } ``` 3. **碰撞检测**:使用`hitTest(_:with:)`检查猴子是否触碰到香蕉,可以移除香蕉并结束游戏。 ```swift func didBeginContact(_ contact: SKPhysicsContact) { if let other = contact.bodyA.categoryBitMask == bananasCategory && other.node is BananaNode { // 移除香蕉并显示胜利动画 } } ``` 4. **游戏循环**:在`update(_:)`方法里更新游戏状态。 **注意**:这只是一个非常基础的框架,实际项目可能还包括游戏界面设计、得分系统、循环控制、动画管理等更多内容。如果你需要更具体的指导,建议参考苹果官方文档、在线教程或GitHub上的开源项目。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值