分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
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}}},
}
包含了里面多个过滤实例。
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