SpriteKit框架之浅谈SKNode及SKSpriteNode


做什么都要不忘初心,对吗?热爱编程,那就把它做好.


简介


在一个游戏的场景当中几乎所有的内容都是由图像实现的,在开发过程中每一个图像都被称为精灵,不管是背景还是各种物体都属于精灵.在场景中所看到的所有内容都是有结点SKNode类以及它的子结点类构成的.这边博客主要讲的是SKNode相关的技术点以及SKNode最常用的子类SKSpriteNode的使用.


SKNode的子类列表


SKNode大致包含几个大类,如下图表所示.
类名称 功能简介
SKSpriteNode 用于绘制精灵纹理
SKVideoNode 用于播放视频
SKLabelNode 用于渲染文本
SKShapeNode 用于渲染基于Core Graphics 路径的形状
SKEmitterNode 用于创建和渲染粒子系统
SKCropNode 用于使用遮罩来裁剪子结点
SKEffectNode 用于在子结点上使用Core Image滤镜


SKSpriteNode介绍


SKSpriteNode是我们最常用的SKNode的子类,也就是我们常说的精灵.一个SKSpriteNode实例是一个节点,可以绘制带图片,有色方块,经过颜色混合的图片。


SKSpriteNode的创建


SKSpriteNode常用的创建方法有两种类方法,一种是使用图片名称直接创建一个SKSpriteNode对象,一个是使用纹理创建一个SKSpriteNode对象,方法如下.

+ spriteNodeWithImageNamed: //通过图片文件创建并返回一个纹理精灵。
+ spriteNodeWithTexture: // 通过纹理实例创建并返回一个纹理精灵。

不管是使用图片名称直接创建还是使用纹理实例创建,我们都需要图片,我们就往工程中拖两张图片,一张作为背景,一张作为其中的一个精灵.在我们创建好的SKScene中 -(void)didMoveToView:(SKView *)view 方法中 创建我们的两个精灵并且添加到图像上.代码如下.

-(void)didMoveToView:(SKView *)view{

    [super didMoveToView:view];
   
 
    SKSpriteNode *node = [SKSpriteNode spriteNodeWithImageNamed:@"image52.jpg"];
    
    node.position = CGPointZero;
    
    node.anchorPoint = CGPointZero;
    
    node.size = self.size;
    
    [self addChild:node];

    SKSpriteNode *people = [SKSpriteNode spriteNodeWithTexture:[SKTexture textureWithImageNamed:@"image2232.png"]];
    
    people.anchorPoint = CGPointMake(0.5, 0.5);
    
    people.position = CGPointMake(100, 100);
    
    people.name = @"people";
    
    [self addChild:people];
    
    
}

效果图如下.

效果图


SKSpriteNode属性介绍


上一个模块说到SKSpriteNode的创建,那么参照上面,下面说一下SKSpriteNode的几个常用属性.属性东西就需要小伙伴们一一使用了,尝试了.这里我就不多说了.

属性名称 类型 功能简介
position CGPoint SKSpriteNode对象的x,y轴的位置信息
zPosition CGFloat SKSpriteNode对象的z轴位置,与ignoresSiblingOrder有关.如果ignoresSiblingOrder的值为YES,就是按照z轴的信息绘制,如果为NO,就是按照代码顺序绘制精灵.可以想象入图层类似.
anchorPoint CGPoint SKSpriteNode对象的锚点信息,锚点一般是与position配合使用的.锚点的相关知识,我的博客中有,如果有疑问,可以往前翻找
zRotation CGFloat SKSpriteNode对象的角度信息,通过设置他可以设置SKSpriteNode对象的的旋转角度
size CGSize SKSpriteNode对象的宽度和高度信息的设置
scale CGFloat SKSpriteNode对象的大小缩放比例
xScale CGFloat SKSpriteNode对象的宽度大小缩放比例
yScale CGFloat SKSpriteNode对象的高度大小缩放比例
name NSString SKSpriteNode对象的名字,也就是SKSpriteNode对象的唯一标识符
physicsBody SKPhysicsBody SKSpriteNode对象在物理引擎中的物理模型
speed CGFloat KSpriteNode对象的速度
alpha CGFloat KSpriteNode对象的透明度
hidden BOOL KSpriteNode对象是否隐藏


何去何从


下一篇博客我可能会对SpriteKit框架中的动作进行详细的说明,其实游戏的组成一般都是有这么几大块组成的:场景,精灵,动作,物理引擎,游戏逻辑.所以SKSpriteNode在游戏中占着比较高的比重,它的属性也要多加练习掌握,谢谢阅读,如果有什么疑问可以在下面的评论区提出,我会及时回复您的.😁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,469评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,598评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 引子 许久,我们终于来到了黑水潭。刚刚站稳脚跟,胖子就骂道 ‘‘ 靠,吴邪你快来看看这是什么’’我来到胖子身边。胖...
    i_am_sunkey阅读 267评论 4 7
  • 免俗的不再说Hello, 只是漫步踱去,静静站立, 掏出一支烟或者只是静静站着, 看着远方或者什么其他地方 缓缓飘...
    LienZzzz阅读 208评论 0 1