Ответ: The Maze
Вложений: 1
переписал версию программы для работы со своей библиотекой RGB-массив. (все исходники упакованны в jar-файл)
для работы на motorola пришлось: 1. закомментировать строки вывода заднего фона 2. уменьшить высоту рисуемого экрана до 64 точек 3. сократить кол-во рисунков до 13 шт. (в дальнейшем прийдется отказаться от спрайтов ракурса) добавлено: 1. открывающиеся двери по кнопке GA_GAMEA. 2. игрок стреляет огненными шарами, которые убивают солдат или ломают двери. __ алгоритм работает в 2-3 раза быстрее моей предыдущей версии, но медленно на motorola v3i, необходимо оптимизировать работу с памятью, и лишними вычислениями... неплохо если кто-нить сделает интересную логику противников |
Ответ: The Maze
>>неплохо если кто-нить сделает интересную логику противников
я попробую... но... мне кажется, что пока - Стрелялку на телефоне хорошую незаделать... чисто изза управления прицелом(игроком) - так как у мобилки нету мыши =) может на сенсорных экранах чтонить и получится... а тут - представь, выходит из двери солдат (видит тебя - открывает огонь - и сообразно своему АИ начинает перемещаться(укрываться) от твоих пуль... пока ты стрелочками донажимаешь его в прицел(центр экрана) он тебя раз 20 убьёт... а если противник будет тупо стоять и время от времени постреливать - то тут уже тебе это быстро надоест... --- я попробую реализовать 2 алгоритма Противников - активный поиск(Пока "жизнь" > 10..20, бот будет "искать" игрока и при появлении его в поле видимости открывает огонь...< 10..20 жизни - убегать от игрока - пассивный - стоит ждёт - пока или игрок не выстрелит рядом(или непокажется в поле зрения) - стреляет - при возможности вправо влево перемещается (рандмоно) - опять стреляет.... |
Ответ: The Maze
ты прав Serg153 - управление в мобильнике своеобразное...
___ рекомендую скачать досовскую игру catacombs 3d, там простые, но в тоже время хорошо продуманные противники. Для более-менее нормального AI также нужен алгоритм нахождения нахождения кратчайшего расстояния. ___ нужно заменить умножения/деления на логические сдвиги, буду рад любым предложениям по оптимизации в j2me в особенности для motorola. ___ корень квадратный нужен для нахождения дистанции между двумя точками на плоскости (из формулы: квадрат гипотезы равен сумме квадратов катетов) |
Ответ: The Maze
>>...по оптимизации в j2me ...
>>..нахождения дистанции... мммм.. а дистанция нужна для определения какую стену рисовать? вертикальную или горизонтальную? к примеру - до ВертСтены по х 3 по у=4, до гориз стены по х=5 у=4 1 -если просто использовать квадраты расстояний 3*3+4*4=25 5*5+4*4= 41 т.е. рисуем вертикальную стену так как она ближе(25<41) - можно и без корня квадратного обойтись 2 - попробовать вообще без Квадратов типа 3+4=7 5+4=9 снова рисуем верт стену т.к. 7<9... ~~~ попробовать оптимизировать кол-во интераций(глубину луча) - исходно принимаем что макс длина лабиринта = 64 клетки Но - при про прорисовке на такую длину стена будет в виде 1..2х пикселей... тут конечно поэксперементировать - но ограничить максимальный перебор стен до 5-10-15... если стена дальше то отрисовать тёмно серой вертикальной полоской(типа в тени)... и описать ограничение для дизайнера уровней, что максимально большая комната(видимый участок) не больше например 6 клеток, условно: ******* * ******* ~~~ опять же расстояние до клеток, нужно для определения коэффициента масштаба выводимой стены - попробовать создать таблицу возможных растояний - с коэфициентами (расчитать и считывать из файла заранее или в програме инициализации игры) например макс видимое поле 10 клеток - значит массив - вернее 2 массива будут размерностью(10+10=20) и [64+64] то индекс в массиве будет расчитывать [x+y] - это расстояние в Больших клетках - [x1+y1] это координаты игрока в клетке.... и множитель выводимой стены будет равен m1[x+y]+m2[x1+y1] типа такого? |
Ответ: The Maze
Serg153 здесь немножко по другому (надоб разобраться в исходнике),
корень квадратный-вспомогательная функция для сортировки/отрисовки спрайтов, луч из глаз всегда останавливается при достижении стены и ни когда не должены уходить дальше 64 клеток |
Ответ: The Maze
to abcdef:
Класс! Респект тебе! ;) Интересно получилось, только, вижу, ты так и не вдавил дверь... Не получается? :) А я ведь не успокоюсь, пока дверь не вдавлю! Все хожу, шаманю с бубном, брожу вокруг да около... А для чего нужны переменные u и v, а также u1 и v1? Можешь объяснить? |
Ответ: The Maze
Вложений: 1
Фух, наконец-то! Десятки бессонных ночей наконец-то дали свои плоды!!
Доделал я все-таки эти двери! :cool: Итак, что мы имеем: 1. Двери теперь вдавлены внутрь стен наполовину. 2. Двери могут быть полупрозрачными (со сквозными дырками там и т.д.). 3. Все-таки мой алгоритм нахождения квадратного корня для целых чисел почти в 2 раза быстрее твоего, abcdef! Сам на эмуляторе проверял. А потом и на телефоне. Вот. :cool: Serg153, Что там с AI солдат? Ходют они у тебя уже или все еще нет? |
Ответ: The Maze
Вложений: 2
я так понял это все не 3д (не jsr184) а так сказать проекция 3д на 2д плоскость
не бейте но алгоритм текстур не идеален (см. ниже) неая пилообразность. |
Ответ: The Maze
ASMjavaC
любое 3д это проекция 3д координат на 2д плоскость |
Ответ: The Maze
юзать сглаживание?
|
Ответ: The Maze
jimon
да извеняюсь не та и не о том спросил... меня интересует jsr184-почему его не используют (я так понял это помогает 3д какраз спректировать на 2д чтобы не замарачиваться) а тут я смотрю делают "движки" и "отображения 3д-2д" impersonalis вы про пилообоазность? не вдавался в подробности но помойму "немного неправильный" алгоритм текстур |
Ответ: The Maze
to ASMjavaC:
>я так понял это все не 3д (не jsr184) а так сказать проекция 3д на 2д >плоскость Ну да. Это все рэйкастинг. >не бейте но алгоритм текстур не идеален (см. ниже) >неая пилообразность. Да, знаю. А сделать ничего не могу. Не понимаю я, в чем причина! :dontknow: >меня интересует jsr184-почему его не используют Насколько я знаю, MIDletPascal не позволяет использовать jsr184. Да и зачем? Jsr184 тут нафиг не нужен и "true-3d" в играх этого типа никогда не используется. Да и по ходу, в данном случае рэйкастинг будет работать быстрее аналогичной игры, но построенной на jsr184. Вот. :cool: to impersonalis: > юзать сглаживание? Не нужно. Здесь надо просто подкорректировать вывод текселей на экран. |
Ответ: The Maze
Да и зачем? Jsr184 тут нафиг не нужен и "true-3d" в играх этого типа никогда не используется.Да и зачем? Jsr184 тут нафиг не нужен и "true-3d" в играх этого типа никогда не используется.
Согласен.. даже игры переделаные на дос намного меньше весили и намного быстрее (хотя графика оставляла желать лучшего) но для мобилы это актуально все понял. (хм а смысл jsr184 в чом) |
Ответ: The Maze
to ASMjavaC:
> (хм а смысл jsr184 в чом) Во всем, кроме FPS игр. Я так думаю. :) Jsr-184 пригодился бы, ну например, в создании гонок. Или космического симулятора. А можно еще и какой-нибудь квест в стиле Alone In The Dark забабахать! Ну и т.д.:) |
Ответ: The Maze
ASMjavaC, impersonalis, jimon, поможете в написании этой проги? Людей очень не хватает! :)
|
Часовой пояс GMT +4, время: 16:47. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot