mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +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;
|
mixingFrom = from->mixingFrom;
|
||||||
if (mixingFrom != 0 && from->mixDuration > 0) {
|
if (mixingFrom != 0 && from->mixDuration > 0) {
|
||||||
if (self->multipleMixing && from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) {
|
if (self->multipleMixing) {
|
||||||
current->mixingFrom = mixingFrom;
|
current->mixAlpha *= MIN(from->mixTime / from->mixDuration, 1);
|
||||||
mixingFrom->mixingFrom = from;
|
} else {
|
||||||
mixingFrom->mixTime = from->mixDuration - from->mixTime;
|
if (from->mixTime / from->mixDuration < 0.5 && mixingFrom->animation != SP_EMPTY_ANIMATION) {
|
||||||
mixingFrom->mixDuration = from->mixDuration;
|
current->mixingFrom = mixingFrom;
|
||||||
from->mixingFrom = 0;
|
mixingFrom->mixingFrom = from;
|
||||||
from = mixingFrom;
|
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) {
|
|
||||||
from->mixAlpha = 0;
|
from->mixAlpha = 0;
|
||||||
from->mixTime = 0;
|
from->mixTime = 0;
|
||||||
from->mixDuration = 0;
|
from->mixDuration = 0;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user