所以我目前正在设计一款游戏,其主要思想是你选择你的攻击,然后根据你选择的攻击(想想口袋妖怪)播放动画。游戏也是回合制的。
我的问题是scene2d是否比实现用于处理游戏动画部分的自定义解决方案更容易使用。从我读过的内容(我发现很难在scene2d上找到好的信息),听起来像scene2d会让设计按钮/菜单的UI非常容易,但我不知道怎么能滚动它让演员动起来。它是否像处理按钮上的触摸事件一样简单,并根据玩家的选择调用相应的actor的动作方法?
在我的想法中,演员们从未真正移动过(除了他们的动画期间他们不会在屏幕上移动,他们只是通过他们的动画到位)。在动画期间,还会有粒子效果(攻击),如果使用scene2d,则需要成为他们自己的actor。是否难以产生演员和攻击的同步?
答案 0 :(得分:2)
演员们动起来......
actor.addAction(Actions.moveTo(posX, posY, 5)));
通过这个你的演员移动到posX,posY和5是持续时间..
使用scene2d在我看来是个好主意..
答案 1 :(得分:0)
Scene2D会更好,因为你必须在使用Sprite时手动实现诸如Click之类的操作的监听器,而Scene2D提供设置监听器的功能。
答案 2 :(得分:0)
您可能已经知道这一点,但让我试着回答您的问题:
Scene2d有一个非常方便的action system,它基本上允许以下内容:
像这样:
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的内置音序器中获益,至少可以节省一半的工作量。所以,回答你的问题,我认为使用这个系统很容易实现固定以及被动/随机动画。它还允许您轻松地将更简单的操作封装到更复杂的操作中,并具有以下优点:
另一方面,如果你经常想要发现"这个开发系统会变得非常耗时。事情,如下:
我不认为你的情况。作为最后一句话,你应该看一下spine animation engine。我自己不会使用它,但可能对你的想法很有用。