вы можете сделать что-то подобное
const orderedList = Object.keys(list).sort((a, b) => list[a] - list[b]);
, но у вас будет array
, потому что object
не может иметь порядок и не может сортировать его атрибуты.
Благодаря всем, кто обеспечил информацию об этом. Весь совет выручен так или иначе.
Однако я хотел прояснить, что основной вопрос здесь оказался поведением самого средства моделирования (как подразумевается Andreas в его ответе). После того как я смог получить приложение на устройстве, оно работало очень, намного лучше. Я упоминаю это, потому что до разработки моей игры я видел много сообщений, которые указали, что устройство было намного медленнее, чем средство моделирования. Это могло бы быть верно в некоторых случаях (например, логика общего применения), но по моему опыту, анимация (особенно 3-и преобразования) намного быстрее на устройстве.
Если бы Вы могли бы отправить часть своего кода для прорисовки, было бы намного легче помочь Вам.
При создании 2D игры есть ли какая-либо причина, Вы не пользуетесь существующей библиотекой? А именно, cocos2d для iPhone может стоить Вашего времени. Я не могу ответить на Ваш вопрос о том, как устранить проблему, делающую все это самостоятельно, но я могу сказать, что сделал точно, что Вы говорите о (наличие одного полноэкранного фона со спрайтами на вершине) с cocos2d, и это работает отлично. (Принятие 60 кадр/с достаточно быстро для Вас.) У Вас могут быть свои причины того, чтобы сделать его самих, но если бы Вы можете, я высоко предложить, по крайней мере, делать быстрый прототип с cocos2d и видеть, не способствует ли это Вам. (Детали и источник для версии iPhone здесь: http://code.google.com/p/cocos2d-iphone/)
У меня нет большого опыта с OpenGL, ES, но эта проблема обычно происходит.
Ваша идея о 'цветном буфере' является хорошей интуицией, по существу Вы хотите сохранить свое образование как кадровый буфер и загрузить его непосредственно на Ваш буфер рендеринга прежде, чем потянуть передний план.
В OpenGL это является довольно прямым с Объектами Кадрового буфера (FBO's). Unfortunatly я не думаю OpenGL ES, поддерживает их, но он мог бы дать Вам где-нибудь, чтобы начать смотреть.
можно хотеть попытаться использовать VBOs (Буферные Объекты Вершины) и видеть, ускоряет ли это вещи. Учебное руководство здесь
Кроме того, я просто видел, что начиная с OpenGL ES v1.1, существует функция, вызванная glDrawTex (Потяните Структуру), который разработан для
быстро представляя фонового рисования, глифов растрового шрифта и 2D элементов структурирования в играх