2019-02-03 21:45:56 +08:00
|
|
|
|
// Copyright (C) 2019 Nomango
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "common.h"
|
|
|
|
|
|
|
|
|
|
|
|
class Demo1
|
|
|
|
|
|
: public Scene
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
2019-07-31 00:09:24 +08:00
|
|
|
|
static ScenePtr Create(ResLoader* loader)
|
2019-02-03 21:45:56 +08:00
|
|
|
|
{
|
2019-07-31 00:09:24 +08:00
|
|
|
|
return new Demo1(loader);
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
2019-07-31 00:09:24 +08:00
|
|
|
|
Demo1(ResLoader* loader)
|
2019-02-03 21:45:56 +08:00
|
|
|
|
{
|
2019-07-31 00:09:24 +08:00
|
|
|
|
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ͼƬ
|
|
|
|
|
|
ImagePtr man_image = loader->GetImage(L"man");
|
2019-04-14 23:29:17 +08:00
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
auto ease_functions = {
|
|
|
|
|
|
Ease::Linear, // <20><><EFBFBD>Ա仯
|
|
|
|
|
|
Ease::EaseInOut, // <20>仯<EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD><D0BB><EFBFBD>
|
|
|
|
|
|
Ease::ExpoInOut, // <20>ڿ<EFBFBD>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ηdz<CEB7><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̷dz<CCB7><C7B3><EFBFBD>
|
|
|
|
|
|
Ease::BounceInOut, // <20>ڿ<EFBFBD>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ξ<D7B6><CEBE><EFBFBD><EFBFBD>赯<EFBFBD><E8B5AF>
|
|
|
|
|
|
Ease::BackInOut // <20><>ʼ<EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD><EFBFBD>ξ<D7B6><CEBE><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵķ<DDB5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
float height = 100.f;
|
|
|
|
|
|
for (auto& func : ease_functions)
|
|
|
|
|
|
{
|
|
|
|
|
|
SpritePtr man = new Sprite(man_image);
|
|
|
|
|
|
man->SetPosition(100, height);
|
|
|
|
|
|
man->SetScale(0.5f, 0.3f);
|
|
|
|
|
|
this->AddChild(man);
|
|
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD>ú<EFBFBD><C3BA><EFBFBD>
|
|
|
|
|
|
auto reset_pos = [ptr = man.Get()]() { ptr->Move(-350, 0); };
|
|
|
|
|
|
|
|
|
|
|
|
// ִ<>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
|
man->AddAction(
|
|
|
|
|
|
Tween::Group({ // Tween::Group <20><><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>
|
|
|
|
|
|
Tween::MoveBy(Point{ 350, 0 }) // Tween::MoveBy <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> 350 <20><><EFBFBD><EFBFBD>
|
|
|
|
|
|
.SetDuration(4000) // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʱ<EFBFBD><CAB1>Ϊ 4 <20><>
|
|
|
|
|
|
.SetEaseFunc(func), // <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
Tween::Delay(1000) // Tween::Delay <20>ӳ<EFBFBD> 1 <20><>
|
2019-02-03 21:45:56 +08:00
|
|
|
|
})
|
2019-04-14 23:29:17 +08:00
|
|
|
|
.SetLoops(-1) // <20><><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>ִ<EFBFBD><D6B4>
|
|
|
|
|
|
.SetLoopDoneCallback(reset_pos) // <20><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ѭ<EFBFBD><D1AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
height += 60.f;
|
|
|
|
|
|
}
|
2019-02-03 21:45:56 +08:00
|
|
|
|
}
|
|
|
|
|
|
};
|