所以我目前正在设计一个游戏,它的主要思想是你选择你的攻击,然后根据你选择的攻击来播放动画(想想精灵宝可梦)。这个游戏也是基于回合的。
我的问题是,在处理游戏中的动画部分时,scene2d是否比实现自定义解决方案更容易使用。根据我所读到的(我发现在scene2d上很难找到好的信息),scene2d听起来会让设计按钮/菜单的UI变得非常容易,但我不确定如何才能让演员移动起来。就像处理按钮上的触摸事件并根据玩家的选择调用相应的参与者的action方法一样简单吗?
在我的脑海中,演员从来没有真正地移动过(除了在他们的动画中,他们不会在屏幕上移动,他们只是在适当的地方通过他们的动画)。在动画中,还将有粒子效果(攻击),如果使用scene2d,将需要自己的演员。演员和攻击的同步性会很难产生吗?
发布于 2013-10-27 15:34:28
演员做电影..
actor.addAction(Actions.moveTo(posX, posY, 5)));这样你的参与者就会移动到posX,posY,5是持续时间..
在我看来,使用scene2d是一个好主意。
发布于 2015-06-30 09:41:34
Scene2D会更好,因为当您使用Sprite时,您必须手动实现诸如单击之类的操作的侦听器,而Scene2D提供了设置侦听器的函数。
发布于 2016-08-31 03:43:53
您可能已经知道这一点,但让我尝试回答您的问题:
Scene2d有一个非常方便的action system,它基本上允许以下操作:
使用许多使用现有操作形成序列的新操作来调整序列来调整它们。provided actions
如下所示:
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import com.badlogic.gdx.scenes.scene2d.Action;
Action a1 = Actions.sequence(Actions.fadeOut(0), Actions.fadeIn(3, Interpolation.bounce));
Action a2 = Actions.moveTo(100, 200, 3, Interpolation.pow2Out);
Runnable r = new Runnable() {
@Override
public void run() {
setColor(1, 0, 0, 1);
System.out.println("now I'm a red actor");
}
};然后组合,例如,像这样:
addAction(Actions.sequence(Actions.parallel(a1, a2), Actions.run(r)));这让你可以从scene2d内置的定序器中获利,至少可以节省一半的工作。所以,回答你的问题,我认为使用这个系统很容易实现固定和反应/随机化的动画。它还允许您轻松地将更简单的操作封装到更复杂的操作中,并具有以下优势:
code
另一方面,如果您经常想要“未覆盖”的东西,那么这个开发系统可能会变得非常耗时,比如:
,如果内置的插值不符合您的目标,则使用您自己的插值)
我不认为这是你的案子。作为最后一点,您应该看看spine animation engine。我自己并不使用它,但可能对您的想法有用。
https://stackoverflow.com/questions/19614056
复制相似问题