Libgdx 如何在 actor 动作完成 finished/completed 之前停止 for 循环
Libgdx how to stop for loop until actor action has finished/completed
我将演员添加到称为单元格的组中,并在 for 循环中将动作添加到组中的一组特定单元格。
我希望在单元格的操作完成之前不会开始循环的下一次迭代。
for (int i = 0; i < cells.length; ++i) {
cell.addAction(fadeIn(1f));
// I need to wait here until the action has completed!
}
libgdx 中是否有我可以使用的阻止操作或其他内容?或者有什么具体的方法可以做到这一点?
显然我需要 libgdx 在后台保持 运行 否则操作根本不会完成,我真的不知道该怎么做。
我不能使用 RunnableAction,因为它用于在执行后调用代码,我只是想停止循环迭代。
谢谢,
您可以尝试为计算的淡入开始所需时间设置每个动作的延迟,而不是阻止循环 运行。
像这样:
float delay = 0;
for (int i = 0; i < cells.length; ++i) {
SequenceAction sa = Actions.sequence(Actions.delay(delay),
Actions.fadeIn(1f));
cell.addAction(sa);
delay += 1f; //Increase the delay for the duration of each fadeIn
}
虽然没有测试这个。
我将演员添加到称为单元格的组中,并在 for 循环中将动作添加到组中的一组特定单元格。
我希望在单元格的操作完成之前不会开始循环的下一次迭代。
for (int i = 0; i < cells.length; ++i) {
cell.addAction(fadeIn(1f));
// I need to wait here until the action has completed!
}
libgdx 中是否有我可以使用的阻止操作或其他内容?或者有什么具体的方法可以做到这一点?
显然我需要 libgdx 在后台保持 运行 否则操作根本不会完成,我真的不知道该怎么做。
我不能使用 RunnableAction,因为它用于在执行后调用代码,我只是想停止循环迭代。
谢谢,
您可以尝试为计算的淡入开始所需时间设置每个动作的延迟,而不是阻止循环 运行。
像这样:
float delay = 0;
for (int i = 0; i < cells.length; ++i) {
SequenceAction sa = Actions.sequence(Actions.delay(delay),
Actions.fadeIn(1f));
cell.addAction(sa);
delay += 1f; //Increase the delay for the duration of each fadeIn
}
虽然没有测试这个。