第四节:旋涡特效

大家好,经过前面三节课的学习,我们已经可以掌握将模型加载到游戏中进行显示,并且做出模型在水中受波光影响的效果,也学会了如何产生闪电链。这一节课,我们来学习一下如何开发旋涡特效。


在《捕鱼达人3》里,有这样一个效果,它实现了对屏幕画面进行旋转扭曲,感觉就像带着玩家通过旋涡进入了海底的世界。如图:

1407840729290243.jpg

哈哈!看起来是不是很流弊!


具体怎么实现呢?现在我们来学习一下。


要现实这样的效果主要分为三个步骤:

一、将屏幕画面渲染到一张纹理上。

二、创建一个平面网格模型,然后将第一步取得的纹理做为贴图传入一个顶点纹理坐标扭曲Shader进行渲染。

三、随着时间的增加,更新Shader中顶点纹理坐标扭曲的角度和半径。


为了方便使用,我们创建一个基于Layer的派生类,命名为VortexLayer,然后我们在其中加入一个CCRenderTexture成员指针,在初始化时创建为屏幕大小:

1
2
3
4
5
6
// 创建渲染目标纹理
auto  WinSize  = Director::getInstance()->getWinSize();
m_pTarget = CCRenderTexture::create(WinSize.width, WinSize.height, kCCTexture2DPixelFormat_RGBA8888);
m_pTarget->setClearColor(Color4F(0, 0, 0, 0));
m_pTarget->setVisible( false );
addChild(m_pTarget);


并通过它我们在draw的时候将目标Layer结点中的所有物体绘制到它的纹理中。

1
2
3
4
5
6
7
8
9
10
11
12
void  VortexLayer::draw(Renderer* renderer,  const  Mat4 &transform, uint32_t flags)
{
 
     if ( m_pTarget && m_TargetLayer)
     {
         m_pTarget->clear(0,0,0,0);
         m_pTarget->begin();
         m_TargetLayer->visit();
         m_pTarget->end();
     }
}


然后我们需要加入一个Mesh成员对象指针,并设置它的顶点数据,使它在形成一个与屏幕大小相等的平面网格。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
auto  WinSize  = Director::getInstance()->getWinSize();
//行,列数
int  cows = 100;
int  rows = 100;
//每一行,列的顶点位置偏移
float   vertexStepX = WinSize .width/cows;
float   vertexStepY = WinSize .height/rows;
//第一行,列的纹理坐标偏移
float   uStep = 1.0/rows;
float   vStep = 1.0/cows;
//顶点,法线,色,纹理的容器
vector< float > positions;
vector< float >   normals;
vector< float >   colors;
vector< float >   texs;
 
for  ( unsigned  int  x = 0; x <= cows; ++x )
{
     for  ( unsigned  int   y = 0; y <= rows; ++y )
     {
         unsigned  int  offset = x + y * ( cows + 1 );
 
             positions.push_back(x*vertexStepX);
             positions.push_back(y*vertexStepY);
             positions.push_back(10);
 
             texs.push_back(x*uStep);
             texs.push_back(y*vStep);
         }
     }
std::vector<unsigned  short > tTriangle;
 
for  ( unsigned  int  x = 0; x < cows; ++x )
{
     for  ( unsigned  int  y = 0; y < rows; ++y )
     {
         unsigned  short * ptr = &(m_IndiceArray[(x+y*cows)*6]);
 
         tTriangle.push_back((x+0) + (y+0)*(cows+1));
         tTriangle.push_back((x+0) + (y+1)*(cows+1));
         tTriangle.push_back((x+1) + (y+0)*(cows+1));
 
         tTriangle.push_back((x+0) + (y+1)*(cows+1));
         tTriangle.push_back((x+1) + (y+1)*(cows+1));
         tTriangle.push_back((x+1) + (y+0)*(cows+1));
     }
}  
//创建模型
m_RenderMesh = Mesh::create(positions,normals,texs,tTriangle);
m_RenderMesh->retain();
//设置顶点格式
long  offset = 0;
auto attributeCount = m_RenderMesh->getMeshVertexAttribCount();
for  (auto k = 0; k < attributeCount; k++) {
        auto meshattribute = m_RenderMesh->getMeshVertexAttribute(k);
        m_ProgramState->setVertexAttribPointer(s_attributeNames[meshattribute.vertexAttrib],
                                             meshattribute.size,
                                             meshattribute.type,
                                             GL_FALSE,
                         m_RenderMesh->getVertexSizeInBytes(),
                                             (GLvoid*)offset);
        offset += meshattribute.attribSizeBytes;
    }
     
m_meshCommand.genMaterialID(0, m_ProgramState, m_RenderMesh, m_BlendFunc);


这样模型网格就创建好了,下面我们重点研究一下所需要的Shader文件Vortex.vsh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// 输入的顶点格式
attribute vec4 a_position;
attribute vec2 a_texCoord;
 
//输出给PS的变量
varying vec2 v_texCoord;
//用户自定义的变量
uniform float  radius ;
uniform float  angle ;
//旋涡的计算函数
vec2 vortex( vec2 uv )
{
     //先减去贴图中心点的纹理坐标,这样是方便旋转计算
     uv -= vec2(0.5, 0.5);
     //计算当前坐标与中心点的距离。
     float  dist = length(uv);
     //计算出旋转的百分比
     float  percent = (radius - dist) / radius;
     if  ( percent < 1.0 && percent >= 0.0) 
     {
         //通过sin,cos来计算出旋转后的位置。
         float  theta = percent * percent * angle * 8.0;
         float  s =  sin (theta);
         float  c =  cos (theta);
         uv = vec2(dot(uv, vec2(c, -s)), dot(uv, vec2(s, c)));
     }
     //再加上贴图中心点的纹理坐标,这样才正确。
     uv += vec2(0.5, 0.5);
 
     return  uv;
}
 
