SpriteKit 学习体会贴(不断完善中)
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 学习体会贴(不断完善中)的更多相关文章
- linux 命令学习(持续完善中...)
linux 命令学习(持续完善中...) 主要是记录一些开发过程中用到的linux命令,慢慢补充 一.用户 1.添加用户: useradd 用户名 2.设置密码:passwd 用户名 ,然后按照提示输 ...
- (转).net开发者对android开发一周的学习体会
春节期间,相对比较闲,上班时也没什么事情做.利用这一周的时间,简单的学习了一下移动方面的开发.主要是针对android,其实我对IOS更感兴趣 (因为我用iphone),苦于暂时没有苹果电脑,只能把它 ...
- RAMOS (内存操作系统)-无忧百科(不断完善中)
RAMOS (内存操作系统)-无忧百科(不断完善中) - RAMOS - 无忧启动论坛 - Powered by Discuz! http://bbs.wuyou.net/forum.php?mod= ...
- 2018年最新Java面试题及答案整理(持续完善中…)
2018年最新Java面试题及答案整理(持续完善中…) 基础篇 基本功 面向对象特征 封装,继承,多态和抽象 封装封装给对象提供了隐藏内部特性和行为的能力.对象提供一些能被其他对象访问的方法来改变它内 ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限 ...
- php 基础代码大全(不断完善中)
下面是基础的PHP的代码,不断完善中~ //语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出. /* [命名规则] */ 常量名 类常量建议全大写,单词间用下划线 ...
- Java泛型学习笔记 - (七)浅析泛型中通配符的使用
一.基本概念:在学习Java泛型的过程中, 通配符是较难理解的一部分. 主要有以下三类:1. 无边界的通配符(Unbounded Wildcards), 就是<?>, 比如List< ...
- web前端开发学习:jQuery的原型中的init
web前端开发学习:jQuery的原型中的init 有大量web前端开发工具及学习资料,可以搜群[ web前端学习部落22群 ]进行下载,遇到学习问题也可以问群内专家以及课程老师哟 jQuery.fn ...
- ios - 自动布局框架编写(更多功能完善中)
之前用的storyboard以及xib挺多的,最近看到朋友用第三方框架---自动布局约束框架在添加控件约束的时候老实报错.后来自己就试了试纯代码创建以及约束控件.但是纯代码约束一个控件还可以,如果约束 ...
随机推荐
- 利用C#访问注册表获取软件的安装路径
文章地址:https://blog.csdn.net/yl2isoft/article/details/17332139
- 【noip 2012】提高组Day1T3.开车旅行
Description 小A和小B决定利用假期外出旅行,他们将想去的城市从1到N编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i 的海拔高度为Hi,城市i 和城市 ...
- l类与对象课后作业
java 的初始化规律 执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”. 执行类的构造函数. 类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行.因 ...
- (6)设计一个TimeMap
一.描述 设计一个TimeMap,基于key value的 支持两类操作set(string key, string value, int timestamp),get(string key, int ...
- [C++]最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583)
Question 例题3-5 最小生成元 (Digit Generator, ACM/ICPC Seoul 2005, UVa1583) 如果x+x的各个数字之和得到y,就是说x是y的生成元.给出n( ...
- ansible学习笔记二
Ad-Hoc命令: 所谓Ad-Hoc,简而言之是"临时命令",英文中作为形容词有"特别的,临时"的含义.Ad-Hoc只是官方对Ansible命令的一种称谓. 从 ...
- Kaldi中的Chain模型
Chain模型的训练流程 链式模型的训练过程是MMI的无网格的版本,从音素级解码图生成HMM,对其使用前向后向算法,获得分母状态后验,通过类似的方式计算分子状态后验,但限于对应于转录的序列. 对于神经 ...
- 简单的复用accep
s = socket.socket() adress = ("192.168.15.102", 9999) s.bind(adress) s.listen() s.setblock ...
- mvc中异常页面的设置
参考原文: http://blog.csdn.net/zjlovety/article/details/48734791 这种异常处理就是说,在mvc发生未处理异常时,对用户展示的页面. 第一种能被m ...
- cmd关闭被占用的端口命令及教程详解
//关闭端口占用命令eg:1. netstat -nao | findstr “8080” 查询8080端口2. taskkill /pid 3017 /F 关闭pid为3017的进程 //详解 ↓但 ...