Тема: The Maze
Показать сообщение отдельно
Старый 03.02.2009, 23:54   #69
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: The Maze

to Serg153:
Что за телефон? Размер экрана 176х220? Хм... Может, не хватает памяти?
А если попробовать закомментировать строку
" world:=argb_to_image(w,h); drawImage(world,0,0); "
в блоке MAIN LOOP и снова запустить?
Если все-равно не пойдет, то, значит, дело все-таки в памяти.
Если пойдет - дело в выводе изображения (хотя я сомневаюсь, что это так).

Сколько у тебя доступно динамической памяти (Heap) для приложений?

Попробуй выбросить из проекта какие-нибудь ресурсы на 150 кбайт.. Глядишь, пойдет!

to abcdef:
По поводу анимации: Ну, думаю, более оптимальный будет, конечно же, первый вариант. Либо мы один массив 64х64 перерисуем, либо кучу текстур точно с таким же размером 64х64...
По поводу двери: Ну, насчет того, что дверь - это такая стена, как и другие... Да еще и просто анимированная... Хм, ну не знаю...

А теперь пошли мои размышления...
Как я поглядел, есть две различные реализации дверей - это объемная (как, например, в Бункер3Д) и в виде спрайта, который имеет свою собственную ось вращения (Вольфенштейн3Д).
Я вот, например, совсем не представляю, как можно сделать объемную дверь и считаю, что это еще тот геморрой. Почему? Ну, во первых, надо создать объект, который имеет размер меньше обычных стен (дверь же будет выглядеть не в виде куба, правильно? ). Это первая заноза: сделать на 2-мерной карте объекты, размеры которых будут меньше стандартных. Дальше - больше. Вот во время открытия двери что делать лучу? Вот он вылетает из нашего глаза и идет по клеткам с числом 0, пока не дойдет до какого-либо препятствия. Дошел он до клетки, скажем, 5. Это клетка, которая означает, что это - дверь. Да дверь то и не простая, а еще и в процессе анимации! И открыта наша дверь наполовину. Нет, пусть лучше будет чуть больше, чем в половину... И что делать лучу? По логике, он каким-то макаром должен понять, именно в ЭТОЙ точке есть кусочек двери, или же тут ничего нет и нужно просто продолжать движение дальше? Для большей ясности смотрите аттач к посту. Это заноза номер два: проблема трассировкой лучей. Более того, а что делать спрайтам, которые находятся позади двери? Как им объяснить, что часть их находится позади двери и должна быть отображена, а часть - нет? Заноза три: проблемы со спрайтами. Хотя, наверно, последний пункт можно выбросить. Если мы сможем правильно заполнить массив ScreenDist, то, по ходу, проблем возникнуть не должно...

Я думаю, что гораздо легче будет создать дверь в виде спрайта. Это полезно, так как помимо дверей, можно будет точно также создать какие-нибудь решетки, стены со сквозными дырками... Да и просто спрайты, которые не будут постоянно поворачиваться в сторону игрока, а будут смотреть только строго туда, куда им указал смотреть разработчик.
Спрайтовую дверь будет легко всунуть в любое место, задать ей начальный поворот, двигать... С помощью спрайтов можно будет попробовать создать "битую" дверь, с небольшими сквозными отверстиями. Будет выглядеть круто.
Вот только как сделать так, чтобы спрайт имел свою собственную ось?!?? Вот, что меня больше всего мучает!!!
Как менять его вид, опираясь на угол зрения игрока? Не понимаю...
Кто сможет это объяснить (а еще лучше: реализовать)?
Миниатюры
Нажмите на изображение для увеличения
Название: troubles_rays.jpg
Просмотров: 980
Размер:	28.0 Кб
ID:	5341  
(Offline)
 
Ответить с цитированием