void  main()
{
     //计算出顶点的位置
gl_Position = CC_MVPMatrix * a_position;
     //调用函数计算出纹理坐标
     v_texCoord = vortex( a_texCoord );
 
}

在draw函数中通过计算时间间隔来不断的修改角度和半径的值,就可以实现顶点的UV值绕贴图中心点旋转的效果了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//计算时间间隔
timeval currtime;
gettimeofday( &currtime, nullptr);
float  dt = (currtime.tv_sec - m_lasttime.tv_sec) + (currtime.tv_usec - m_lasttime.tv_usec) / 1000000.0f;
if  ( m_Time < m_maxTime )
{
     setAngle( getAngel()+m_angleSpeed*dt );
     setRadius( getRadius()+m_radiusSpeed*dt );
     m_Time += dt;
}
else
{
     m_Time = 0.0;
     setAngle( 0.0f );
     setRadius( 0.0f );
}
m_lasttime = currtime;
//设置Shader的参数。
GLProgramState* programstate = getGLProgramState();
programstate->setUniformFloat( "radius" ,m_radius);
programstate->setUniformFloat( "angle" ,m_angle);
programstate->setUniformTexture( "u_texture" , m_pTarget->getSprite()->getTexture());


现在我们运行一下,就可以看到这个旋涡在一点点旋转,将一切都吞噬~。 DEMO:旋涡特效.rar

1407840927235329.jpg

经过四节的学习,你是不是对于使用Cocos2d-x进行3D开发越来越有兴趣了呢?希望大家发挥聪明才智,使用Cocos2d-x开发出更多更好的3D游戏!再见!

转:http://cn.cocos2d-x.org/tutorial/show?id=1313

