Я только что закончил развиваю свою мини-игру на Android, и я получил несколько вопросов о Perfomance и вообще «как»:
Если у меня есть 25+ объектов на creeen (только полигон с 7-8 углами) начинает сильно задерживаться и Использование процессора очень высокое (15-20% без обнаружения столкновений, до 50% с обнаружением столкновения на Samsung Note 10.1 планшет).
Итак, у меня есть ~ 25 полигонов (астероидов), и они всегда «летают». Чтобы переместить их, я делаю таймер, вправо? На TimerTask я получил что-то вроде этогоПеремещение объектов плавно, плохо Perfomance
public void move() {
translate[1] += speed[1];
translate[0] += speed[0];
updateTranslateMatrix(); // updating translate matrix and then send it into vertex shader
updateAABBCoords(); // update coordinates of Axis-aligned bounding box
updateCoordsByTranslate(); // update coordinates of verticles (to be able to define exact collision (with bullets and starship))
}
Есть ли что-то ненужное в этом методе?
Также я хочу спросить, есть ли это ОК для запуска этого таймера каждые 17 мс? Или 17 мс слишком часто? Я чувствую гладкость движения только в 17 мс, возможно, я делаю это неправильно? И один и тот же интервал таймера Я получил движение звездолетов/пуль и обнаружение столкновений.
Помогите мне, пожалуйста. Мне не хватает чего-то огромного и фундаментального, потому что 50% процессор на заметке 10.1 в этой простой игре с астероидами не является нормальным.
Очень большое спасибо @ssell. Я постараюсь сделать что-то в этом направлении. – Faceles