mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 07:14:55 +08:00
[c] Fixed dipping problem fix
This commit is contained in:
parent
76f8d683fa
commit
01b20b568b
@ -591,17 +591,18 @@ void _spAnimationState_setCurrent (spAnimationState* self, int index, spTrackEnt
|
||||
|
||||
mixingFrom = from->mixingFrom;
|
||||
if (mixingFrom != 0 && from->mixDuration > 0) {
|
||||
if (self->multipleMixing && from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) {
|
||||
current->mixingFrom = mixingFrom;
|
||||
mixingFrom->mixingFrom = from;
|
||||
mixingFrom->mixTime = from->mixDuration - from->mixTime;
|
||||
mixingFrom->mixDuration = from->mixDuration;
|
||||
from->mixingFrom = 0;
|
||||
from = mixingFrom;
|
||||
}
|
||||
|
||||
current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1);
|
||||
if (!self->multipleMixing) {
|
||||
if (self->multipleMixing) {
|
||||
current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1);
|
||||
} else {
|
||||
if (from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) {
|
||||
current->mixingFrom = mixingFrom;
|
||||
mixingFrom->mixingFrom = from;
|
||||
mixingFrom->mixTime = from->mixDuration - from->mixTime;
|
||||
mixingFrom->mixDuration = from->mixDuration;
|
||||
from->mixingFrom = 0;
|
||||
from = mixingFrom;
|
||||
}
|
||||
|
||||
from->mixAlpha = 0;
|
||||
from->mixTime = 0;
|
||||
from->mixDuration = 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user