2016-03-28 3 views
0
//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(); 
     } 
    } 
} 

Это метод визуализацииAndroid libgdx падение объектов

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(); 
} 

и это UPDATE падающих предметов

public void update(float delta) { 
    position.x += (int) (300 * delta); 
} 

У меня есть падение объекта умножить мой дельта времени, поэтому он делает неважно, отстает ли оно. Я также попробовал float, но проблема в том, что он не идет гладко, он просто отстает каждые несколько секунд. Я новичок, и я не уверен, чего не хватает !?

+0

Что такое класс кнопок? Мое предположение заключается в том, что создание экземпляра и удаление некоторых из GC вызывает ваши икоты. Вы загружаете текстуру в конструкторе кнопок? – Tenfour04

+0

У меня есть Текстура, которая случайным образом генерируется при создании кнопки, поэтому каждая кнопка имеет свою собственную текстуру, которая устанавливается в contrsctor! Это что-то не так? Потому что я попробовал его на более новом телефоне, и он отлично работал и на рабочем столе тоже ... Итак, как мне загрузить другую текстуру для каждой кнопки? – pigi

+0

Загрузите все текстуры, которые вам понадобятся в методе создания, и предоставите их доступным для кнопок для ссылки. Тогда вы не будете загружать их во время анимации, что вызовет заикание. – Tenfour04

ответ

0

Вы пробовали переместить sb.setProjectionMatrix(cam.combined); из метода визуализации? Насколько я знаю, его можно просто вызвать один раз, когда вы создадите SpriteBatch, и, возможно, это дорогостоящий ресурс и сделайте вашу игру лагги (это может быть не причина, но я не могу найти ничего другого, что может).

+1

Если вы хотите делать запросы от OP, пожалуйста, оставьте комментарий. Опубликуйте ответ только в том случае, если вы уверены в этом требовании, и проблема – NSNoob

+0

попыталась удалить его, это же странно, потому что движение кажется плавным, но затем каждое несколько раз «время» это просто лагги ... – pigi