Decided that it's better to adjust the ease_rate manually/visually rather than try to math it. That's what the animator tool is for.
This commit is contained in:
parent
ca335d21e5
commit
7d79e75651
2 changed files with 11 additions and 6 deletions
|
|
@ -4,8 +4,12 @@
|
||||||
#include "dbc.hpp"
|
#include "dbc.hpp"
|
||||||
#include "rand.hpp"
|
#include "rand.hpp"
|
||||||
|
|
||||||
|
constexpr float SUB_FRAME_SENSITIVITY = 0.999f;
|
||||||
|
|
||||||
namespace animate2 {
|
namespace animate2 {
|
||||||
std::vector<sf::IntRect> Animate2::calc_frames() {
|
std::vector<sf::IntRect> Animate2::calc_frames() {
|
||||||
|
dbc::check($sequence.frames.size() == $sequence.durations.size(), "$sequence.frames.size() != $sequence.durations.size()");
|
||||||
|
|
||||||
std::vector<sf::IntRect> frames;
|
std::vector<sf::IntRect> frames;
|
||||||
|
|
||||||
for(int frame_i : $sequence.frames) {
|
for(int frame_i : $sequence.frames) {
|
||||||
|
|
@ -54,10 +58,11 @@ namespace animate2 {
|
||||||
if($sequence.timer.getElapsedTime() >= duration) {
|
if($sequence.timer.getElapsedTime() >= duration) {
|
||||||
$sequence.timer.restart();
|
$sequence.timer.restart();
|
||||||
$sequence.current++;
|
$sequence.current++;
|
||||||
if($sequence.subframe > 0.9) $sequence.subframe = 0.0f;
|
if($sequence.subframe > SUB_FRAME_SENSITIVITY) $sequence.subframe = 0.0f;
|
||||||
frame_change = true;
|
frame_change = true;
|
||||||
} else {
|
} else {
|
||||||
$sequence.subframe = std::lerp($sequence.subframe, 1.0, $sequence.timer.DELTA * $transform.ease_rate);
|
$sequence.subframe = std::lerp($sequence.subframe, 1.0, $sequence.timer.DELTA * $transform.ease_rate);
|
||||||
|
|
||||||
fmt::println("subframe: {}, alpha: {}", $sequence.subframe, $sequence.timer.alpha);
|
fmt::println("subframe: {}, alpha: {}", $sequence.subframe, $sequence.timer.alpha);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -156,8 +156,8 @@ animate2::Sheet sheet{
|
||||||
};
|
};
|
||||||
|
|
||||||
animate2::Sequence sequence{
|
animate2::Sequence sequence{
|
||||||
.frames{0,1,0,1},
|
.frames{0,1},
|
||||||
.durations{500ms, 266ms, 100ms, 100ms}
|
.durations{800ms, 200ms}
|
||||||
};
|
};
|
||||||
|
|
||||||
animate2::Transform scale_tr{
|
animate2::Transform scale_tr{
|
||||||
|
|
@ -167,12 +167,12 @@ animate2::Transform scale_tr{
|
||||||
.max_y{0.8f},
|
.max_y{0.8f},
|
||||||
.simple{false},
|
.simple{false},
|
||||||
.flipped{false},
|
.flipped{false},
|
||||||
.ease_rate{1.0f/0.2f},
|
.ease_rate{4.0f},
|
||||||
.scaled{true},
|
.scaled{true},
|
||||||
.toggled{false},
|
.toggled{false},
|
||||||
.looped{true},
|
.looped{false},
|
||||||
.easing = ease2::in_out_back,
|
.easing = ease2::in_out_back,
|
||||||
.motion = ease2::scale_only,
|
.motion = ease2::move_rush,
|
||||||
};
|
};
|
||||||
|
|
||||||
animate2::Transform move_tr{
|
animate2::Transform move_tr{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue