Spritekit游戏开发之SKSpriteNode(精灵)二
2015-10-27 08:31
501 查看
上一节我们讲了如何用图片创建加入精灵,我们创建了2个精灵,都是用同一张图片
我们加入一段代码,把第二个加入的精灵颜色改变下,改成红色,这个方法我不说,以后讲动作时再讲。
模拟器截图
![](http://img.blog.csdn.net/20151027083605247?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们可以清楚看到,第二个飞船覆盖了第一个,为什么?因为第二个飞船是是在第一个飞船之后addChild当前视图里面的,第一个飞船渲染后,第二个飞船再渲染的,所以第二个能覆盖第一个。我们改变下addChild加入视图的顺序
![](http://img.blog.csdn.net/20151027084046069?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这样,第一个精灵就覆盖了第二个精灵,但是每个精灵的顺序这样调节太累了,如何用简单的方式设置精灵的渲染次序,有的,就是精灵的zPosition属性
,值越大,越后渲染,太复杂了,这样想吧,值大的精灵就能覆盖值小的精灵
默认精灵zPosition为0.就要通过addChild手动调节加入次序,设置了zPosition,就不需要关心addChild次序了。
当前是第一个覆盖了第二个精灵。我们来改成第二个覆盖第一个,只要第二个zPosition值比第一个大就行。
在原代码底部加入2行
![](http://img.blog.csdn.net/20151027084808307?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
你看这样,第二个红色的精灵就覆盖了第一个了吧。
我们加入一段代码,把第二个加入的精灵颜色改变下,改成红色,这个方法我不说,以后讲动作时再讲。
override func didMoveToView(view: SKView) { //用一张图片初始化一个精灵 let ship = SKSpriteNode(imageNamed: "Spaceship") //设置精灵坐标 ship.position = CGPoint(x: 500, y: 400) //添加精灵到当前视图中 self.addChild(ship) //用一个纹理(也是一张图片)初始化一个精灵 let texture = SKTexture(imageNamed: "Spaceship") let secondShip = SKSpriteNode(texture: texture) secondShip.position = CGPoint(x: 500, y: 500) self.addChild(secondShip) //改变红色 secondShip.runAction(SKAction.colorizeWithColor(UIColor.redColor(), colorBlendFactor: 1, duration: 0.1)) }
模拟器截图
我们可以清楚看到,第二个飞船覆盖了第一个,为什么?因为第二个飞船是是在第一个飞船之后addChild当前视图里面的,第一个飞船渲染后,第二个飞船再渲染的,所以第二个能覆盖第一个。我们改变下addChild加入视图的顺序
self.addChild(secondShip) self.addChild(ship)模拟器截图
这样,第一个精灵就覆盖了第二个精灵,但是每个精灵的顺序这样调节太累了,如何用简单的方式设置精灵的渲染次序,有的,就是精灵的zPosition属性
,值越大,越后渲染,太复杂了,这样想吧,值大的精灵就能覆盖值小的精灵
默认精灵zPosition为0.就要通过addChild手动调节加入次序,设置了zPosition,就不需要关心addChild次序了。
当前是第一个覆盖了第二个精灵。我们来改成第二个覆盖第一个,只要第二个zPosition值比第一个大就行。
在原代码底部加入2行
ship.zPosition = 0 secondShip.zPosition = 1模拟器
你看这样,第二个红色的精灵就覆盖了第一个了吧。
相关文章推荐
- Spritekit游戏开发之SKSpriteNode(精灵)一
- 2.3 Delete Middle Node
- hlist_head/hlist_node
- 欢迎使用CSDN-markdown编辑器
- windows下安装nodejs及框架express
- 拿nodejs快速搭建简单Oauth认证和restful API server攻略
- nodeJs get post
- 前后端分离的思考与实践(六)
- 前后端分离的思考与实践(五)
- 前后端分离的思考与实践(四)
- 前后端分离的思考与实践(三)
- 前后端分离的思考与实践(二)
- 前后端分离的思考与实践(一)
- nodejs 安装 使用
- Creating a basic site with Node.js and Express
- 建立一个node.js服务器(使用express搭建第一个Web环境)
- nodejs小问题:express不是内部或外部命令
- 使用express搭建第一个Web应用【Node.js初学】
- 从零开始nodejs系列文章
- NodeJs