我的游戏上有一个按钮,它在我的游戏屏幕上设置屏幕,它位于我的菜单屏幕上。所以会发生的事情就是当我的角色死了它只是回到菜单屏幕,我不想做的就是当我输了的时候会有一个按钮让你再次玩,一个盒子显示你的分数和最好的分数,我想知道那个盒子叫什么,它只是一个纹理,当条件为真时会出现?以及如何在按钮或文本向上的位置产生这些效果,并在它们是正确的位置时停止(或者当它们出现在屏幕上时的其他效果)。
答案 0 :(得分:1)
我发现当你的角色死亡时,游戏会自动再次进入主菜单屏幕。您更有可能正在做一些教程或者使用一些代码来告诉程序在角色死亡时返回主菜单。
无论如何,在我的最新游戏中,我只是有一个堆叠演员作为我舞台上的第一个演员。在那里我只是放入界面,所有人都像通常那样。当我需要一个屏幕在顶部时,我只需将它添加到基本堆栈。这可能是暂停显示,带有取消暂停,重启和退出按钮。或者这可以是一个屏幕上的游戏,其中分数是使用退出和重播按钮计算的。
Stage stage;
Stack stack; //scene2D.ui.Stack
Table mainTable;
Table overlayTable;
public GameScreen()
{
stage = new Stage();
stack = new Stack();
mainTable = new Table();
overlayTable = new overlayTable();
stage.addActor(stack);
stack.addActor(mainTable);
stack.addActor(overlayTable);
}
现在只需像设置界面/游戏一样设置mainTable
。 overlayTable
用于显示主表上覆盖的内容。当它不再需要时我清除它并在玩家暂停或完成关卡时再次建立它。您也可以使用单独的表格,例如pauzeTable
,successTable
,failedTable
等,并根据需要隐藏或显示这些表格。
对于效果,您只需使用Scene2D
Actions
,MoveToAction
或MoveByAction
。您可以为每个按钮/ actor设置一个动作,这样您就可以单独控制它们,或者只对整个表格进行一次MoveToAction控制。
Table actionTable = new Table();
//position the table outside the screen
actionTable.setPosition(stage.getWidth(), 0); //Position on the right of the stage
MoveToAction moveAction = new MoveToAction();
moveAction.setPosition(0, 0); //Move from right side of stage inside the stage
moveAction.setDuration(.5f); //Duration of this action
moveAction.setInterpolation(Interpolation.fade); //Fade the movement in and out, many interpolations are supplied by the framework.
actionTable.addAction(moveAction); //Execute Action.