│ creator.d.ts │ global.d.ts │ jsconfig.json │ list.txt │ project.json │ README.md │ template-banner.png │ template.json │ tsconfig.json │ ├─assets │ │ animate.meta │ │ audio.meta │ │ bydrbg.mp3 │ │ bydrbg.mp3.meta │ │ prefabs.meta │ │ resources.meta │ │ Scene.meta │ │ Script.meta │ │ Texture.meta │ │ │ ├─animate │ │ coin_up.anim │ │ coin_up.anim.meta │ │ fish_bigred_die.anim │ │ fish_bigred_die.anim.meta │ │ fish_bigred_run.anim │ │ fish_bigred_run.anim.meta │ │ fish_denglong_die.anim │ │ fish_denglong_die.anim.meta │ │ fish_denglong_run.anim │ │ fish_denglong_run.anim.meta │ │ fish_fuyi_die.anim │ │ fish_fuyi_die.anim.meta │ │ fish_fuyi_run.anim │ │ fish_fuyi_run.anim.meta │ │ fish_gui_die.anim │ │ fish_gui_die.anim.meta │ │ fish_gui_run.anim │ │ fish_gui_run.anim.meta │ │ fish_hailuoshuimu_die.anim │ │ fish_hailuoshuimu_die.anim.meta │ │ fish_hailuoshuimu_run.anim │ │ fish_hailuoshuimu_run.anim.meta │ │ fish_hetun_die.anim │ │ fish_hetun_die.anim.meta │ │ fish_hetun_run.anim │ │ fish_hetun_run.anim.meta │ │ fish_jinshayu_die.anim │ │ fish_jinshayu_die.anim.meta │ │ fish_jinshayu_run.anim │ │ fish_jinshayu_run.anim.meta │ │ fish_red_die.anim │ │ fish_red_die.anim.meta │ │ fish_red_run.anim │ │ fish_red_run.anim.meta │ │ fish_shayu_die.anim │ │ fish_shayu_die.anim.meta │ │ fish_shayu_run.anim │ │ fish_shayu_run.anim.meta │ │ fish_shuimu_die.anim │ │ fish_shuimu_die.anim.meta │ │ fish_shuimu_run.anim │ │ fish_shuimu_run.anim.meta │ │ fish_yellow_die.anim │ │ fish_yellow_die.anim.meta │ │ fish_yellow_run.anim │ │ fish_yellow_run.anim.meta │ │ gold_down.anim │ │ gold_down.anim.meta │ │ net_1.anim │ │ net_1.anim.meta │ │ net_2.anim │ │ net_2.anim.meta │ │ net_3.anim │ │ net_3.anim.meta │ │ net_4.anim │ │ net_4.anim.meta │ │ net_5.anim │ │ net_5.anim.meta │ │ net_6.anim │ │ net_6.anim.meta │ │ net_7.anim │ │ net_7.anim.meta │ │ silver_down.anim │ │ silver_down.anim.meta │ │ weapon_level_1.anim │ │ weapon_level_1.anim.meta │ │ weapon_level_2.anim │ │ weapon_level_2.anim.meta │ │ weapon_level_3.anim │ │ weapon_level_3.anim.meta │ │ weapon_level_4.anim │ │ weapon_level_4.anim.meta │ │ weapon_level_5.anim │ │ weapon_level_5.anim.meta │ │ weapon_level_6.anim │ │ weapon_level_6.anim.meta │ │ weapon_level_7.anim │ │ weapon_level_7.anim.meta │ │ │ ├─audio │ │ bydrbg.mp3 │ │ bydrbg.mp3.meta │ │ │ ├─prefabs │ │ bullet.prefab │ │ bullet.prefab.meta │ │ coins_down.prefab │ │ coins_down.prefab.meta │ │ coins_up.prefab │ │ coins_up.prefab.meta │ │ fish_node.prefab │ │ fish_node.prefab.meta │ │ net.prefab │ │ net.prefab.meta │ │ │ ├─resources │ │ fishconfig.json │ │ fishconfig.json.meta │ │ │ ├─Scene │ │ mainscene.fire │ │ mainscene.fire.meta │ │ │ ├─Script │ │ │ Bullet.ts │ │ │ Bullet.ts.meta │ │ │ CoinController.ts │ │ │ CoinController.ts.meta │ │ │ Coins.ts │ │ │ Coins.ts.meta │ │ │ Fish.ts │ │ │ Fish.ts.meta │ │ │ FishType.ts │ │ │ FishType.ts.meta │ │ │ FluxayEffect.ts │ │ │ FluxayEffect.ts.meta │ │ │ FluxayFrag.ts │ │ │ FluxayFrag.ts.meta │ │ │ Game.ts │ │ │ Game.ts.meta │ │ │ Lib.meta │ │ │ Net.ts │ │ │ Net.ts.meta │ │ │ NumUp.ts │ │ │ NumUp.ts.meta │ │ │ WaterWaveEffect.ts │ │ │ WaterWaveEffect.ts.meta │ │ │ WaterWaveFrag.ts │ │ │ WaterWaveFrag.ts.meta │ │ │ Weapon.ts │ │ │ Weapon.ts.meta │ │ │ │ │ └─Lib │ │ Fetch.js │ │ Fetch.js.meta │ │ │ └─Texture │ bg_buyu2.jpg │ bg_buyu2.jpg.meta │ cointextures.plist │ cointextures.plist.meta │ cointextures.png │ cointextures.png.meta │ game_bg.jpg │ game_bg.jpg.meta │ singleColor.png │ singleColor.png.meta │ startbg.jpg │ startbg.jpg.meta │ textures.plist │ textures.plist.meta │ textures.png │ textures.png.meta │ timer.plist │ timer.plist.meta │ timer.png │ timer.png.meta │ ├─library │ │ uuid-to-mtime.json │ │ │ └─imports │ ├─00 │ │ 0004d1cf-a0ad-47d8-ab17-34d3db9d35a3.json │ │ │ ├─01 │ │ 01821c38-18f1-4a1f-b1c0-dac8df856a9b.json │ │ 01857e81-46bf-45c5-b320-c38e79536090.json │ │ │ ├─02 │ │ 0297aab2-9482-4fc6-ac87-d68d50d5f2f1.json │ │ 02e525be-7b9a-4b62-ab99-ee172db2bc88.json │ │ │ ├─03 │ │ 03df0651-a189-4b05-a646-29981a15dee3.json │ │ 03e50ffb-cb1a-4afb-aede-3ac3ac31698f.json │ │ │ ├─04 │ │ 048a219b-da01-4684-8b54-aa1653c502b3.json │ │ 04e9cc79-504b-41ff-a96e-99247a6149c2.json │ │ │ ├─05 │ │ 05b6ae1c-08ba-4230-8b5b-dee0f9af12f5.json │ │ │ ├─07 │ │ 072c5ae0-8e92-4b42-a7c5-3540dcce1d2a.json │ │ 075496c2-3054-4116-b28a-6a3ce56c9b82.json │ │ │ ├─09 │ │ 09dcbf2e-7e12-4484-b274-a90a5dbea247.json │ │ │ ├─0a │ │ 0abcbfc1-d6be-4e67-bd69-493d74d32d96.json │ │ │ ├─0b │ │ 0bdf1072-1a07-4fa5-b855-b5bce89525b0.json │ │ 0bf3fea6-f31b-484d-a4dd-64971cef270b.json │ │ │ ├─0c │ │ 0c3ad56d-ba91-4ea3-a026-9b500145f231.json │ │ 0c7ca89b-b169-4b30-b1b8-29a079aa5ee3.json │ │ │ ├─0d │ │ 0d784963-d024-4ea6-a7db-03be0ad63010.json │ │ │ ├─0e │ │ 0e51b981-a3d9-49cc-aa9c-404e0efeda5a.json │ │ 0e61ade8-dc34-4136-b740-47260ebeea1e.json │ │ 0e7af90c-9613-4d76-a5f4-b12ac5730edd.json │ │ 0eb2a745-93e2-49ac-b774-0109a77961fd.json │ │ │ ├─0f │ │ 0f059f64-4f38-4b3e-b13e-984931a6e553.json │ │ 0f9ca701-1737-4790-872b-7a0bb56dec66.json │ │ │ ├─11 │ │ 11ae9247-d3ae-483f-97c1-1fdd824f486d.json │ │ │ ├─12 │ │ 124733b0-c72d-4ddb-ac93-6013a1069762.json │ │ │ ├─13 │ │ 13745ebd-1b5f-4f37-b312-3d2943b17919.json │ │ │ ├─14 │ │ 144ba423-9342-4f87-a7ff-6445353a9d84.json │ │ │ ├─17 │ │ 17692484-19b5-47ef-877e-04329f343065.json │ │ 17abdf57-fe91-42bd-9ca5-8effe2f19648.json │ │ │ ├─18 │ │ 18f693fa-b5b1-47ed-a94d-ebdd89f8fbc1.json │ │ │ ├─19 │ │ 19ccf57e-b91f-4a08-ab53-797df5a850d8.json │ │ │ ├─1a │ │ 1a32fc76-f0bd-4f66-980f-56929c0ca0b3.json │ │ │ ├─1b │ │ 1b2a844b-1d1f-4e9e-8332-ae9c394b990e.json │ │ 1b42dc08-8b1c-4686-be87-0371affccd09.json │ │ 1b5f84d9-d84c-466f-877a-66499c80168c.json │ │ │ ├─1c │ │ 1c4b1f77-a56b-4b8e-8768-fe614ca7795b.json │ │ │ ├─1d │ │ 1d08772e-5067-4fe7-a948-fe4c265239e4.json │ │ 1dbbd2a0-29b7-4b0e-b4b9-4545f9b12435.json │ │ 1dda02c4-5feb-4e65-afb8-b507f7536b15.json │ │ │ ├─1f │ │ 1f55e3be-b89b-4b79-88de-47fd31018044.json │ │ │ ├─20 │ │ 20cc7edd-f3fd-465a-a4d0-409af2f2d0cc.js │ │ 20cc7edd-f3fd-465a-a4d0-409af2f2d0cc.js.map │ │ 20d2864e-2849-4e8f-96f8-86a092fc6b54.json │ │ 20efa081-6c83-4ca6-9ebb-f22a338205ca.json │ │ │ ├─21 │ │ 216ebe51-1649-444a-a5e1-7ba1810f8e91.json │ │ │ ├─22 │ │ 22cd0693-0a6e-42bd-b506-9939a672cf34.js │ │ 22cd0693-0a6e-42bd-b506-9939a672cf34.js.map │ │ │ ├─23 │ │ 232d2782-c4bd-4bb4-9e01-909f03d6d3b9.json │ │ │ ├─24 │ │ 24362c0b-cd8a-42b4-b0b0-612e46b13c93.json │ │ 2480a30d-1189-4156-9dd9-0e8f923c1563.json │ │ 24d91079-898d-4a00-9162-5fe14ca29ae9.json │ │ 24dd0050-4696-4438-b6f2-ca1c58d7594e.json │ │ 24df14fa-d878-4d23-ab70-c9c53d4da4a7.json │ │ │ ├─25 │ │ 25501932-13d9-4350-8092-03d40ceb1f4a.json │ │ │ ├─26 │ │ 267022d1-2bf5-45af-9a4b-82e19bfba17c.json │ │ 26d9ba0f-0e83-498a-aa4d-e77f74499b9d.json │ │ 26e6fa3f-7118-4ae6-bfe7-ab5ee5508cf5.json │ │ │ ├─27 │ │ 27756ebb-3d33-44b0-9b96-e858fadd4dd4.json │ │ │ ├─28 │ │ 2805584a-6040-4424-96c3-96d103045660.json │ │ 28113253-416b-43f3-9ec6-e0a8162da5bf.json │ │ 286bfe94-1f51-4171-acf3-0d9583d95885.json │ │ 28d1bbbb-4940-470f-a102-ff086930a3b0.json │ │ │ ├─29 │ │ 29158224-f8dd-4661-a796-1ffab537140e.json │ │ │ ├─2a │ │ 2a053610-65c1-4cb7-b86e-0775eceea601.json │ │ │ ├─2b │ │ 2b18009f-267a-4264-a33b-dfd3cfc0b6fd.json │ │ 2b9e3d83-f490-478b-86f1-ef4e5d49907d.json │ │ │ ├─2c │ │ 2c937608-2562-40ea-b264-7395df6f0cea.json │ │ │ ├─2d │ │ 2d2f792f-a40c-49bb-a189-ed176a246e49.json │ │ 2d6e643a-a267-47a0-8154-dbd8f16354ac.json │ │ 2d788c1d-016d-4d67-84a4-ccc98384d993.json │ │ │ ├─2e │ │ 2e4f226c-a1b7-481e-a0ae-f888ef3d3b1b.json │ │ 2ee8e7fb-5e5c-4c9a-9714-38d8c3e578c6.json │ │ │ ├─31 │ │ 31d8962d-babb-4ec7-be19-8e9f54a4ea99.json │ │ │ ├─32 │ │ 32044bd2-481f-4cf1-a656-e2b2fb1594eb.json │ │ │ ├─33 │ │ 33893dd5-677c-4bb0-92af-ee597e1aa1c4.json │ │ 33af693e-d71c-4fde-9afe-88dc94a9f106.json │ │ │ ├─37 │ │ 37b4eef4-871c-401c-bdee-6b9adc01c331.json │ │ │ ├─3b │ │ 3b7d4fe9-3228-4294-99e3-0a390c422252.json │ │ │ ├─3c │ │ 3c324ef3-72e1-4b13-92b1-c6fae373a5ba.json │ │ 3c8a767b-42fa-4515-915c-38007be1049f.json │ │ │ ├─40 │ │ 40176488-8c85-4153-a8ce-1ae91710cf59.json │ │ 40495743-9f8f-4800-9899-66be731160df.json │ │ │ ├─41 │ │ 410fb916-8721-4663-bab8-34397391ace7.json │ │ │ ├─42 │ │ 427469c9-20f7-437c-945e-572fa3297acf.json │ │ 42bbc18a-0c68-4256-86c0-2fb447967da1.json │ │ │ ├─43 │ │ 430f802a-2866-40fe-919d-8ca8ea6e5676.json │ │ 43cb34c2-e40e-48a8-97e7-2ceeeb4a42eb.json │ │ │ ├─45 │ │ 456d1b90-1c41-4cd9-b7ef-aac447a7d476.json │ │ │ ├─46 │ │ 46994b4c-e334-4bdb-9966-5aa49c63b10e.json │ │ 46ff724b-9704-40a8-a728-9eb6eb5ca6d7.json │ │ │ ├─48 │ │ 488d9c1c-f5f6-4d16-ae16-344c3df2e63d.json │ │ │ ├─49 │ │ 491b8a0a-4d70-4997-96d4-e7982d0e1a63.json │ │ │ ├─4a │ │ 4a37dd57-78cd-4cec-aad4-f11a73d12b63.json │ │ 4a913230-31ce-4f9c-a9ab-68235d744c83.json │ │ 4af5e771-080d-4880-8ec6-2dc4f67995ed.js │ │ 4af5e771-080d-4880-8ec6-2dc4f67995ed.js.map │ │ │ ├─4b │ │ 4bf4c93a-d991-4949-a482-881f241e4141.json │ │ 4bfccf2c-a16a-41a5-8f54-bd4bfbe19e20.js │ │ 4bfccf2c-a16a-41a5-8f54-bd4bfbe19e20.js.map │ │ │ ├─4d │ │ 4d46a583-b2bf-4562-b699-f3680c780bfe.json │ │ │ ├─4e │ │ 4e4e81b6-df38-4854-99dc-0a674ef0f2b5.json │ │ │ ├─4f │ │ 4f32ff9f-0e4b-4c57-a034-89bc04432731.json │ │ 4fa9903b-7d83-447c-8d3d-cb8eb4461dde.json │ │ │ ├─51 │ │ 51e2c28e-adf5-4e15-b2fd-8c82bf7e5953.json │ │ 51fdd00f-5ded-4399-b54f-c214f5d979f6.json │ │ │ ├─53 │ │ 533b30b8-8dd0-40f5-8557-52e0fd88042e.json │ │ │ ├─54 │ │ 5400c248-8d8b-4118-948f-81e2ec367c7e.json │ │ 54a605ee-9169-41fa-af39-f3981e5f1f8c.json │ │ │ ├─55 │ │ 559d3fe0-dc90-45a5-9993-1afec6785d88.json │ │ │ ├─56 │ │ 56283616-8081-4bb2-a8c8-8570ecff53a6.json │ │ 5694850a-e9f3-4870-83d1-623c6ed25bf9.json │ │ │ ├─57 │ │ 572dc32c-4434-4835-98b0-88f7ffa5dc90.json │ │ │ ├─59 │ │ 5965ffac-69da-4b55-bcde-9225d0613c28.json │ │ 59861bb3-ff57-41c9-a255-b9182c03047f.json │ │ 59c940d6-5384-4f29-ad18-11cda8fc43aa.json │ │ │ ├─5c │ │ 5c3bb932-6c3c-468f-88a9-c8c61d458641.json │ │ │ ├─5d │ │ 5d6c4aee-f038-4aea-9857-ce97168ed4c4.json │ │ │ ├─5e │ │ 5e1c3913-a3e7-480e-a203-6a0fd274ec7e.json │ │ │ ├─5f │ │ 5fe5dcaa-b513-4dc5-a166-573627b3a159.json │ │ │ ├─60 │ │ 600c098a-ab62-4154-b9d8-666aab617d30.json │ │ │ ├─61 │ │ 61accde8-fde1-402b-ab58-bdd28a3942e6.json │ │ 61aeb05b-3b32-452b-8eed-2b76deeed554.json │ │ │ ├─63 │ │ 635335fc-42e5-43f5-b0be-97460d5686b5.json │ │ │ ├─64 │ │ 64dbebaa-3b5b-431f-a57f-dcf131530f35.json │ │ │ ├─65 │ │ 6533f1f0-9f14-4d12-8280-7795e52f14e9.json │ │ 656fc88c-21df-4d04-98f3-fbdc764025fb.json │ │ 6572b388-40aa-4468-8bee-c861eee04a25.json │ │ │ ├─66 │ │ 6694055d-5d1e-437b-9ccc-14f0b0147d64.json │ │ 66cbd9ed-1825-4b25-9682-bf94641784f7.json │ │ │ ├─67 │ │ 6741d111-7225-47e8-b609-9782145368db.json │ │ 67b03c3d-dc4d-485b-8204-c57894f449d9.json │ │ 67e68bc9-dad5-4ad9-a2d8-7e03d458e32f.json │ │ │ ├─68 │ │ 6827c9a9-7400-47f8-9b91-82b413347226.json │ │ 6827ca32-0107-4552-bab2-dfb31799bb44.json │ │ 682ddab7-e1ff-414f-b88d-abc2b3f11763.json │ │ │ ├─69 │ │ 69da6bdc-7062-44a1-90fc-0b6c635a1e4e.js │ │ 69da6bdc-7062-44a1-90fc-0b6c635a1e4e.js.map │ │ │ ├─6c │ │ 6c0051df-32ee-4fa6-b474-730cf9e6788b.js │ │ 6c0051df-32ee-4fa6-b474-730cf9e6788b.js.map │ │ 6c118523-5e25-4f0d-b567-2991124e7457.json │ │ 6c8a93d9-b2fe-438f-b279-e0bf0eae16d9.json │ │ 6cb54e84-34bc-4922-949c-2c66e9d36196.json │ │ │ ├─6d │ │ 6d7f789f-25c8-4fec-bca6-af1472c43469.json │ │ 6df372f2-5cb4-48da-adce-172889222312.json │ │ │ ├─6e │ │ 6e299c95-2a3d-4dd3-9325-b2ed01cdf301.json │ │ │ ├─6f │ │ 6f2e4942-4c66-4494-811b-e525737d59b2.json │ │ │ ├─70 │ │ 70ae7bf2-0452-4e6f-bae3-740cd4589a33.json │ │ │ ├─71 │ │ 7164f049-b7d6-478d-998f-50d717232a71.json │ │ 7168db62-0edc-42e5-be5d-682cf6c4a165.json │ │ 71c79991-d8b2-4f24-a925-c40fe899c367.json │ │ │ ├─72 │ │ 72a723f9-ff5d-4c51-a489-df9bea196a74.json │ │ │ ├─73 │ │ 732de79f-ab8f-415f-9778-2cd265015725.json │ │ 737ababa-1a14-4243-885b-93e49fbe4bbc.js │ │ 737ababa-1a14-4243-885b-93e49fbe4bbc.js.map │ │ 739837b6-1850-4236-8607-26c1b6e513be.json │ │ 73a32fb7-2c82-4c85-9345-907c97db0de9.json │ │ │ ├─74 │ │ 7428782d-0a10-4fd3-88dd-97d08ec74c8d.json │ │ 744909da-1944-4ff8-a6c1-c534ca716fa8.json │ │ 74da5f94-89c9-4ad1-9d35-d187db055157.json │ │ │ ├─75 │ │ 75f668ca-95a5-435c-9eda-2bebf4fde8e0.json │ │ │ ├─76 │ │ 7626cb3b-184f-48eb-b186-700eaec22e95.json │ │ │ ├─77 │ │ 77fdf1a0-c06c-4621-8890-6c42b3c7e81c.json │ │ │ ├─78 │ │ 785a442c-3ceb-45be-a46e-7317f625f3b9.json │ │ 78dcac94-d4b4-4d54-9d54-125f7905fffe.json │ │ │ ├─79 │ │ 79a836c2-efa1-4f55-9d83-e7e01cc5fa7e.json │ │ 79cc5f08-fbce-47ec-822c-3c3eb5e30446.json │ │ │ ├─7a │ │ 7a38dcd7-81ec-418c-9d2d-d7e4de90456b.json │ │ 7ac60e40-4eeb-4517-aeeb-04cbc6be0dc9.json │ │ │ ├─7d │ │ 7d4ffd94-42d6-4045-9db7-a744229adfc4.json │ │ 7d9784a9-977e-4f10-8da2-927c4375d82b.json │ │ 7de03a80-4457-438d-95a7-3e7cdffd6086.json │ │ │ ├─7e │ │ 7e54bfbd-abf1-4b07-848d-ed6be5dd385c.json │ │ 7e67aa7f-1a25-4a89-a67b-51988117ae87.json │ │ │ ├─7f │ │ 7f09d7a1-59bb-4067-bff9-0d801340056a.json │ │ 7f2109fa-9a0f-41bc-89fe-7ecada6ffb46.json │ │ 7f4833b4-635c-4cf1-a0ee-f4dfd5592ac9.json │ │ │ ├─80 │ │ 8034aa6b-550f-474e-9533-9b47aa0f67fa.json │ │ 809a6c37-c698-4f2c-b17e-b11280535f77.json │ │ │ ├─81 │ │ 81d43d3f-aea2-432a-8c4d-7c372b2e8c61.json │ │ │ ├─82 │ │ 82dec17b-cc45-4121-b2ae-50526bf0da75.json │ │ 82dfd553-ef79-44b8-8061-71a0b0b14784.json │ │ │ ├─83 │ │ 83df0103-1a4f-4ab6-a8ce-da84de250baf.json │ │ │ ├─84 │ │ 849190fe-c4f3-4071-9ff2-f028eccc6fd1.json │ │ │ ├─85 │ │ 8539a433-6e37-4e72-8ee8-25199c989f05.json │ │ │ ├─86 │ │ 864c06d9-8e4f-4699-92e0-3641a17a207f.json │ │ 8672ddd8-2ed0-47a7-8a67-54f9bc694fd5.json │ │ 86b1b7c9-e881-4b2f-8359-f58377be70df.json │ │ 86f11e5c-0766-4bcf-b5e4-1b205070130a.json │ │ 86fe4526-9483-4c85-b7c9-b3a4ec696d58.json │ │ │ ├─88 │ │ 88d3f1d1-528c-46e5-b32f-310801a8e6ac.json │ │ 88e79fd5-96b4-4a77-a1f4-312467171014.json │ │ │ ├─89 │ │ 89e7ec20-0962-44ca-b4f7-58afd0d8d1de.json │ │ │ ├─8a │ │ 8a8a9123-067c-4864-8f0b-da0fa58c7a09.json │ │ │ ├─8b │ │ 8b3f724a-58a2-4c3e-8665-8d1b699a987c.json │ │ 8be2ef75-eb72-4325-aa21-ae207cd38ced.json │ │ │ ├─8c │ │ 8c5001fd-07ee-4a4b-a8a0-63e15195e94d.json │ │ 8c784fc2-508c-4cb6-894e-4b65681eed5c.json │ │ 8c877f6b-5c4c-4ebf-9751-7e0195bcbdba.json │ │ 8cdb44ac-a3f6-449f-b354-7cd48cf84061.json │ │ │ ├─8d │ │ 8d70fff5-61e4-41a8-bb57-1937dce06b21.json │ │ 8d8fe451-16b7-43a6-86eb-9dd7148ea07c.json │ │ │ ├─8f │ │ 8fbc3705-06bc-48a8-b67e-adb34c8d2d35.json │ │ │ ├─90 │ │ 90004ad6-2f6d-40e1-93ef-b714375c6f06.json │ │ │ ├─92 │ │ 9292c58e-45ca-4938-ac17-8088f8ef2d17.json │ │ │ ├─93 │ │ 93974307-dddb-4e1d-871b-5069a0de6fd9.json │ │ │ ├─95 │ │ 9568e1ca-5ab7-411e-9b0d-b0e9983bfe91.js │ │ 9568e1ca-5ab7-411e-9b0d-b0e9983bfe91.js.map │ │ │ ├─96 │ │ 96083d03-c332-4a3f-9386-d03e2d19e8ee.json │ │ 96123ee6-d3ed-4ced-8515-85e218046884.json │ │ │ ├─97 │ │ 972b9a4d-47ee-4c74-b5c3-61d8a69bc29f.json │ │ │ ├─98 │ │ 983047c6-a680-4748-9ce6-f39301500861.json │ │ │ ├─99 │ │ 99136961-8bbe-4c5e-b564-505a38657a21.json │ │ │ ├─9a │ │ 9a424810-bfbf-4ca0-9e0b-dd08f789db4c.json │ │ │ ├─9b │ │ 9bbda31e-ad49-43c9-aaf2-f7d9896bac69.json │ │ │ ├─9d │ │ 9d1ca96e-8016-41ad-bee1-51056da1a91a.js │ │ 9d1ca96e-8016-41ad-bee1-51056da1a91a.js.map │ │ 9daee274-564f-4402-a23d-b73f0aff7f51.json │ │ 9df3582b-c5aa-4569-ae31-5df02081671d.json │ │ │ ├─9e │ │ 9ed14bf6-a37e-4942-bab6-75f37fd66e3a.json │ │ │ ├─9f │ │ 9fa7abaf-660d-4f18-952d-997fedfa9271.json │ │ 9fe96c97-616b-4be5-8856-d4cf98fea936.json │ │ │ ├─a1 │ │ a127358b-7c77-4ca9-8c9f-6d5318961079.json │ │ │ ├─a2 │ │ a23235d1-15db-4b95-8439-a2e005bfff91.json │ │ a29eef79-eeb2-4a38-a168-d21bd37e3998.json │ │ a2f88b52-8557-4f10-9346-03e616499968.json │ │ │ ├─a5 │ │ a57528c9-ff21-4770-9755-f2bbab4dc529.json │ │ │ ├─a6 │ │ a6c9935c-ec1b-428a-b2cc-ce83b3a98b49.json │ │ a6f2b813-4d64-4515-be55-7be5e365f84f.json │ │ │ ├─a7 │ │ a7fe1459-80b0-4fce-979a-7a6d1808c962.json │ │ │ ├─a8 │ │ a8445764-7300-4090-a67e-ee101e9278d3.json │ │ │ ├─a9 │ │ a9ed75e3-8e71-46ee-9d9c-75cca81fd5da.json │ │ │ ├─ab │ │ abe14db1-c921-4bea-9560-16b6cfccb47d.json │ │ │ ├─ac │ │ ac7f2e7f-cdeb-4bb0-a947-b43f7fcc19e0.json │ │ │ ├─ad │ │ ad09ac88-3201-4188-8771-21448bb848a1.json │ │ │ ├─ae │ │ ae428ba9-dd0d-41f0-9069-30d9e71407fc.json │ │ ae58eac7-a12e-45e5-9b0e-f20ddb8dde02.json │ │ │ ├─af │ │ afe36ec2-b53a-4048-92dc-bad6bc374c1d.json │ │ │ ├─b1 │ │ b1455a43-9865-40e7-b6e1-366e332962d4.json │ │ b19323a4-50ee-4b39-b830-75517ae143f5.json │ │ │ ├─b2 │ │ b23ee855-4052-4dbb-a70d-26ae11060370.json │ │ │ ├─b3 │ │ b3e846ce-74fe-47a8-8e97-8de07f5c8a63.json │ │ │ ├─b4 │ │ b43014f4-c80d-4d65-91e6-207ca3f7dcc1.json │ │ │ ├─b5 │ │ b575ee15-9c6a-42b7-b333-50e6edb58a85.json │ │ │ ├─b6 │ │ b63d7b96-2120-45f9-ab8f-9a1ce5cafa93.json │ │ b6d24188-4d34-40dc-a4c8-300d8708c3c9.json │ │ │ ├─b7 │ │ b71c29cd-d128-470c-b5f6-a7da4223c03b.json │ │ b727dec4-3622-4410-b50e-519847cb78e9.json │ │ b794eefa-7d9b-4391-a5f1-3eb6b0f30414.json │ │ │ ├─b8 │ │ b855f513-fb18-47ed-ae03-1ce5a4b39e1b.json │ │ │ ├─b9 │ │ b97a8f6f-ee30-4065-b98f-88e1c65bb7c4.json │ │ │ ├─ba │ │ ba99ccbe-4ea0-47e2-9481-e365a4edb9f9.json │ │ badd5ffc-055d-41e8-8e9a-1c857f63c252.json │ │ │ ├─bb │ │ bb0de968-7717-4292-a3ed-ce70ac82cec3.json │ │ │ ├─bd │ │ bda0ef09-db4d-4228-ac65-c7b3297163bc.json │ │ │ ├─be │ │ be0f5b0c-b541-4d97-864b-99d4f4d4c362.json │ │ │ ├─bf │ │ bf0a434c-84dd-4a8e-a08a-7a36f180cc75.json │ │ │ ├─c2 │ │ c20a311f-c967-4121-85f8-fef8d07b4623.json │ │ c24be583-788e-4c8f-9ba8-07a882828313.js │ │ c24be583-788e-4c8f-9ba8-07a882828313.js.map │ │ c2550ec9-9a23-4468-a5eb-b8f1433768dc.json │ │ c2a96c29-680e-4b2d-bedd-10210919a6c1.json │ │ │ ├─c3 │ │ c3312362-a6f4-422e-96a4-58c2dfc7f138.json │ │ c37f6938-70ca-43d7-b627-468f3c3d97a1.json │ │ c3a4c72f-662a-45a1-a781-6b2bc29f55f7.json │ │ c3ac27cf-1902-4e52-a079-16144a0988fe.json │ │ │ ├─c5 │ │ c5e5856f-0015-4060-8388-a1b035371f9b.json │ │ │ ├─c6 │ │ c609ed00-b89b-413f-8014-7de1420df0c9.json │ │ c62e2941-a4ce-4794-addd-80172244bfff.json │ │ c6650e6d-eee1-4285-9782-b2824e396c73.json │ │ │ ├─c8 │ │ c8939c32-8a6c-4e61-b4b1-03903b7c4189.json │ │ │ ├─c9 │ │ c9e2668e-f384-4d9e-9f00-9a776f305e93.json │ │ c9fa51ff-3f01-4601-8f80-325d1b11dab7.json │ │ │ ├─ca │ │ ca8401fe-ad6e-41a8-bd46-8e3e4e9945be.json │ │ ca8eb5f0-4971-4fe4-b043-70bd3e8852e8.json │ │ │ ├─cc │ │ cc0a5259-03ef-4af4-937c-ae5eed9bf4da.json │ │ cca9d123-df61-4770-b32b-356312eca6be.json │ │ │ ├─cd │ │ cd33edea-55f5-46c2-958d-357a01384a36.json │ │ │ ├─ce │ │ ce15d8b7-ace8-4b6e-af96-6ba207fcb646.json │ │ cef0d325-c2d1-494b-98dd-6122288a1da3.json │ │ │ ├─cf │ │ cf8d1692-3353-44df-b824-f6cf10f8b6a1.json │ │ │ ├─d1 │ │ d1b8be49-b0a0-435c-83b7-552bed4bbe35.json │ │ │ ├─d2 │ │ d2c3a687-a636-4a0a-89df-d3b7e5955f5b.json │ │ │ ├─d3 │ │ d3a88e92-7f7d-4fee-ac42-20585efc0efa.json │ │ │ ├─d4 │ │ d46576a2-9546-4479-88d9-15d231e6303e.json │ │ d4fa770e-bad7-4579-98b3-586bfcb77d63.json │ │ │ ├─d9 │ │ d932f480-c4a8-49d6-8cda-a03143e51115.json │ │ │ ├─da │ │ daed04b0-f944-4d6d-b259-e5a314026fa9.json │ │ │ ├─dc │ │ dc0368d4-85a3-4347-9074-c5c0ab836f40.json │ │ dc049123-db43-4e82-8b18-fb47d3e6e8e1.json │ │ │ ├─df │ │ df5cd4b4-43a1-4b36-b361-ea0adbf719c2.json │ │ dfbc7635-b601-4bcb-8274-15dc8f9d92e3.json │ │ │ ├─e0 │ │ e06565e1-e3d4-4c2e-9986-cd913caf2999.json │ │ e084ee88-be20-4d86-bab3-42441eb73fde.json │ │ │ ├─e3 │ │ e39dade0-c7a8-4a27-9578-ad7f965fb7c7.json │ │ │ ├─e4 │ │ e4ad804a-aaeb-4479-b369-3a9ae26f6f80.json │ │ │ ├─e7 │ │ e7aba14b-f956-4480-b254-8d57832e273f.json │ │ e7bbde70-d98b-48cd-9335-7acb5764f593.json │ │ │ ├─e8 │ │ e863428c-a983-48c7-b0d0-461920c514b7.json │ │ e8b93313-2d56-401a-bf4f-d70c1280413b.json │ │ e8da5085-2e13-4166-8f70-503e153cb594.json │ │ │ ├─e9 │ │ e9ec654c-97a2-4787-9325-e6a10375219a.json │ │ │ ├─ea │ │ eacda806-39a0-4be9-bd2c-c78a8acf17dd.json │ │ eaf95c36-27f6-4dd1-8d38-8efec9177ed2.json │ │ │ ├─ef │ │ ef4e8995-c67d-4e7f-a8d4-269b1892ed7e.json │ │ efc6db68-0ffd-4e86-8327-63ff3cf0875b.json │ │ │ ├─f0 │ │ f0048c10-f03e-4c97-b9d3-3506e1d58952.json │ │ f078bd13-a356-4cc4-9291-1dfd9090eeca.json │ │ │ ├─f1 │ │ f1068e87-c6b5-4a2a-8ea4-3c093ae9f95e.json │ │ │ ├─f3 │ │ f34ee3be-c6d1-4bf7-8c6b-4f9a981808d1.json │ │ f3503b44-f03d-4a53-980b-f2406b963696.json │ │ │ ├─f4 │ │ f44cedd7-bea4-46b1-a973-14cb08cd786f.js │ │ f44cedd7-bea4-46b1-a973-14cb08cd786f.js.map │ │ │ ├─f5 │ │ f5f60557-5de7-4edc-abb8-922cdede8809.json │ │ │ ├─f6 │ │ f6d562e3-022e-411c-8306-7920d1740611.json │ │ │ ├─f7 │ │ f770949d-88c7-43bd-9df2-44a8c330375c.json │ │ │ ├─fa │ │ fa40b79d-8f7f-4a70-ac1e-cfa9ea76796f.json │ │ fab2f368-19fc-4e89-bc06-855fd23991f1.json │ │ │ ├─fc │ │ fc121c24-fed6-4a6e-930c-3df392d4c85f.js │ │ fc121c24-fed6-4a6e-930c-3df392d4c85f.js.map │ │ fc97d1ac-acd2-4b62-8239-b47a2ce81af0.json │ │ │ ├─fd │ │ fd73e7ca-d72f-4228-bbfe-d897ab8d3353.js │ │ fd73e7ca-d72f-4228-bbfe-d897ab8d3353.js.map │ │ │ ├─fe │ │ fe7528b1-e993-4d58-b738-a1554922de5e.json │ │ │ └─ff │ ffe33363-ee01-4e41-bdd0-38849e6d56f6.json │ ├─local │ │ assets.json │ │ console.json │ │ hierarchy.json │ │ layout.windows.json │ │ local.json │ │ node-library.json │ │ scene.json │ │ │ └─logs │ project.log │ ├─packages ├─screenshots │ alipay2.jpg │ fish.gif │ fish.gif.meta │ qqgroup.JPG │ wechatpay2.jpg │ ├─settings │ builder.json │ builder.panel.json │ project.json │ └─temp └─quick-scripts └─assets └─Script Bullet.js Bullet.js.map CoinController.js CoinController.js.map Coins.js Coins.js.map Fish.js Fish.js.map FishType.js FishType.js.map FluxayEffect.js FluxayEffect.js.map FluxayFrag.js FluxayFrag.js.map Game.js Game.js.map Net.js Net.js.map NumUp.js NumUp.js.map WaterWaveEffect.js WaterWaveEffect.js.map WaterWaveFrag.js WaterWaveFrag.js.map Weapon.js Weapon.js.map
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值