Sprite Kit学习笔记(二)SKSpriteNode

来源:互联网 发布:怎样减少生活成本知乎 编辑:程序博客网 时间:2024/06/05 08:53

笔记一给大家大概介绍了Sprite Kit,并且通过一个简单的demo让大家对Sprite Kit有初步的认识,今天接着前面的学习内容。在demo中我们简单的使用了SKSpriteNode,我们没有给它添加texture,Sprite Kit让我们在没有texture的情况下使用填充颜色的方法来显示一个Sprite,不过在游戏只做中,这可能会用得比较少,添加texture似乎是一个必不可少的工作,接下来让我们来了解一下SKSpriteNode如何添加texture以及一些相关的知识。

这里可能会跟cocos2d做一下比较,因为实在是太相似了。首先texture说白了就是图片,准备好你的图片,放到你的工程文件夹里面。具体的SKSpriteNode类里面的东西,建议大家还是去一下官方的api,了解仔细,用起来会更加顺,这里我大概说一些。可以直接使用图片名称为Sprite添加texture,也可以创建一个SKTexture,然后将创建好的texture添加给Sprite,这两种到底有什么区别呢,通过图片名称直接创建,要经过一个渲染的过程然后才添加给Sprite,使用texture添加的话,你可以在要用到该Sprite的时候,事先渲染图片,然后直接添加给Sprite,根据不同的情况使用吧,目前我也只了解这些,以后在开发过程中再深入去了解。提前渲染图片也是后面要说到的东西。

直接利用图片名称为Sprite添加texture,不能设置其大小,Sprite会根据你的图片大小渲染成为一样大小的图片,图片太大的话渲染的时候会占用很多内存,这是需要注意的。使用SKTexture添加的话,可以在添加的同时连同初始化Sprite的size,因为Sprite的frame属性是只读的,所以只能在初始化的时候设置其大小。此时,如果你设置的size大过你原本的texture,texture会自动放大器适应设置的size,这时图片可能就会因放大而失真。相反的,size小的话也一样,texture会自动调整。

接下来是anchorPoint属性,默认为(0.5, 0.5),即图片的中心位置,这个根据自己需要使用。还有colorBlendFactor,这是Sprite颜色的设置,colorBlendFactor可以实现一个颜色渐变的效果,这里也不多说。

SKTexture类,也是一个很重要的类,我们用它来创建Sprite所需要的texture,可以直接用图片名称创建texture,创建后的texture可以重复使用,Sprite的动画执行可以通过一系列的texture切换来实现,这里再强调一下preLoad,这对整个程序的效率有很大的提高作用,作为开发者,我们肯定知道我们时候需要用到哪些Sprite,在这之前我们就可以先完成这些图片的渲染,当我们需要的时候可以直接拿来用,这可以帮我们省去部分时间,让程序更加顺畅。不再使用的texture会被内存释放掉,这是遵循内存管理的机制,这与cocos2d的道理是一样的,cocos2d也提供了很多内存优化的方法,这是游戏制作必须要考虑的。不过,Sprite Kit应该会有属于自己的一套处理内存的机制,无非就是retain和release,这留到以后再研究。

另外,当我们有很多texture的时候, 我们可以把所有的texture拼接成一个texture Atlas,cocos2d中,可以利用texturePacker制作Atlas,并生成plist文件,在Sprite Kit中也可以根据Atlas图片和plist文件,Sprite Kit自动渲染Atlas里面的所有texture,然后我们根据对应的名字取得texture使用,而且可以重复使用,这对内存优化也起到很大作用。

前面提到过Sprite动画的实现,SKAction提供给我们一个animateWithTextures函数,我们可以很轻松地实现Sprite的一个动作动画。

大概就这些内容,没有代码,其实觉得自己应该做个小demo的,但是因为严重缺乏图片资源,就算了,把该记的记下来就行了。接着学习,come on!!!


原创粉丝点击