SpriteKit-(SKNode)

1.初始化

+ (instancetype)node;

+ (nullable instancetype)nodeWithFileNamed:(NSString*)filename;

2.返回边界边框

- (CGRect)calculateAccumulatedFrame;

3.坐标

//节点的父节点的位置坐标系统
@property (nonatomic) CGPoint position;
//z值的节点(用于排序)。负z是”到“屏幕,正面屏幕的z是“出去”。更大的zPosition将面前的一个较小的zPosition排序。
@property (nonatomic) CGFloat zPosition;
//绕z轴旋转(弧度)
@property (nonatomic) CGFloat zRotation;
//x比例
@property (nonatomic) CGFloat xScale;
//y比例
@property (nonatomic) CGFloat yScale;

4.一些属性

//速度
@property (nonatomic) CGFloat speed;
//透明度
@property (nonatomic) CGFloat alpha;
//控制节点的行为是否更新或暂停
@property (nonatomic, getter = isPaused) BOOL paused
//是否隐藏
@property (nonatomic, getter = isHidden) BOOL hidden;
//控制节点是否接收触摸事件
@property (nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled;
//父节点
@property (nonatomic, readonly, nullable) SKNode *parent;
//子节点
@property (nonatomic, readonly) NSArray<SKNode*> *children;
//节点名称
@property (nonatomic, copy, nullable) NSString *name;
//节点所在的场景
@property (nonatomic, readonly, nullable) SKScene* scene;
//物理身体连接的节点,同步,旋转,和地位
@property (nonatomic, retain, nullable) SKPhysicsBody *physicsBody;
//一个可选的字典,可用于您自己的数据存储在一个节点。默认为零。
@property (nonatomic, retain, nullable) NSMutableDictionary *userData;
//运动学约束,用于解决本土知识
@property (nonatomic, copy, nullable) SKReachConstraints *reachConstraints;
//可选的一系列SKConstraints和物理约束是评估每一帧后操作。节点的转换将被改变,以满足约束条件。
@property (nonatomic, copy, nullable) NSArray<SKConstraint*> *constraints;

5.设置x,y的大小

- (void)setScale:(CGFloat)scale;

6.添加删除,移动,遍历精灵

- (void)addChild:(SKNode *)node;

- (void)insertChild:(SKNode *)node atIndex:(NSInteger)index;

- (void)removeChildrenInArray:(NSArray<SKNode*> *)nodes;
- (void)removeAllChildren;

- (void)removeFromParent;
- (void)moveToParent:(SKNode *)parent;

- (nullable SKNode *)childNodeWithName:(NSString *)name;

- (void)enumerateChildNodesWithName:(NSString *)name usingBlock:(void (^)(SKNode *node, BOOL *stop))block;

7.如果有父节点

- (BOOL)inParentHierarchy:(SKNode *)parent;

8.运行动作,获取动作,移除动作

- (void)runAction:(SKAction *)action;
- (void)runAction:(SKAction *)action completion:(void (^)())block;
- (void)runAction:(SKAction *)action withKey:(NSString *)key;

- (BOOL)hasActions;
- (nullable SKAction *)actionForKey:(NSString *)key;

- (void)removeActionForKey:(NSString *)key;
- (void)removeAllActions;

9.填写坐标返回上面的精灵

- (BOOL)containsPoint:(CGPoint)p;

- (SKNode *)nodeAtPoint:(CGPoint)p;

- (NSArray<SKNode*> *)nodesAtPoint:(CGPoint)p;

10.移动精灵

- (CGPoint)convertPoint:(CGPoint)point fromNode:(SKNode *)node;
- (CGPoint)convertPoint:(CGPoint)point toNode:(SKNode *)node;

11.插入精灵

- (BOOL)intersectsNode:(SKNode *)node;

12.两个精灵是否相同

- (BOOL)isEqualToNode:(SKNode *)node;

13.GKPolygonObstacle

/* Returns an array of GKPolygonObstacles from a group of SKSpriteNode‘s textures in scene space. For use with GPObstacleGraph in GameplayKit */
+ (NSArray<GKPolygonObstacle*> *)obstaclesFromSpriteTextures:(NSArray<SKNode*>*)sprites accuracy:(float)accuracy;

/* Returns an array of GKPolygonObstacles from a group of SKNode‘s transformed bounds in scene space. For use with GPObstacleGraph in GameplayKit */
+ (NSArray<GKPolygonObstacle*> *)obstaclesFromNodeBounds:(NSArray<SKNode*>*)nodes;

/* Returns an array of GKPolygonObstacles from a group of SKNode‘s physics bodies in scene space. For use with GPObstacleGraph in GameplayKit */
+ (NSArray<GKPolygonObstacle*> *)obstaclesFromNodePhysicsBodies:(NSArray<SKNode*>*)nodes;

14,获取触碰精灵的位置

- (CGPoint)locationInNode:(SKNode *)node;
时间: 2024-11-05 18:28:27

SpriteKit-(SKNode)的相关文章

Swift 学习之基本语法 -- (一)

Swift 已经出来好久了,一直没有开始的学习,现在开始下定决定系统的学习一下. 任何一种语言的学习起步都是语法: ///1. 注意:let 修饰的是 不可变 var是可变 let maximumNumberOfLoginAttempts = 10; var currentLoginAttempts = 0; currentLoginAttempts = currentLoginAttempts + 1; NSLog("maximumNumberOfLoginAttempts = %ld&quo

浅谈kernel的结构图及生成过程-----(1)

当今,我们身边如此多的服务器,工作站都运行着linux,因此也有不少的朋友想了解linux内的核心机理.但是由于kernel过于庞大,以致让一些朋友望而却步.(我在大二的时候也有过此经历,当时看到一些人在看kernel,自己也想进去一探究竟,但进去没多久就乱了头绪,从而转去看uboot源码).今天我就以我个人的视角来展示kernel的结构图(先申明下,这里并不是讲目录结构图的,因为从目录的名字就知道里面放的是何种文件,我如果讲目录结构的话,相信很多同学会开挂骂我了),以及kernel是如何生成的

CUDA范例精解通用GPU架构-(2)其实写个矩阵相乘并不是那么难

程序代码及图解析: #include <iostream> #include "book.h" __global__ void add( int a, int b, int *c ) { *c = a + b; } int main( void ) { int c; int *dev_c; HANDLE_ERROR( cudaMalloc( (void**)&dev_c, sizeof(int) ) ); add<<<1,1>>>

菜鸟的mongoDB学习---(二)MongoDB 数据库,对象,集合

数据库 一个mongodb中可以建立多个数据库. MongoDB的默认数据库为"db",该数据库存储在data目录中. 在MongoDB中可以创建数据库,如果你想使用MongoDB,创建数据库不是必要的. "show dbs" 命令可以显示所有数据的列表. [email protected]:~$ mongo MongoDB shell version: 2.0.4 connecting to: test > show dbs NewsDB 0.203125G

菜鸟的mongoDB学习---(一)安装与简介

什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超大规模数据的存储.(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据).这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. 为什么使用NoSQL ? 今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据.用户的个人信息,社交网络,地理位置,用户生成的数据和

菜鸟的mongoDB学习---(六)MongoDB 索引

MongoDB 索引 ps:大概有半个月木有更新了,因为前一阶段的出差和这几天突然来的项目.导致上网时间急剧降低,实在是sorry,以后预计会好一点. 索引通常可以极大的提高查询的效率.假设没有索引.MongoDB在读取数据时必须扫描集合中的每一个文件并选取那些符合查询条件的记录. 这样的扫描全集合的查询效率是很低的,特别在处理大量的数据时,查询能够要花费几十秒甚至几分钟,这对站点的性能是很致命的. 索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中.索引是对数据库表中一列或多列的值进

菜鸟的mongoDB学习---(三)MongoDB 的增、删、改、查(insert、remove、update、find)

插入 insert MongoDB中文档的数据结构和JSON基本一样.所有存储在集合中的数据都是BSON格式.BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 首先我们先选择数据库 > use NewsDB switched to db NewsDB > 下面我们先定义一个文档 > document = ({"name":"jingdong","age":"23","

纯golang爬虫实战-(七)-使用mime/multipart传输附件

还是先用Fiddler(设置过滤器.自动断点.捕获通信),截获以下内容: POST http://192.168.132.80/docs/docs/UploadDoc.jsp HTTP/1.1 Accept: text/html, application/xhtml+xml, */* Referer: http://192.168.132.80/docs/docs/DocAdd.jsp?mainid=15&subid=49&secid=48&showsubmit=1&cow

算法导论学习笔记 -(1)

一个ACM若菜,趁着ACM淡季,开始学习算法导论了,经过一年的ACM学习,逐渐的发现,学东西,深入才是王道,以前学习一个算法,总是看懂了就开始做题,到后来才发现很多题目,会算法,却不知道是用这个算法,这就是算法理解的不到位的后果,从今天开始,定下目标: 1.深入系统的学习算法, 2.学会纸上写伪代码,每章的代码自己先在纸上写一遍, 3.每节的学习笔记和算法都要写在博客上. 在博客上记录自己的学习笔记,方便以后温习.   欢迎各路大神路过指正错误之处. 现在,先写写书上的第一个算法,插入排序. 算