Malcolm, не знаеш как фишлабс улучшили MascotCapsule API? Точнее как вообще можно, что-то изменить в стандартный классах? Видь нельзя же изменить код, методы или что-то еще?
DDDEN!SSS, да они ничего не улучшали, просто написали свой код поверх MascotCapsule. Есть какие-то сложные высокоуровневые операции, которые состоят из низкоуровневых, так вот Abyss предоставляет высокоуровневые, оперируя при этом низкоуровневыми из MascotCapsule.
Malcolm, Где об их движке можно почитать? Не совсем понял чем низкоуровневые операции отличаются от высокоуровневых? Как я понимаю-высокоуровневые операции это сразу рендер фигуры. А низкоуровневые - это: поворо вершин, сортировка полигонов, рисование полигонов. Правельно? В таком случае маскот содержит только высокоуровневые операции которые не изменить и не улучшить:-(. Я так и не понял в чем заключается фишка ихнего движка. Картинка вроде такая ж как и в других играх. Может скорость больше, но это скорее от 3д моделей зависит, скорость рендеринга не изменить.
DDDEN!SSS, о движке вот тут пишут: www.fishlabs.net/en/mobile-games-engine . Уровни - это вообще не какое-то четкое деление, а принцип. Допустим, постройка монолитного дома тоже состоит из разных уровней. Высокий уровень - расчистка территории, установка крана, закладка фундамента, постройка этажей, облицовка и так далее. Средний уровень - закладка пола/потолка, продление арматуры, заливка бетоном, ну а самый низкий уровень - крановщик тащит блок, сварщик сваривает, еще какой-то строитель долбит молотком и так далее. Fishlabs объединили наборы низкоуровневых команд в высокоуровневые и больше не волнуются о том, из чего последние состоят. За счет этого при создании новой игры рутинные многосоставные действия не нужно прописывать каждый раз заново, вместо этого можно сконцентрироваться на программировании игровой логики конкретной игры.
Malcolm, родную реч не забывай www.fishlabs.net/ru/engine Вообщем написали они себе вспомогательную библиотеку. Например класс-фигуру который содержит и саму фигуру и её матрицу и другие данные. Правильно? А вообще жаль, что нельзя изменять стандартный код. Может лучшие алгоритмы появились или надо на чемто с экономить. -------- Не знаеш в midp 3.0 не планируется работа с пикселами дисплея напрямую? Тоесть получить цвет, закрасить. Тогда бы псевдо 3д значительно улучшелось. А то только фон зарисовать - 20 фпс забирает. Интересно как в классе Graphics рисуется прямоугольник, эта опирация фпс вообще не забирает.
DDDEN!SSS, движок - это и есть вспомогательная библиотека, один движок - это же еще не приложение, а только некий каркас или его часть. Работать с отдельными пикселями и сейчас можно, через drawLine. Не обязательно же, чтобы линия была длинее одного пикселя. Получать информацию о пикселях через Graphics нельзя, поскольку предполагается, что этот объект используется толькоо для рисования, в одностороннем порядке.
DDDEN!SSS, а если бы был метод, который рисует только одну точку, думаешь, было бы быстрее? В нашем случае стоит создать массив RGB-значений, из которых рисовался бы либо он весь, либо какая-то его часть. В этом случае, кстати, можно будет и узнавать, какой где пиксель. На эмуляторе такой метод отрисовывает экран за 9-10 мс, то есть примерно 100-110 FPS. Очень солидная цифра.
Malcolm, массив рисуется быстро, но в массив рисовать долго:-(. И особенно жалко это время когда фоном его зарисовываеш. Если бы был метод рисования точки, то скорость немного была бы выше, всёже для этого не нужно выполнить какой-то алгоритм. Но, есть проблема: метод вызывать дольше чем изменить значение int. проведи тест - какая разница между временем выполнения цикла 176*220 который просто изменяет переменную и цикл который вызывает метод который изменяет переменную. я точно не помню, но кажется я делал этот тест с циклом 50 000. Если цикл вызывал метод, то фпс-80. Если изменял переменную, фпс-100. Тогда я еще понял как долго работать с float. И что надо использовать fixedpoint и побитовые сдвиги.
24 апр 2009 в 08:57