【发布时间】:2016-03-28 08:30:44
【问题描述】:
//this is the UPDATE method
public void update(float delta) {
handlingInput();
deltaTime = Gdx.graphics.getDeltaTime();
timer += deltaTime;
if (timer >= 1) {
buttons.add(new Buttons());
timer -= 1;
}
cam.update();
Iterator<Buttons> butts = buttons.iterator();
while(butts.hasNext()) {
Buttons button = butts.next();
button.update(delta);
if (button.getPosition().x > Gdx.graphics.getWidth()) {
butts.remove();
}
}
}
这是渲染方法
public void render(SpriteBatch sb) {
sb.setProjectionMatrix(cam.combined);
sb.begin();
for (Buttons butts: buttons) {
sb.draw(butts.getButTexture(), butts.getPosition().x, butts.getPosition().y);
}
sb.end();
}
这是坠落物体的更新
public void update(float delta) {
position.x += (int) (300 * delta);
}
我让坠落的物体乘以我的增量时间,所以它是否滞后并不重要。我也试过浮动,但问题是它并不顺利,它只是每隔几毫秒就会滞后一次。我是新手,我不确定自己缺少什么!?
【问题讨论】:
-
什么是按钮类?我的猜测是,实例化它并将一些丢到 GC 会导致你打嗝。您是否在 Buttons 构造函数中加载纹理?
-
我有一个在创建按钮时随机生成的纹理,因此每个按钮都有自己的纹理,该纹理已在控件中设置!那有什么问题吗?因为我在较新的手机上尝试过它,它在桌面上也能正常工作......那么我应该如何为每个按钮加载不同的纹理?
-
在 create 方法中加载您需要的所有纹理,并让它们可供按钮参考。然后你就不会在动画运行时加载它们,这会导致卡顿。
-
那么乱七八糟的事情仍然会发生,我做到了。我在create中创建了一个纹理数组,将其传递给playState,这是我的游戏逻辑所在,然后每次创建按钮时,它都会在构造函数中传递纹理数组
-
你能分享你的Buttons类的代码吗?
标签: android object libgdx smooth