quick-cocos2d-x 学习系列之九filter
2015-03-08 16:25
330 查看
quick-cocos2d-x 学习系列之九filter
一看这例子,就感觉适合做电影镜头之类的特效,那种模模糊糊的感觉。
主要定义了一个变量:
MainScene._FILTERS = {
-- custom
{"CUSTOM"},
-- {"CUSTOM", json.encode({frag ="Shaders/example_Flower.fsh",
-- center= {display.cx, display.cy},
-- resolution= {480, 320}})},
{{"CUSTOM",
"CUSTOM"},
{json.encode({frag =
"Shaders/example_Blur.fsh",
shaderName = "blurShader",
resolution = {480,320},
blurRadius = 10,
sampleNum = 5}),
json.encode({frag =
"Shaders/example_sepia.fsh",
shaderName = "sepiaShader",})}},
-- colors
{"GRAY",{0.2,
0.3, 0.5,
0.1}},
{"RGB",{1,
0.5, 0.3}},
{"HUE", {90}},
{"BRIGHTNESS", {0.3}},
{"SATURATION", {0}},
{"CONTRAST", {2}},
{"EXPOSURE", {2}},
{"GAMMA", {2}},
{"HAZE", {0.1,
0.2}},
--{"SEPIA", {}},
-- blurs
{"GAUSSIAN_VBLUR", {7}},
{"GAUSSIAN_HBLUR", {7}},
{"ZOOM_BLUR", {4,
0.7, 0.7}},
{"MOTION_BLUR", {5,
135}},
-- others
{"SHARPEN", {1,
1}},
{{"GRAY",
"GAUSSIAN_VBLUR", "GAUSSIAN_HBLUR"}, {nil, {10}, {10}}},
{{"BRIGHTNESS",
"CONTRAST"}, {{0.1}, {4}}},
{{"HUE",
"SATURATION", "BRIGHTNESS"}, {{240}, {1.5}, {-0.4}}},
}
包含了里面多个过滤实例。
self:_addUI()
self:_createFilters()
self:_showFilter()
创建clear filter按钮,用于调用函数 _onClearFilter。
创建场景的title.
self._curFilter =
1
self._filterCount = #self._FILTERS
curFilter变量时设置索引,filterCount变量时设置总数。
先判断_filterSprite变量是否存在,存在则设置为nil.
然后通过_curFilter创建当前过滤镜。
通过newFilteredSprite创建带过滤的精灵。
最后创建一个TITLE。
self._filterSprite:clearFilter()
Create a Filtered Sprite
· mixed filters One ofthe following:
· A Filter name;
· More Filter names(in atable);
· An instance of Filter;
· Some instances of Filter(in atable);
· A Array inclueds someinstances of Filter.
· table params A orsome parameters for Filter.
一看这例子,就感觉适合做电影镜头之类的特效,那种模模糊糊的感觉。
主要定义了一个变量:
MainScene._FILTERS = {
-- custom
{"CUSTOM"},
-- {"CUSTOM", json.encode({frag ="Shaders/example_Flower.fsh",
-- center= {display.cx, display.cy},
-- resolution= {480, 320}})},
{{"CUSTOM",
"CUSTOM"},
{json.encode({frag =
"Shaders/example_Blur.fsh",
shaderName = "blurShader",
resolution = {480,320},
blurRadius = 10,
sampleNum = 5}),
json.encode({frag =
"Shaders/example_sepia.fsh",
shaderName = "sepiaShader",})}},
-- colors
{"GRAY",{0.2,
0.3, 0.5,
0.1}},
{"RGB",{1,
0.5, 0.3}},
{"HUE", {90}},
{"BRIGHTNESS", {0.3}},
{"SATURATION", {0}},
{"CONTRAST", {2}},
{"EXPOSURE", {2}},
{"GAMMA", {2}},
{"HAZE", {0.1,
0.2}},
--{"SEPIA", {}},
-- blurs
{"GAUSSIAN_VBLUR", {7}},
{"GAUSSIAN_HBLUR", {7}},
{"ZOOM_BLUR", {4,
0.7, 0.7}},
{"MOTION_BLUR", {5,
135}},
-- others
{"SHARPEN", {1,
1}},
{{"GRAY",
"GAUSSIAN_VBLUR", "GAUSSIAN_HBLUR"}, {nil, {10}, {10}}},
{{"BRIGHTNESS",
"CONTRAST"}, {{0.1}, {4}}},
{{"HUE",
"SATURATION", "BRIGHTNESS"}, {{240}, {1.5}, {-0.4}}},
}
包含了里面多个过滤实例。
1. ctor
构造函数调用如下函数self:_addUI()
self:_createFilters()
self:_showFilter()
2. _addUI
创建close按钮,创建向前、向后、重播按钮。创建clear filter按钮,用于调用函数 _onClearFilter。
创建场景的title.
3. _createFilters
设置变量如下:self._curFilter =
1
self._filterCount = #self._FILTERS
curFilter变量时设置索引,filterCount变量时设置总数。
4. _showFilter
该函数是本例子的核心。先判断_filterSprite变量是否存在,存在则设置为nil.
然后通过_curFilter创建当前过滤镜。
通过newFilteredSprite创建带过滤的精灵。
最后创建一个TITLE。
5. _onClearFilter
将精灵的滤镜删除。self._filterSprite:clearFilter()
6. newFilteredSprite函数
display.newFilteredSprite()
display.newFilteredSprite(filename, filters, params)Create a Filtered Sprite
Parameters
· mixed filename Assame a the first parameter for display.newSprite· mixed filters One ofthe following:
· A Filter name;
· More Filter names(in atable);
· An instance of Filter;
· Some instances of Filter(in atable);
· A Array inclueds someinstances of Filter.
· table params A orsome parameters for Filter.
Returns
· An instance of FilteredSprite相关文章推荐
- quick-cocos2d-x 学习系列之六 CoinFlip
- quick-cocos2d-x 学习系列之八edit
- quick-cocos2d-x 学习系列之十四 测试用例
- quick-cocos2d-x 学习系列之十二 关于websocket
- quick-cocos2d-x 学习系列之十五 状态机
- quick-cocos2d-x 学习系列之十三 触摸
- quick-cocos2d-x 学习系列之七 drag
- quick-cocos2d-x 学习系列之三Armature
- quick-cocos2d-x 学习系列之二样例2048游戏学习
- quick-cocos2d-x 学习系列之十六 塔防完结
- quick-cocos2d-x 学习系列之五 ccsloader学习
- quick-cocos2d-x 学习系列之四 benchmark
- quick-cocos2d-x 学习系列之十一mvc例子
- quick-cocos2d-x 学习系列之十lua调用JAVA
- quick-cocos2d-x 精灵使用、动作等等的学习
- Zipkin-1.19.0学习系列12: 如何定制Brave-Web-Filter
- 【iOS-Cocos2d游戏开发】系列(总结了多篇文章,可以好好学习
- 【cocos2d-x 3.x 学习与应用总结】3: CallFunc系列
- cocos2d学习系列教程
- 基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)