03.sprite_kit前瞻之节点树

Sprite Kit前瞻之节点树

本文仅是前瞻,只需抱着欣赏态度阅读即可。

SKScene 类继承自 SKNode 类,SKNode 类继承自UIResponder类。谈完继承关系,我们来说说节点(Node),当我们使用 Sprite Kit 框架时,节点是所有内容的基本构建块,同时场景( scene )对象扮演着节点树的根节点角色。场景和它的后代决定了绘制什么内容以及如何渲染。

在由父类定义的坐标系中,每一个节点的位置都是明确定义的。同时,节点也适用于其他属性到自身内容和它后代的内容。举个例子,当一个节点进行了旋转,那么所有它的后代都将被旋转,这很好理解:比如有一个对象A作为父类,拥有几种属性,那么B继承了A,自然就拥有了那些属性,然而假如有对象C继承了B,这时候C因为继承关系也会拥有A的那几种属性!这有什么用?比如我们通过节点树创建一个复杂的 image 节点( node ),通过调整在它上面的节点属性来进行旋转、放缩以及混合整个图像。

强调SkNode 类不绘制任何东西,但是它可以将自身属性传递给它的后代。在 Sprite Kit 框架中,每一种可绘制的内容都将单独由一个明确地子类来表示,其他节点尽管不绘制内容,但是通过调整自身属性来修改其后代。举例来说,你可以通过SKEffectNode类增加一个图像过滤功能使得继承自它的 SKScene 类都拥有该功能。通过精确控制节点树的结构,能够明确控制节点渲染顺序。

方才说到,SKNode 类继承自UIResponder 或者 NSResponder,因此只要是继承自 SKNode 类的新类都能接收用户的输入。视图( View )类自动扩展响应链将节点加入到场景的节点树。

补充:
1. 有哪些继承自 SKNode?
SKLabelNodeSKLightNodeSKSpriteNodeSKVideoNode等等。看名称Label自然用于绘制标签,Video 自然用于绘制视频,是不是有种各司其职的感觉,换句话说,每一种东西都有一个不同的类来绘制,它们都是继承自SKNode.

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值