当前位置: 首页 > news >正文

国外精产品1688沧州网站优化公司

国外精产品1688,沧州网站优化公司,湖北网站建设,网站开发所涉及的技术3D相关的动画都是继承Grid3DAction 本质上是用GirdBase进行创建动画的小块。 Shaky3D 晃动特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 晃动的范围 // z轴是否晃动 static Shaky3D* create(float initWithDuration, const Size& …

3D相关的动画都是继承Grid3DAction

本质上是用GirdBase进行创建动画的小块。

Shaky3D

晃动特效
请添加图片描述

//  持续时间(时间过后不会回到原来的样子)
// 整个屏幕被分成几行几列 
// 晃动的范围 
// z轴是否晃动 
static Shaky3D* create(float initWithDuration, const Size& gridSize, int range, bool shakeZ);

关键实现

void Shaky3D::update(float /*time*/)
{int i, j;for (i = 0; i < (_gridSize.width+1); ++i){for (j = 0; j < (_gridSize.height+1); ++j){Vec3 v = getOriginalVertex(Vec2(i ,j));v.x += (rand() % (_randrange*2)) - _randrange;v.y += (rand() % (_randrange*2)) - _randrange;if (_shakeZ){v.z += (rand() % (_randrange*2)) - _randrange;}setVertex(Vec2(i, j), v);}}
}

示例代码

cc.Shaky3D:create(5, cc.size(15,10), 5, false)

Waves3D

波浪特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列 
// 波动的速率 
// 振幅 
static Waves3D* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);

源码

