我肯定我错过了一些非常明显的东西,但我是初学者,所以请不要压碎我。我的问题是我有一个视口比屏幕小的舞台。现在我也想直接用Sprite.draw(SpriteBatch)在屏幕上画一个雪碧。雪碧和舞台的位置不重叠。舞台画得很好,但是雪碧看不见。当我注释掉渲染方法中的stage.draw()部分时,雪碧是可见的。
代码:这是我的渲染方法:
@Override
public void render(float delta) {
Gdx.gl.glClearColor(0.851f, 0.894f, 0.992f, 1f);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
camera.update();
stage.act(delta);
batch.setProjectionMatrix(camera.combined);
batch.begin();
stage.draw();
logoSprite.draw(batch);
batch.end();
}
在这里,我初始化相机和舞台(StalleHeight是一个int,只有屏幕高度的3/5*):
camera = new OrthographicCamera();
camera.setToOrtho(false, SwapItGame.WIDTH, SwapItGame.HEIGHT);
stage = new Stage();
stage.setViewport(1080, stageHeight, true, 0, 0, 1080, stageHeight); //The button part of the menu takes up 3 fifth of the Height of hte screen
stage.setCamera(camera);
这里我初始化我的雪碧(雪碧的位置值相当复杂,忽略它即可。它肯定在舞台之上):
logoSprite = skin.getSprite("logo");
logoSprite.setPosition((SwapItGame.WIDTH-logoSprite.getWidth())/2, (SwapItGame.HEIGHT-stageHeight-logoSprite.getHeight())/2 + stageHeight);
在同一个屏幕上有一个精灵和一个舞台是不可能的吗?还是我做错了什么?
我知道这很古老,但如果你不能或不想移动你的舞台。draw()方法,只需调用批处理。就在舞台前结束。draw(),然后立即重新启动批处理。。。我在游戏中对不同的东西使用不同的游戏屏幕状态,并试图移动我的舞台。draw(),它只会破坏我班上的其他东西,所以我终于尝试了这个,它很有魅力,如果上述解决方案不容易奏效,它可能会对某人有所帮助。
batch.end();
stage.draw();
batch.begin();
试着搬家
stage.draw();
以上批量操作
stage.draw();
batch.setProjectionMatrix(camera.combined);
batch.begin();
logoSprite.draw(batch);
batch.end();
创建Pixi应用和 舞台 现在你可以开始使用Pixi! 但是怎么用? 第一步就是去创建一个可以显示图片的矩形显示区。Pixi拥有一个Pixi应用对象来帮助你创建它。它会自动创建一个<canvas>HTML标签并且计算出怎么去让你的图片在这个标签中显示。你现在需要创建一个特殊的Pixi容器对象,他被称作舞台。正如你所见,这个舞台对象将会被当作根容器而使用,它将包裹所有你想用Pixi显示的东西。 这里
我对游戏编程相当陌生,刚刚开始考虑用libgdx构建我的第一个2d游戏。我已经搭建了一个舞台,演员们被吸引到屏幕上,通过动作、寻路等等。但是,当我创建几个阶段时,对于“Stage”类的用法,我有点困惑。最好的解决方案是只为所有扩展Stage的每个级别创建类,还是不需要,最好的解决方案是为每个级别创建类,并在其中包含一个Stage对象?希望这个问题不要太混乱,提前谢谢!
问题内容: 我正在JavaFx中创建一个应用程序,如果要打开任何子阶段,则应在其中进行操作,然后应在父阶段的中心打开它。我正在尝试使用它来执行此操作,但是它将子级分配到屏幕的中心,而不是父级的中心。如何将子阶段分配给父阶段的中心? 问题答案: 您可以使用父级的X / Y / width / height属性来执行此操作。除了使用,您可以执行以下操作:
问题内容: 我要说的很对,因为我的英语不太流利,对不起。 我正在学习javafx,想要在关闭后单击X的窗口时出现警告。我知道可以通过我在窗口中间创建的按钮来执行此操作,但是我不知道如何控制用户何时按下X来关闭程序。谢谢 问题答案: 您不应该关注X,而应该关注像这样的通用关闭请求:
问题内容: 我目前正在使用两个控制器类。 在Controller1中,它创建一个新的阶段,该阶段在主要阶段的顶部打开。 现在,一旦该阶段打开,我希望它在关闭之前保持打开状态约5秒钟。 在Controller2中,我尝试实现类似 但是我不知道在while循环中放入什么来关闭它。我已经尝试了各种方法,但没有任何效果。 问题答案: 使用: