1. 关于 SKShapeNode

刚接触SpriteKit时,看到这个类,以为它会比SKSpriteNode更为轻量级,但其实不是:

Shape nodes are useful for content that cannot be easily decomposed into simple textured sprites. Shape nodes are also very useful for building and displaying debugging information on top of your game content. However, the SKSpriteNode class offers higher performance than this class, so use shape nodes sparingly.

其实是SKSpriteNode有更高的效率。

这里提到了SKShapeNode的使用场景:Shape nodes are useful for content that cannot be easily decomposed into simple textured sprites. 这句话怎么理解呢?

我们看一看官方文档用SKShapeNode实现的效果图:

上面这4附图,都是用ShapeNode绘制出来的。我是这样理解的,当你需要利用opengl函数绘制一些内容时,可以使用ShapeNode,否则应该使用SpriteNode。

2. SKLightNode

详细解释请参看原文,http://www.cocoachina.com/ios/20140811/9351.html

我这里将有关SKLightNode的内容摘抄一下:

下面我们看看 SKLightNode 的一些属性:
. enabled 光源的开关
. ambientColor 环境色,默认是黑色,也就是没有环境色。它无视自身的alpha以及SKLightNode的falloff属性和SKSpriteNode的normalTexture属性,分分钟照亮全场。 (这里的意思就是环境光的强弱不会根据光源的位置而变化,并且影响整个视图)
. lightColor 顾名思义就是光的颜色,默认是白色。
. shadowColor 被精灵物体遮挡产生的阴影颜色。
. falloff 光源强度的衰减比率
. categoryBitMask 光的种类,32位整型数。SKSpriteNode 的 lightingBitMask、shadowedBitMask 和 shadowCastBitMask 存储着光的种类,分别意味着:被何种光照亮、被何种光产生的阴影覆盖和遮挡何种光线并产生阴影。 这里比较难理解的是shadowedBitMask,有如下官方解释
If the sprite is inside a shadow cast by a light and the sprite has a lower z position than the light, the shadow affects how the sprite is lit.
但是,我的实验结果是,一个sprite是否被阴影影响,是跟lightNode和这个spriteNode的zposition决定的,如果spriteNode的zposition低,那么这个其他物体投射阴影就会影响它,反之,则不会。和shadowedBitMask属性,没有什么关系,不知道哪里理解错了。。。


这里有一个demo,非常好 https://github.com/ymc-thzi/iOS8-SKLightNode

SpriteKit 学习体会贴(不断完善中)的更多相关文章

  1. linux 命令学习(持续完善中...)

    linux 命令学习(持续完善中...) 主要是记录一些开发过程中用到的linux命令,慢慢补充 一.用户 1.添加用户: useradd 用户名 2.设置密码:passwd 用户名 ,然后按照提示输 ...

  2. (转).net开发者对android开发一周的学习体会

    春节期间,相对比较闲,上班时也没什么事情做.利用这一周的时间,简单的学习了一下移动方面的开发.主要是针对android,其实我对IOS更感兴趣 (因为我用iphone),苦于暂时没有苹果电脑,只能把它 ...

  3. RAMOS (内存操作系统)-无忧百科(不断完善中)

    RAMOS (内存操作系统)-无忧百科(不断完善中) - RAMOS - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?mod= ...

  4. 2018年最新Java面试题及答案整理(持续完善中…)

    2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...

  5. Mysql基础代码(不断完善中)

    Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...

  6. php 基础代码大全(不断完善中)

    下面是基础的PHP的代码,不断完善中~ //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线 ...

  7. Java泛型学习笔记 - (七)浅析泛型中通配符的使用

    一.基本概念:在学习Java泛型的过程中, 通配符是较难理解的一部分. 主要有以下三类:1. 无边界的通配符(Unbounded Wildcards), 就是<?>, 比如List< ...

  8. web前端开发学习:jQuery的原型中的init

    web前端开发学习:jQuery的原型中的init 有大量web前端开发工具及学习资料,可以搜群[ web前端学习部落22群 ]进行下载,遇到学习问题也可以问群内专家以及课程老师哟 jQuery.fn ...

  9. ios - 自动布局框架编写(更多功能完善中)

    之前用的storyboard以及xib挺多的,最近看到朋友用第三方框架---自动布局约束框架在添加控件约束的时候老实报错.后来自己就试了试纯代码创建以及约束控件.但是纯代码约束一个控件还可以,如果约束 ...

随机推荐

  1. SpringBoot系列: Redis 共享Session

    Web项目Session管理是一个很重要的话题, 涉及到系统横向扩展, SpringBoot已经为共享Session很好的解决方案, 这篇文章关注使用Redis共享会话, 同时这也是最常用的方法. = ...

  2. daemon_inetd函数

    #include <syslog.h> extern int daemon_proc; /* defined in error.c */ void daemon_inetd(const c ...

  3. 数据库范式:1NF,2NF,3NF,BCNF浅析

    在设计与操作维护数据库时,最关键的问题就是要确保数据能够正确地分布到数据库的表中.使用正确的数据结构,不仅有助于对数据库进行相应的存取操作,还可以极大地简化应用程序中的其他内容(查询.窗体.报表.代码 ...

  4. 使用函数输出水仙花数 (void的用法)

    6-11 使用函数输出水仙花数 (20 分) 水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:153=1​3​​+5​3​​+3​3​​. 本题要求编写两个函数, ...

  5. Chrome之控制台使用【转载】

    原文链接:https://segmentfault.com/a/1190000002511877 关键API: console.log(); console.info(); console.warn( ...

  6. ue4 Skeletal Mesh编辑器

    skeletal mesh:骨骼网络物体资源 由 美术制作(*.fbx). 在ue4可对此资源进行编辑以添加一些游戏需要的设置. https://docs.unrealengine.com/lates ...

  7. CSS公共清除浏览器默认样式

    /*Vue隐藏*/ [v-cloak] { display: none; } /*清除样式*/ body, ol, ul, dl, li, dt, dd, h1, h2, h3, h4, h5, h6 ...

  8. GIT刷新忽略文件.gitignore

    1.使用命令工具Git Bash,进入需要修改的工作目录.如C:/est 则输入 cd c:/test 2.重置所有缓存(注意后面有个.) git rm -r --cached . 3.重新添加(注意 ...

  9. linux scanf函数%d后加空白

    参考链接: https://bbs.csdn.net/topics/390389059 关键点: scanf()中空白字符(包括/n,space)会使scanf()函数在读操作中略去输入中的零个或者一 ...

  10. Java的两大数据类型

    Java的两大数据类型 基本数据类型 byte,short,int,long,float,double,boolean,char byte 类别 内容 类型 byte 简介 byte 数据类型是8位. ...