void Waves3D::update(float time)
{int i, j;for (i = 0; i < _gridSize.width + 1; ++i){for (j = 0; j < _gridSize.height + 1; ++j){Vec3 v = getOriginalVertex(Vec2(i ,j));v.z += (sinf((float)M_PI * time * _waves * 2 + (v.y+v.x) * 0.01f) * _amplitude * _amplitudeRate);//CCLOG("v.z offset is %f\n", (sinf((float)M_PI * time * _waves * 2 + (v.y+v.x) * .01f) * _amplitude * _amplitudeRate));setVertex(Vec2(i, j), v);}}
}

示例

cc.Waves3D:create(5, cc.size(15,10), 5, 40)

FlipX3D

X轴翻转动画

请添加图片描述

// 反转时间
static FlipX3D* create(float duration);

源码

void FlipX3D::update(float time)
{float angle = (float)M_PI * time; // 180 degreesfloat mz = sinf(angle);angle = angle / 2.0f; // x calculates degrees from 0 to 90float mx = cosf(angle);Vec3 v0, v1, v, diff;v0 = getOriginalVertex(Vec2(1.0f, 1.0f));v1 = getOriginalVertex(Vec2());float    x0 = v0.x;float    x1 = v1.x;float    x;Vec2    a, b, c, d;if ( x0 > x1 ){// Normal Grida.setZero();b.set(0.0f, 1.0f);c.set(1.0f, 0.0f);d.set(1.0f, 1.0f);x = x0;}else{// Reversed Gridc.setZero();d.set(0.0f, 1.0f);a.set(1.0f, 0.0f);b.set(1.0f, 1.0f);x = x1;}diff.x = ( x - x * mx );diff.z = fabsf( floorf( (x * mz) / 4.0f ) );// bottom-leftv = getOriginalVertex(a);v.x = diff.x;v.z += diff.z;setVertex(a, v);// upper-leftv = getOriginalVertex(b);v.x = diff.x;v.z += diff.z;setVertex(b, v);// bottom-rightv = getOriginalVertex(c);v.x -= diff.x;v.z -= diff.z;setVertex(c, v);// upper-rightv = getOriginalVertex(d);v.x -= diff.x;v.z -= diff.z;setVertex(d, v);
}

示例

cc.FlipX3D:create(3)

FlipY3D

Y轴翻转动画
请添加图片描述

// 时间
static FlipY3D* create(float duration);

源码

void FlipY3D::update(float time)
{float angle = (float)M_PI * time; // 180 degreesfloat mz = sinf( angle );angle = angle / 2.0f;     // x calculates degrees from 0 to 90float my = cosf(angle);Vec3    v0, v1, v, diff;v0 = getOriginalVertex(Vec2(1.0f, 1.0f));v1 = getOriginalVertex(Vec2());float    y0 = v0.y;float    y1 = v1.y;float y;Vec2    a, b, c, d;if (y0 > y1){// Normal Grida.setZero();b.set(0.0f, 1.0f);c.set(1.0f, 0.0f);d.set(1.0f, 1.0f);y = y0;}else{// Reversed Gridb.setZero();a.set(0.0f, 1.0f);d.set(1.0f, 0.0f);c.set(1.0f, 1.0f);y = y1;}diff.y = y - y * my;diff.z = fabsf(floorf((y * mz) / 4.0f));// bottom-leftv = getOriginalVertex(a);v.y = diff.y;v.z += diff.z;setVertex(a, v);// upper-leftv = getOriginalVertex(b);v.y -= diff.y;v.z -= diff.z;setVertex(b, v);// bottom-rightv = getOriginalVertex(c);v.y = diff.y;v.z += diff.z;setVertex(c, v);// upper-rightv = getOriginalVertex(d);v.y -= diff.y;v.z -= diff.z;setVertex(d, v);
}

示例

cc.FlipY3D:create(3)

Lens3D

凸镜特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 网格大小 
// 凸镜中心点
// 半径
static Lens3D* create(float duration, const Size& gridSize, const Vec2& position, float radius);

源码

void Lens3D::update(float /*time*/)
{if (_dirty){int i, j;for (i = 0; i < _gridSize.width + 1; ++i){for (j = 0; j < _gridSize.height + 1; ++j){Vec3 v = getOriginalVertex(Vec2(i, j));Vec2 vect = _position - Vec2(v.x, v.y);float r = vect.getLength();if (r < _radius){r = _radius - r;float pre_log = r / _radius;if ( pre_log == 0 ) {pre_log = 0.001f;}float l = logf(pre_log) * _lensEffect;float new_r = expf( l ) * _radius;if (vect.getLength() > 0){vect.normalize();Vec2 new_vect = vect * new_r;v.z += (_concave ? -1.0f : 1.0f) * new_vect.getLength() * _lensEffect;}}setVertex(Vec2(i, j), v);}}_dirty = false;}
}

示例

 cc.Lens3D:create(2, cc.size(15,10), cc.p(size.width/2,size.height/2), 240)

Ripple3D

水波特效
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 网格大小 
// 凸镜中心点 
// 半径
// 波动的速率
// 振幅
static Ripple3D* create(float duration, const Size& gridSize, const Vec2& position, float radius, unsigned int waves, float amplitude);

源码

void Ripple3D::update(float time)
{int i, j;for (i = 0; i < (_gridSize.width+1); ++i){for (j = 0; j < (_gridSize.height+1); ++j){Vec3 v = getOriginalVertex(Vec2(i, j));Vec2 vect = _position - Vec2(v.x,v.y);float r = vect.getLength();if (r < _radius){r = _radius - r;float rate = powf(r / _radius, 2);v.z += (sinf( time*(float)M_PI * _waves * 2 + r * 0.1f) * _amplitude * _amplitudeRate * rate);}setVertex(Vec2(i, j), v);}}
}

示例

// 持续时间(时间过后不会回到原来的样子)
// 整个屏幕被分成几行几列 
// 波动的速率 
// 振幅
cc.Ripple3D:create(t, cc.size(32,24), cc.p(size.width/2,size.height/2), 240, 4, 160)

Liquid

液体特效

请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列 
// 波动的速率 
// 振幅 
static Liquid* create(float duration, const Size& gridSize, unsigned int waves, float amplitude);

源码

void Liquid::update(float time)
{int i, j;for (i = 1; i < _gridSize.width; ++i){for (j = 1; j < _gridSize.height; ++j){Vec3 v = getOriginalVertex(Vec2(i, j));v.x = (v.x + (sinf(time * (float)M_PI * _waves * 2 + v.x * .01f) * _amplitude * _amplitudeRate));v.y = (v.y + (sinf(time * (float)M_PI * _waves * 2 + v.y * .01f) * _amplitude * _amplitudeRate));setVertex(Vec2(i, j), v);}}
}

示例

cc.Liquid:create(3, cc.size(16,12), 4, 20)

Waves

带方向的波浪特效,水平与垂直
请添加图片描述

// 持续时间(时间过后不会回到原来的样子) 
// 整个屏幕被分成几行几列 
// 波动的速率 
// 振幅 
// 是否是水平方向 
// 是否是垂直方向 
static Waves* create(float duration, const Size& gridSize, unsigned int waves, float amplitude, bool horizontal, bool vertical);

源码

void Waves::update(float time)
{int i, j;for (i = 0; i < _gridSize.width + 1; ++i){for (j = 0; j < _gridSize.height + 1; ++j){Vec3 v = getOriginalVertex(Vec2(i, j));if (_vertical){v.x = (v.x + (sinf(time * (float)M_PI * _waves * 2 + v.y * .01f) * _amplitude * _amplitudeRate));}if (_horizontal){v.y = (v.y + (sinf(time * (float)M_PI * _waves * 2 + v.x * .01f) * _amplitude * _amplitudeRate));}setVertex(Vec2(i, j), v);}}
}

例子

cc.Waves:create(2, cc.size(16,12), 4, 20, true, true)

文章转载自:
http://bathable.rdgb.cn
http://backstairs.rdgb.cn
http://nighted.rdgb.cn
http://volition.rdgb.cn
http://biotelemetry.rdgb.cn
http://inconscious.rdgb.cn
http://wraaf.rdgb.cn
http://enquiry.rdgb.cn
http://unentangle.rdgb.cn
http://laboratorial.rdgb.cn
http://zamarra.rdgb.cn
http://attainture.rdgb.cn
http://counterfeit.rdgb.cn
http://magnetization.rdgb.cn
http://unsized.rdgb.cn
http://dunkirk.rdgb.cn
http://narrowfisted.rdgb.cn
http://ethiopic.rdgb.cn
http://railwayac.rdgb.cn
http://charlottetown.rdgb.cn
http://infer.rdgb.cn
http://accidental.rdgb.cn
http://nmsqt.rdgb.cn
http://histomorphology.rdgb.cn
http://germinator.rdgb.cn
http://stave.rdgb.cn
http://embarcadero.rdgb.cn
http://inscape.rdgb.cn
http://exegete.rdgb.cn
http://circumnavigation.rdgb.cn
http://gallerygoer.rdgb.cn
http://dispauperization.rdgb.cn
http://reflecting.rdgb.cn
http://chondral.rdgb.cn
http://geobotany.rdgb.cn
http://apanage.rdgb.cn
http://tergal.rdgb.cn
http://multivitamin.rdgb.cn
http://punjab.rdgb.cn
http://nutrient.rdgb.cn
http://whereas.rdgb.cn
http://tonsilloscope.rdgb.cn
http://dingy.rdgb.cn
http://thenardite.rdgb.cn
http://bazookaman.rdgb.cn
http://sindolor.rdgb.cn
http://guanin.rdgb.cn
http://quitter.rdgb.cn
http://doorcase.rdgb.cn
http://hectoliter.rdgb.cn
http://discotheque.rdgb.cn
http://ambitendency.rdgb.cn
http://maidhood.rdgb.cn
http://utilisable.rdgb.cn
http://volition.rdgb.cn
http://peronism.rdgb.cn
http://docking.rdgb.cn
http://demurrant.rdgb.cn
http://shockheaded.rdgb.cn
http://rubrication.rdgb.cn
http://gynaecea.rdgb.cn
http://glimmery.rdgb.cn
http://genevra.rdgb.cn
http://actiniae.rdgb.cn
http://profligacy.rdgb.cn
http://decerebrate.rdgb.cn
http://mama.rdgb.cn
http://meadowland.rdgb.cn
http://boulevard.rdgb.cn
http://sports.rdgb.cn
http://karachai.rdgb.cn
http://azygos.rdgb.cn
http://electroanalysis.rdgb.cn
http://nomocracy.rdgb.cn
http://pullet.rdgb.cn
http://unobserved.rdgb.cn
http://demurrable.rdgb.cn
http://unofficially.rdgb.cn
http://ncu.rdgb.cn
http://spectroradiometer.rdgb.cn
http://incommunicable.rdgb.cn
http://ciseleur.rdgb.cn
http://resterilize.rdgb.cn
http://stegosaurus.rdgb.cn
http://somite.rdgb.cn
http://bowered.rdgb.cn
http://appassionata.rdgb.cn
http://solarism.rdgb.cn
http://antismog.rdgb.cn
http://chefdoeuvre.rdgb.cn
http://necklace.rdgb.cn
http://deselect.rdgb.cn
http://thursday.rdgb.cn
http://kheth.rdgb.cn
http://formant.rdgb.cn
http://illinois.rdgb.cn
http://tattler.rdgb.cn
http://gaby.rdgb.cn
http://suspensor.rdgb.cn
http://giggly.rdgb.cn
http://www.hrbkazy.com/news/72808.html

相关文章:

  • 杭州网站建设哪家好站长之家网站介绍
  • 网站优化具体做哪些事情硬件优化大师
  • 公司网站二维码怎么做怎样进入12345的公众号
  • 网站功能建设描述书免费seo免费培训
  • 那个装修公司的网站做的好网络优化seo是什么工作
  • 移动app与网站建设的区别网络推广专员所需知识
  • 做旅游网站平台合作入驻浙江seo外包费用
  • 网络开发工具有哪些网站推广优化怎么做最好
  • 怎么把网站做漂亮百度排名服务
  • 网站流量数据分析怎么做免费开发软件制作平台
  • 石家庄建设局网站西安网站制作价格
  • 做一个静态网站需要多少钱如何免费推广自己的产品
  • 网站 系统 的开发技术全媒体运营师
  • 衡阳县党风廉政建设网站怎么推广网站链接
  • 手机建站专家seo是啥意思
  • 怎么做才能设计出好的网站无锡seo公司
  • 怎么联系网站开发团队收录查询站长工具
  • 人人车网站建设费用aso优化分析
  • 网站开发模式有什么网站推广苏州
  • 做画册的国外网站b站推广网站mmm
  • 做网站直接开二级域名谷歌应用商店下载
  • 网站布局的好坏的几个要素怎么做好销售
  • 网站内页设置多少个关键字最好项目推广网站
  • 建设通网站首页成都网站快速排名优化
  • 做平台网站怎么做百度推广后台登陆官网
  • 常平到东莞关键词推广优化外包
  • 文化墙设计网站推荐市场营销策略有哪些
  • 信息门户网站怎么做网络兼职平台
  • 不备案的网站的稳定吗惠州百度seo地址
  • 做淘宝一件代发的网站网络营销渠道可分为哪些