From fc2cf95238ea9d7cba4d6397bda403e250517c7b Mon Sep 17 00:00:00 2001 From: ifengzp Date: Thu, 28 May 2020 21:40:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A9=AC=E8=B5=9B=E5=85=8B/=E5=83=8F=E7=B4=A0?= =?UTF-8?q?=E9=A3=8Eshader?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/Scene/Home/Home.ts | 3 +- assets/Scene/Mosaic.meta | 7 + assets/Scene/Mosaic/Mosaic.effect | 94 + assets/Scene/Mosaic/Mosaic.effect.meta | 17 + assets/Scene/Mosaic/Mosaic.fire | 2092 ++++++++++++++++++++++ assets/Scene/Mosaic/Mosaic.fire.meta | 7 + assets/Scene/Mosaic/Mosaic.mtl | 22 + assets/Scene/Mosaic/Mosaic.mtl.meta | 6 + assets/Scene/Mosaic/Mosaic.ts | 18 + assets/Scene/Mosaic/Mosaic.ts.meta | 9 + assets/Scene/Mosaic/Texture.meta | 7 + assets/Scene/Mosaic/Texture/bg.png | Bin 0 -> 91 bytes assets/Scene/Mosaic/Texture/bg.png.meta | 36 + assets/Scene/Mosaic/Texture/npc.png | Bin 0 -> 52170 bytes assets/Scene/Mosaic/Texture/npc.png.meta | 36 + doc/footer.md | 3 + 16 files changed, 2356 insertions(+), 1 deletion(-) create mode 100644 assets/Scene/Mosaic.meta create mode 100644 assets/Scene/Mosaic/Mosaic.effect create mode 100644 assets/Scene/Mosaic/Mosaic.effect.meta create mode 100644 assets/Scene/Mosaic/Mosaic.fire create mode 100644 assets/Scene/Mosaic/Mosaic.fire.meta create mode 100644 assets/Scene/Mosaic/Mosaic.mtl create mode 100644 assets/Scene/Mosaic/Mosaic.mtl.meta create mode 100644 assets/Scene/Mosaic/Mosaic.ts create mode 100644 assets/Scene/Mosaic/Mosaic.ts.meta create mode 100644 assets/Scene/Mosaic/Texture.meta create mode 100644 assets/Scene/Mosaic/Texture/bg.png create mode 100644 assets/Scene/Mosaic/Texture/bg.png.meta create mode 100644 assets/Scene/Mosaic/Texture/npc.png create mode 100644 assets/Scene/Mosaic/Texture/npc.png.meta diff --git a/assets/Scene/Home/Home.ts b/assets/Scene/Home/Home.ts index 4089215..7574f92 100644 --- a/assets/Scene/Home/Home.ts +++ b/assets/Scene/Home/Home.ts @@ -18,7 +18,8 @@ enum sceneList { 'Change_clothes' = '换装', 'Screen_vibrating' = '震屏效果+动画恢复第一帧', 'Joystick' = '遥控杆', - 'Filter' = '颜色滤镜' + 'Filter' = '颜色滤镜', + 'Mosaic' = '马赛克/像素风(shader)' } @ccclass diff --git a/assets/Scene/Mosaic.meta b/assets/Scene/Mosaic.meta new file mode 100644 index 0000000..4f6a8a7 --- /dev/null +++ b/assets/Scene/Mosaic.meta @@ -0,0 +1,7 @@ +{ + "ver": "1.0.1", + "uuid": "bbd908a4-1464-41f7-a2dd-66115d27bc7a", + "isSubpackage": false, + "subpackageName": "", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.effect b/assets/Scene/Mosaic/Mosaic.effect new file mode 100644 index 0000000..ce18386 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.effect @@ -0,0 +1,94 @@ +// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd. + +CCEffect %{ + techniques: + - passes: + - vert: vs + frag: fs + blendState: + targets: + - blend: true + rasterizerState: + cullMode: none + properties: + texture: { value: white } + x_count: { value: 100.0 } + y_count: { value: 100.0 } +}% + + +CCProgram vs %{ + precision highp float; + + #include + + in vec3 a_position; + in vec4 a_color; + out vec4 v_color; + + #if USE_TEXTURE + in vec2 a_uv0; + out vec2 v_uv0; + #endif + + void main () { + vec4 pos = vec4(a_position, 1); + + #if CC_USE_MODEL + pos = cc_matViewProj * cc_matWorld * pos; + #else + pos = cc_matViewProj * pos; + #endif + + #if USE_TEXTURE + v_uv0 = a_uv0; + #endif + + v_color = a_color; + + gl_Position = pos; + } +}% + + +CCProgram fs %{ + precision highp float; + + in vec4 v_color; + + #if USE_TEXTURE + in vec2 v_uv0; + uniform sampler2D texture; + #endif + + #if USE_MASAIC + uniform ARGS{ + float x_count; + float y_count; + }; + + vec2 getUvMapPos() { + float block_w = 1.0 / x_count; + float block_x_idx = floor(v_uv0.x / block_w); + + float block_h = 1.0 / y_count; + float block_y_idx = floor(v_uv0.y / block_h); + + return vec2(block_w * (block_x_idx + 0.5), block_h * (block_y_idx + 0.5)); + } + #endif + + void main () { + vec4 o = vec4(1, 1, 1, 1); + vec2 realPos = v_uv0; + + #if USE_MASAIC + realPos = getUvMapPos(); + #endif + + o *= texture(texture, realPos); + o *= v_color; + + gl_FragColor = o; + } +}% diff --git a/assets/Scene/Mosaic/Mosaic.effect.meta b/assets/Scene/Mosaic/Mosaic.effect.meta new file mode 100644 index 0000000..38d9da9 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.effect.meta @@ -0,0 +1,17 @@ +{ + "ver": "1.0.25", + "uuid": "a94a99c8-625f-4aef-8960-e983d429d3a6", + "compiledShaders": [ + { + "glsl1": { + "vert": "\nprecision highp float;\nuniform mediump mat4 cc_matViewProj;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}", + "frag": "\nprecision highp float;\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_MASAIC\nuniform float x_count;\nuniform float y_count;\nvec2 getUvMapPos() {\n float block_w = 1.0 / x_count;\n float block_x_idx = floor(v_uv0.x / block_w);\n float block_h = 1.0 / y_count;\n float block_y_idx = floor(v_uv0.y / block_h);\n return vec2(block_w * (block_x_idx + 0.5), block_h * (block_y_idx + 0.5));\n}\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n vec2 realPos = v_uv0;\n #if USE_MASAIC\n realPos = getUvMapPos();\n #endif\n o *= texture2D(texture, realPos);\n o *= v_color;\n gl_FragColor = o;\n}" + }, + "glsl3": { + "vert": "\nprecision highp float;\nuniform CCGlobal {\n highp vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n mediump vec4 cc_nativeSize;\n highp mat4 cc_matView;\n mediump mat4 cc_matViewInv;\n mediump mat4 cc_matProj;\n mediump mat4 cc_matProjInv;\n mediump mat4 cc_matViewProj;\n mediump mat4 cc_matViewProjInv;\n mediump vec4 cc_cameraPos;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n gl_Position = pos;\n}", + "frag": "\nprecision highp float;\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nuniform sampler2D texture;\n#endif\n#if USE_MASAIC\nuniform ARGS{\n float x_count;\n float y_count;\n};\nvec2 getUvMapPos() {\n float block_w = 1.0 / x_count;\n float block_x_idx = floor(v_uv0.x / block_w);\n float block_h = 1.0 / y_count;\n float block_y_idx = floor(v_uv0.y / block_h);\n return vec2(block_w * (block_x_idx + 0.5), block_h * (block_y_idx + 0.5));\n}\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n vec2 realPos = v_uv0;\n #if USE_MASAIC\n realPos = getUvMapPos();\n #endif\n o *= texture(texture, realPos);\n o *= v_color;\n gl_FragColor = o;\n}" + } + } + ], + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.fire b/assets/Scene/Mosaic/Mosaic.fire new file mode 100644 index 0000000..86ede22 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.fire @@ -0,0 +1,2092 @@ +[ + { + "__type__": "cc.SceneAsset", + "_name": "", + "_objFlags": 0, + "_native": "", + "scene": { + "__id__": 1 + } + }, + { + "__type__": "cc.Scene", + "_objFlags": 0, + "_parent": null, + "_children": [ + { + "__id__": 2 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_is3DNode": true, + "_groupIndex": 0, + "groupIndex": 0, + "autoReleaseAssets": false, + "_id": "9708c3cd-9189-4481-a85e-7200d9e89417" + }, + { + "__type__": "cc.Node", + "_name": "Canvas", + "_objFlags": 0, + "_parent": { + "__id__": 1 + }, + "_children": [ + { + "__id__": 3 + }, + { + "__id__": 5 + }, + { + "__id__": 8 + }, + { + "__id__": 10 + }, + { + "__id__": 20 + }, + { + "__id__": 31 + } + ], + "_active": true, + "_components": [ + { + "__id__": 42 + }, + { + "__id__": 43 + }, + { + "__id__": 44 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1334, + "height": 750 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 667, + 375, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a5esZu+45LA5mBpvttspPD" + }, + { + "__type__": "cc.Node", + "_name": "Main Camera", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 4 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1334, + "height": 750 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 452.93128617926146, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "e1WoFrQ79G7r4ZuQE3HlNb" + }, + { + "__type__": "cc.Camera", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 3 + }, + "_enabled": true, + "_cullingMask": 4294967295, + "_clearFlags": 7, + "_backgroundColor": { + "__type__": "cc.Color", + "r": 0, + "g": 0, + "b": 0, + "a": 255 + }, + "_depth": -1, + "_zoomRatio": 1, + "_targetTexture": null, + "_fov": 60, + "_orthoSize": 10, + "_nearClip": 1, + "_farClip": 4096, + "_ortho": true, + "_rect": { + "__type__": "cc.Rect", + "x": 0, + "y": 0, + "width": 1, + "height": 1 + }, + "_renderStages": 1, + "_alignWithScreen": true, + "_id": "81GN3uXINKVLeW4+iKSlim" + }, + { + "__type__": "cc.Node", + "_name": "bg", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 6 + }, + { + "__id__": 7 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 1334, + "height": 750 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c20zL0WxNIVY5AQDy7Pssg" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "73a9939f-c882-4bdb-a6b4-7384bd4f32a3" + }, + "_type": 0, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "b5bfK4oF5NzK2bTz3cq41q" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 5 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 2, + "_originalHeight": 2, + "_id": "4bVwtTLlFCgZk5XUJBjoxM" + }, + { + "__type__": "cc.Node", + "_name": "npc", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 9 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 361, + "height": 458 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + -175.877, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "ea6IVEvMRKmpcOfAkHPkN4" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 8 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "67dbc9c2-8d9f-4267-b0ac-79eac5cd2077" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "8e6013be-9ce2-4cee-bebe-6d94b901ccfe" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "290zu2+NxAaYdieotHwT09" + }, + { + "__type__": "cc.Node", + "_name": "toggle", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 11 + }, + { + "__id__": 13 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 181.288, + 147.002, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "b4fyL8r9lOPLnSA2607XQ0" + }, + { + "__type__": "cc.Node", + "_name": "label", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 12 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 120, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 1.057, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "2bYM4UEXlK1qFIbbcwihs7" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 11 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_useOriginalSize": false, + "_string": "打码开关", + "_N$string": "打码开关", + "_fontSize": 30, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "325X8KfsZEbLXkuQb+L4CU" + }, + { + "__type__": "cc.Node", + "_name": "toggle", + "_objFlags": 0, + "_parent": { + "__id__": 10 + }, + "_children": [ + { + "__id__": 14 + }, + { + "__id__": 16 + } + ], + "_active": true, + "_components": [ + { + "__id__": 18 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 113.955, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a8Wz5vflBMZLZvcMlB7UVY" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 15 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "fcK5jQJHdGHakLPpAO3VR1" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 14 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "6827ca32-0107-4552-bab2-dfb31799bb44" + }, + "_type": 0, + "_sizeMode": 1, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "adBjmyNwtAgrEKkQ8xNv7A" + }, + { + "__type__": "cc.Node", + "_name": "checkmark", + "_objFlags": 0, + "_parent": { + "__id__": 13 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 17 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 28, + "height": 28 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "d6aNzGEVVOPayaSsAWk6cU" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 16 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "90004ad6-2f6d-40e1-93ef-b714375c6f06" + }, + "_type": 0, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": false, + "_atlas": null, + "_id": "fb5KnKxJpKMZyYQ2sU6xYZ" + }, + { + "__type__": "cc.Toggle", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 13 + }, + "_enabled": true, + "_normalMaterial": null, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.2, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": false, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 214, + "g": 214, + "b": 214, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 211, + "g": 211, + "b": 211, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 124, + "g": 124, + "b": 124, + "a": 255 + }, + "_N$normalSprite": null, + "_N$pressedSprite": null, + "pressedSprite": null, + "_N$hoverSprite": null, + "hoverSprite": null, + "_N$disabledSprite": null, + "_N$target": { + "__id__": 14 + }, + "_N$isChecked": true, + "toggleGroup": null, + "checkMark": { + "__id__": 17 + }, + "checkEvents": [ + { + "__id__": 19 + } + ], + "_id": "74GLBqTKJGMrQlvK++8rRD" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "e6cdawfgB1DSKkHRoeo2dHy", + "handler": "togglePixel", + "customEventData": "" + }, + { + "__type__": "cc.Node", + "_name": "direction_x", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 21 + }, + { + "__id__": 23 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 210.523, + 34.936, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "2aMy+uSOdMxa+tBVmB2zxt" + }, + { + "__type__": "cc.Node", + "_name": "tip", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 22 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 31.968, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "48wyEYYAZDALDveLRXvA9n" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 21 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_useOriginalSize": false, + "_string": "水平方向格子数量", + "_N$string": "水平方向格子数量", + "_fontSize": 30, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "34mGvrFsZBaozE5qJAmMuD" + }, + { + "__type__": "cc.Node", + "_name": "slider", + "_objFlags": 0, + "_parent": { + "__id__": 20 + }, + "_children": [ + { + "__id__": 24 + }, + { + "__id__": 26 + } + ], + "_active": true, + "_components": [ + { + "__id__": 29 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 59.055, + -54.647, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "69YxRZEBtBXaquQ7WEt21b" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 25 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "adnwtghX9EJo7rm8pTOHlD" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 24 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "31d8962d-babb-4ec7-be19-8e9f54a4ea99" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "daLqUKBtZFLI2ikyZCmzhv" + }, + { + "__type__": "cc.Node", + "_name": "Handle", + "_objFlags": 0, + "_parent": { + "__id__": 23 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 27 + }, + { + "__id__": 28 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "1cBVxrAFhBpKmiH5d+Cgc2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 1, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "f7GaZD2E9Bmqwp1fzM/dgl" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 26 + }, + "_enabled": true, + "_normalMaterial": { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + }, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": true, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$normalSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 26 + }, + "_id": "7f2bMyBkVNBYM7lq+4Dxg5" + }, + { + "__type__": "cc.Slider", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 23 + }, + "_enabled": true, + "direction": 0, + "slideEvents": [ + { + "__id__": 30 + } + ], + "_N$handle": { + "__id__": 28 + }, + "_N$progress": 0.5, + "_id": "29vA4CRbxID6AHsbmGJq3a" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "e6cdawfgB1DSKkHRoeo2dHy", + "handler": "setPixelCount", + "customEventData": "x" + }, + { + "__type__": "cc.Node", + "_name": "direction_y", + "_objFlags": 0, + "_parent": { + "__id__": 2 + }, + "_children": [ + { + "__id__": 32 + }, + { + "__id__": 34 + } + ], + "_active": true, + "_components": [], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 0, + "height": 0 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 210.523, + -119.694, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "a8ZPV6DQ1E1qDuudMxt07O" + }, + { + "__type__": "cc.Node", + "_name": "tip", + "_objFlags": 0, + "_parent": { + "__id__": 31 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 33 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 240, + "height": 50.4 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 29.661, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "78zwjytMVPCro1tlxvpzB1" + }, + { + "__type__": "cc.Label", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 32 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_useOriginalSize": false, + "_string": "垂直方向格子数量", + "_N$string": "垂直方向格子数量", + "_fontSize": 30, + "_lineHeight": 40, + "_enableWrapText": true, + "_N$file": null, + "_isSystemFontUsed": true, + "_spacingX": 0, + "_batchAsBitmap": false, + "_styleFlags": 0, + "_underlineHeight": 0, + "_N$horizontalAlign": 1, + "_N$verticalAlign": 1, + "_N$fontFamily": "Arial", + "_N$overflow": 0, + "_N$cacheMode": 1, + "_id": "8cDlzttJFKXL9lL0pwPff/" + }, + { + "__type__": "cc.Node", + "_name": "slider", + "_objFlags": 0, + "_parent": { + "__id__": 31 + }, + "_children": [ + { + "__id__": 35 + }, + { + "__id__": 37 + } + ], + "_active": true, + "_components": [ + { + "__id__": 40 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 59.055, + -54.647, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "79JWsv/1ZBfK8kY+Z1eOZ/" + }, + { + "__type__": "cc.Node", + "_name": "Background", + "_objFlags": 0, + "_parent": { + "__id__": 34 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 36 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 300, + "height": 20 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "c9gPxazkRKOKIuBr1BJFfm" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 35 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "31d8962d-babb-4ec7-be19-8e9f54a4ea99" + }, + "_type": 1, + "_sizeMode": 0, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "5ct0FCY2RCw57D/ZuwmjMf" + }, + { + "__type__": "cc.Node", + "_name": "Handle", + "_objFlags": 0, + "_parent": { + "__id__": 34 + }, + "_children": [], + "_active": true, + "_components": [ + { + "__id__": 38 + }, + { + "__id__": 39 + } + ], + "_prefab": null, + "_opacity": 255, + "_color": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_contentSize": { + "__type__": "cc.Size", + "width": 32, + "height": 32 + }, + "_anchorPoint": { + "__type__": "cc.Vec2", + "x": 0.5, + "y": 0.5 + }, + "_trs": { + "__type__": "TypedArray", + "ctor": "Float64Array", + "array": [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ] + }, + "_eulerAngles": { + "__type__": "cc.Vec3", + "x": 0, + "y": 0, + "z": 0 + }, + "_skewX": 0, + "_skewY": 0, + "_is3DNode": false, + "_groupIndex": 0, + "groupIndex": 0, + "_id": "3fWyQ/7LxGYKK42ZfCZHk2" + }, + { + "__type__": "cc.Sprite", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_materials": [ + { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + } + ], + "_srcBlendFactor": 770, + "_dstBlendFactor": 771, + "_spriteFrame": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_type": 1, + "_sizeMode": 2, + "_fillType": 0, + "_fillCenter": { + "__type__": "cc.Vec2", + "x": 0, + "y": 0 + }, + "_fillStart": 0, + "_fillRange": 0, + "_isTrimmedMode": true, + "_atlas": null, + "_id": "eaPwjBImJAYI/tBYmc8rsw" + }, + { + "__type__": "cc.Button", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 37 + }, + "_enabled": true, + "_normalMaterial": { + "__uuid__": "eca5d2f2-8ef6-41c2-bbe6-f9c79d09c432" + }, + "_grayMaterial": null, + "duration": 0.1, + "zoomScale": 1.1, + "clickEvents": [], + "_N$interactable": true, + "_N$enableAutoGrayEffect": true, + "_N$transition": 3, + "transition": 3, + "_N$normalColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "pressedColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "hoverColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$disabledColor": { + "__type__": "cc.Color", + "r": 255, + "g": 255, + "b": 255, + "a": 255 + }, + "_N$normalSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "pressedSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "hoverSprite": { + "__uuid__": "e7aba14b-f956-4480-b254-8d57832e273f" + }, + "_N$disabledSprite": { + "__uuid__": "29158224-f8dd-4661-a796-1ffab537140e" + }, + "_N$target": { + "__id__": 37 + }, + "_id": "53BBdpGttBwbXQVkOEe3wa" + }, + { + "__type__": "cc.Slider", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 34 + }, + "_enabled": true, + "direction": 0, + "slideEvents": [ + { + "__id__": 41 + } + ], + "_N$handle": { + "__id__": 39 + }, + "_N$progress": 0.5, + "_id": "302iClx4tCk5hYCJEDJ5F6" + }, + { + "__type__": "cc.ClickEvent", + "target": { + "__id__": 2 + }, + "component": "", + "_componentId": "e6cdawfgB1DSKkHRoeo2dHy", + "handler": "setPixelCount", + "customEventData": "y" + }, + { + "__type__": "cc.Canvas", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_designResolution": { + "__type__": "cc.Size", + "width": 1334, + "height": 750 + }, + "_fitWidth": false, + "_fitHeight": true, + "_id": "59Cd0ovbdF4byw5sbjJDx7" + }, + { + "__type__": "cc.Widget", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "alignMode": 1, + "_target": null, + "_alignFlags": 45, + "_left": 0, + "_right": 0, + "_top": 0, + "_bottom": 0, + "_verticalCenter": 0, + "_horizontalCenter": 0, + "_isAbsLeft": true, + "_isAbsRight": true, + "_isAbsTop": true, + "_isAbsBottom": true, + "_isAbsHorizontalCenter": true, + "_isAbsVerticalCenter": true, + "_originalWidth": 0, + "_originalHeight": 0, + "_id": "29zXboiXFBKoIV4PQ2liTe" + }, + { + "__type__": "e6cdawfgB1DSKkHRoeo2dHy", + "_name": "", + "_objFlags": 0, + "node": { + "__id__": 2 + }, + "_enabled": true, + "_id": "75puEmhk1KJZvqujGNOy33" + } +] \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.fire.meta b/assets/Scene/Mosaic/Mosaic.fire.meta new file mode 100644 index 0000000..4f59fe7 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.fire.meta @@ -0,0 +1,7 @@ +{ + "ver": "1.2.6", + "uuid": "9708c3cd-9189-4481-a85e-7200d9e89417", + "asyncLoadAssets": false, + "autoReleaseAssets": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.mtl b/assets/Scene/Mosaic/Mosaic.mtl new file mode 100644 index 0000000..dad05f3 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.mtl @@ -0,0 +1,22 @@ +{ + "__type__": "cc.Material", + "_name": "Mosaic", + "_objFlags": 0, + "_native": "", + "_effectAsset": { + "__uuid__": "a94a99c8-625f-4aef-8960-e983d429d3a6" + }, + "_techniqueIndex": 0, + "_techniqueData": { + "0": { + "props": { + "x_count": 100, + "y_count": 100 + }, + "defines": { + "USE_TEXTURE": true, + "USE_MASAIC": true + } + } + } +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.mtl.meta b/assets/Scene/Mosaic/Mosaic.mtl.meta new file mode 100644 index 0000000..c74dd97 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.mtl.meta @@ -0,0 +1,6 @@ +{ + "ver": "1.0.3", + "uuid": "67dbc9c2-8d9f-4267-b0ac-79eac5cd2077", + "dataAsSubAsset": null, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Mosaic.ts b/assets/Scene/Mosaic/Mosaic.ts new file mode 100644 index 0000000..578d801 --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.ts @@ -0,0 +1,18 @@ +const { ccclass, property } = cc._decorator; + +@ccclass +export default class Mosaic extends cc.Component { + material: cc.Material = null; + + onLoad() { + this.material = this.node.getChildByName('npc').getComponent(cc.Sprite).getMaterial(0); + } + + setPixelCount(slide: cc.Slider, type: 'x' | 'y') { + this.material.setProperty(`${type}_count`, Math.floor(slide.progress * 100)); + } + + togglePixel(toggle: cc.Toggle) { + this.material.define('USE_MASAIC', toggle.isChecked, 0, true); + } +} diff --git a/assets/Scene/Mosaic/Mosaic.ts.meta b/assets/Scene/Mosaic/Mosaic.ts.meta new file mode 100644 index 0000000..6f3e47a --- /dev/null +++ b/assets/Scene/Mosaic/Mosaic.ts.meta @@ -0,0 +1,9 @@ +{ + "ver": "1.0.5", + "uuid": "e6cdac1f-801d-4348-a907-4687a8d9d1f2", + "isPlugin": false, + "loadPluginInWeb": true, + "loadPluginInNative": true, + "loadPluginInEditor": false, + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Texture.meta b/assets/Scene/Mosaic/Texture.meta new file mode 100644 index 0000000..efd5204 --- /dev/null +++ b/assets/Scene/Mosaic/Texture.meta @@ -0,0 +1,7 @@ +{ + "ver": "1.0.1", + "uuid": "bc34001f-7af6-4bb4-a663-2e1850c181c9", + "isSubpackage": false, + "subpackageName": "", + "subMetas": {} +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Texture/bg.png b/assets/Scene/Mosaic/Texture/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e624a70e8999abaf4a3debe8db398a011e350a61 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^Od!m`#=yYHy3uwMki%FUyR04iYcboFyt=akR{03I3?jQ{`u literal 0 HcmV?d00001 diff --git a/assets/Scene/Mosaic/Texture/bg.png.meta b/assets/Scene/Mosaic/Texture/bg.png.meta new file mode 100644 index 0000000..fb080a5 --- /dev/null +++ b/assets/Scene/Mosaic/Texture/bg.png.meta @@ -0,0 +1,36 @@ +{ + "ver": "2.3.4", + "uuid": "ab0995ce-a9ef-4247-a848-d4bd77db5258", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": true, + "width": 2, + "height": 2, + "platformSettings": {}, + "subMetas": { + "bg": { + "ver": "1.0.4", + "uuid": "73a9939f-c882-4bdb-a6b4-7384bd4f32a3", + "rawTextureUuid": "ab0995ce-a9ef-4247-a848-d4bd77db5258", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": 0, + "offsetY": 0, + "trimX": 0, + "trimY": 0, + "width": 2, + "height": 2, + "rawWidth": 2, + "rawHeight": 2, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/assets/Scene/Mosaic/Texture/npc.png b/assets/Scene/Mosaic/Texture/npc.png new file mode 100644 index 0000000000000000000000000000000000000000..36a806f495808af7eb55815ebd65e84958cfeff5 GIT binary patch literal 52170 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 ~bIl9p)B_W%p|CGww9?NCG}qkAun0h)~i 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 literal 0 HcmV?d00001 diff --git a/assets/Scene/Mosaic/Texture/npc.png.meta b/assets/Scene/Mosaic/Texture/npc.png.meta new file mode 100644 index 0000000..023c273 --- /dev/null +++ b/assets/Scene/Mosaic/Texture/npc.png.meta @@ -0,0 +1,36 @@ +{ + "ver": "2.3.4", + "uuid": "ecdb72e0-ae6f-445f-9513-baac57e1469a", + "type": "sprite", + "wrapMode": "clamp", + "filterMode": "bilinear", + "premultiplyAlpha": false, + "genMipmaps": false, + "packable": false, + "width": 512, + "height": 512, + "platformSettings": {}, + "subMetas": { + "npc": { + "ver": "1.0.4", + "uuid": "8e6013be-9ce2-4cee-bebe-6d94b901ccfe", + "rawTextureUuid": "ecdb72e0-ae6f-445f-9513-baac57e1469a", + "trimType": "auto", + "trimThreshold": 1, + "rotated": false, + "offsetX": -3.5, + "offsetY": -27, + "trimX": 72, + "trimY": 54, + "width": 361, + "height": 458, + "rawWidth": 512, + "rawHeight": 512, + "borderTop": 0, + "borderBottom": 0, + "borderLeft": 0, + "borderRight": 0, + "subMetas": {} + } + } +} \ No newline at end of file diff --git a/doc/footer.md b/doc/footer.md index df09f55..38be04d 100644 --- a/doc/footer.md +++ b/doc/footer.md @@ -1,6 +1,9 @@ 我是异名,你的阅读是我的动力,其他文章链接: +- [水波扩散效果(shader)](https://mp.weixin.qq.com/s/e9WHuwaLKt8qov91D_JVwA) +- [镜面光泽效果(shader)](https://mp.weixin.qq.com/s/zcUvkPuMJT_wA82jCsUXig) - [追光效果(shader)](https://mp.weixin.qq.com/s/YFvMAuMqageplRCp9YYgpQ) - [溶解效果(shader)](https://mp.weixin.qq.com/s/8uu3gyWWMt0gf32XAinl-g) +- [颜色滤镜(shader)](https://mp.weixin.qq.com/s/qxzNOz97818wc9f5khwNyg) - [富文本打字机效果](https://mp.weixin.qq.com/s/WlVBzSgCNTNPD2bxXda-mg) - [子弹跟踪效果](https://mp.weixin.qq.com/s/2egrmJC1AgRXNWuGOIhbXg) - [微信小游戏超出4M之后](https://mp.weixin.qq.com/s/l8MDHMnVl8eVl8U6krBeDw)