SpriteBuilder实现2D精灵光影明暗反射效果(二)
2015-11-17 17:09
567 查看
使用SpriteBuilder新建一个项目,将默认MainScene.ccb中的内容统统删掉,此时场景应该是一片漆黑.
将官网中的2张图片以及我自己做的2张图片全部拖拽到其文件视图中去:
其中加_n后缀的图片表示原图的法线贴图.
将2张不带_n后缀的图片分别拖到黑黑的场景中去,调整到合适位置.
分别将2个精灵的Normal map设置为_n后缀的对应图片:
分别打开2个精灵的Lighting特效.这时已经可以看到光影效果,可惜这时SpriteBuilder给你的”假象”,如果此时编译运行该app,只能看到黑漆漆一片,因为这时还没有添加任何光源呢.
从控件库拖拽一个Light Node节点到场景中,相当于给场景添加了一个光源.你会发现随着光源的移动,2个精灵光影有着明显的变化:
为了模拟更加逼真,再从控件库拖动一个粒子效果节点.将其调整为火焰状.把该粒子节点和上面的Light节点一起放到一个CCNode中去,设置该节点的代码连接为_fireNode.
然后在Xcode打开MainScene.m文件,启用触摸,然后建立对应的触摸回调方法:
编译运行该App,你可以看到实际效果如下:
本篇完.
将官网中的2张图片以及我自己做的2张图片全部拖拽到其文件视图中去:
其中加_n后缀的图片表示原图的法线贴图.
将2张不带_n后缀的图片分别拖到黑黑的场景中去,调整到合适位置.
分别将2个精灵的Normal map设置为_n后缀的对应图片:
分别打开2个精灵的Lighting特效.这时已经可以看到光影效果,可惜这时SpriteBuilder给你的”假象”,如果此时编译运行该app,只能看到黑漆漆一片,因为这时还没有添加任何光源呢.
从控件库拖拽一个Light Node节点到场景中,相当于给场景添加了一个光源.你会发现随着光源的移动,2个精灵光影有着明显的变化:
为了模拟更加逼真,再从控件库拖动一个粒子效果节点.将其调整为火焰状.把该粒子节点和上面的Light节点一起放到一个CCNode中去,设置该节点的代码连接为_fireNode.
然后在Xcode打开MainScene.m文件,启用触摸,然后建立对应的触摸回调方法:
-(void)touchMoved:(CCTouch *)touch withEvent:(CCTouchEvent *)event{ CGPoint location = [[CCDirector sharedDirector] convertTouchToGL:touch]; _fireNode.position = location; }
编译运行该App,你可以看到实际效果如下:
本篇完.
相关文章推荐
- spark(一) build
- java程序员第十一课 javaweb之request&response
- JAVA——(1)基础补充之运算符、字符串、数组、内存分配(String,StringBuffer,StringBuilder的区别
- java程序员第十课 javaweb之request&response
- 11 SMO优化算法(Sequential minimal optimization)
- UIButton的最基础用法
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- iOS8之UIPopoverPresentationController
- How should 50 red and 50 blue marbles be distributed between two jars so as to maximize the chance o
- 自定义UITableViewCell初始化代码
- WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-
- UI设计颜色风格
- easyui datagrid 编辑的时候只能编辑一行
- iOS无限轮播图片的实现-仅仅用了三个UIImageView实现多图的轮播效果
- TableView编辑中实现多行删除方法以及注意
- sicily 1028. Hanoi Tower Sequence
- UITableViewcell选中后去掉背景灰色
- IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结