我只是启动libgdx,这看起来很简单,但我不明白。screen对象中的render方法将调用WorldRenderer中的render方法:
public World world;
public void render() {
spriteBatch.begin();
drawBlocks();
drawBob();
spriteBatch.end();
if (debug)
drawDebug();
}
private void drawBob() {
Bob bob = this.world.getBob();
Log.e("inside drawBob",this.world.getBob().getPosition().x +"dadas");
bobFrame = bob.isFacingLeft() ? bobIdleLeft : bobIdleRight;
if(bob.getState().equals(State.WALKING)) {
bobFrame = bob.isFacingLeft() ? walkLeftAnimation.getKeyFrame(bob.getStateTime(), true) : walkRightAnimation.getKeyFrame(bob.getStateTime(), true);
}
spriteBatch.draw(bobFrame, bob.getPosition().x * ppuX, bob.getPosition().y * ppuY, Bob.SIZE * ppuX, Bob.SIZE * ppuY);
//屏幕呈现方法
void render(float delta) {
Gdx.gl.glClearColor(0.1f, 0.1f, 0.1f, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
controller.update(delta);
renderer.render();
}
public void update(float delta) {
processInput();
Vector2 pos = new Vector2(7,7);
//bob.setPosition(pos);
bob.getPosition().x += 1;
bob.update(delta);
}
public void create() {
setScreen(new GameScreen());
world = new World();
renderer = new WorldRenderer(world, true);
controller = new WorldController(world);
//Gdx.input.setInputProcessor(this);
}
经过聊天中的讨论,我们发现了问题。如果在applicationlistener
中重写render()
,则必须调用super.render()
,以确保调用screen
中的render(float delta)
。对于pause()
和applicationlistener
to的其他方法也应该如此。
我试图学习libGDX游戏开发的一些简单原则,并在下面的代码中获得了吸吮。我已经将更新和渲染的任务分开,但不太确定如何将它们放在一起。我所要做的就是绘制一个在屏幕上移动的简单矩形。我的代码如下所示。除了渲染,一切都正常。 使用的呈现方法:
我试图用libGdx和MVC模式制作一个游戏。我有一个我的游戏模型,我打算一直运行,而不是我的渲染方法从应用程序。因此,我在从libgdx扩展Game的类中做了这样的工作:首先,我将连续呈现设置为false,为了调用呈现方法,我使用gamescreen作为模型的监听器。
我是一个初学者React开发人员,我对这个特定的代码片段有一个问题。 问题: 虽然我直接复制了虚拟数据的值并将其作为单独的子项呈现,但并不是所有的虚拟数据都被呈现 我特意选择使用useRef而不是useState,因为在用户添加或编辑他们想要的任何链接之后,我想将keyRef发送到NoSQL数据库;然而,当我使用useState()时,它给了我陈旧的状态问题,其中包含所有链接的数组没有不断更新。
编辑:当我拖动边框时,某种刷新被发送,我需要弄清楚并手动发送相同的刷新。 请注意,我已经尝试使用revalidate()和repaint()。 当使用JFrame和JPanel来显示一个框架时,我试图使框架的大小易于改变。 null 此外,一个重要的注意事项是,当您拖动边框时,白条会消失,并正确地重新加载/刷新内容(即使您只是少量拖动)
我想我不明白render方法是如何工作的。 从我在网上读到的/在youtube教程上看到的,我发现render方法是一个循环函数,您可以使用它来保持游戏的更新和读取用户的输入。当您想要在屏幕中绘制一些东西时,您可以使用此方法,并且在绘制任何东西之前清除屏幕。 但是如果我想要静止地绘制一些东西,那么在render方法之外绘制它不是更好吗(这样计算机就不必多次清除屏幕并重新绘制所有东西)?我错过了什么
我创建了一个程序,只需在屏幕上移动一个球。我以前把它都放在一节课上,但我觉得它看起来太乱了,所以我把它分成了三个不同的课:主课。。。初始化一切,游戏。。。它描绘一切,是一个JPanel,AL是一个KeyListener(这也是问题所在)。问题是,我无法让程序从我的AL类重新绘制,无论我试图传递什么。有人能帮忙吗?以下是我的三门课: - -