![]() |
Вложений: 1
В этом посте буду размещены исходники бомбермена. Будут в основном мною(так как я новичек(продвинутый новичек) ) задаваться вопросы по проекту. Каждый(кто хочет) сможет мне помогать! И конечно же (так как я "глупый" в программировании, но упертенький(в плане работы) проект я + любой, кто откликнется на помощь доведу(доведем!) до конца! Так как я не буржуй, да и не продовать буду, то исходник(последняя версия) всегда будет на сайте! Так что это будет "форумный проект" !!!
Уже сейчас мне помогают(или помогали дельным советом!) Жека!!! SubZer0!!! impersonalis!!! Так что...вот так;) Последнее что есть есть в исходнике! Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ!!!!!!!!! Делаю: остановился на AI. вот...любая помощь приветсвуется! Нужно сделать ... AI. 7 файлов в исходниках+1 папка maps 1. Исходник бомбера (bomber.bb) - всемирными усилиями 2. Редактор карт бомбера (mapeditor.bb) - сделал Жека!!! Респетк!!! 3. и 4. и 5. - текстуры (cube1.bmp и cube2.bmp и tAI1.bmp) 6. и 7. - диздоки Общий размер - 370 кб. В архиве - 17 кб. Не стесняемся и качаем!!! И разумеется, что бы проект не СДОХ, то НУЖНА помощь по перечисленным вопросам!!! особенно по пункту "баги" |
вообщем для 1 дневной работы сойдет
код более мение нормальный как для продвинутого новичка :)) а вообще ... управление ацтой и графа нулевая делать в 2d и на bmax надо было... красивее былоб ;) |
Управление надо переназначить (надали влево - объект разворачивается и идёт влево, а не только поворачивается и ждёт нажатия "вперёд").
2jimon: старайся аргуметировать и разворачивать свои рецензии ( знаю, иногда это очень тяжело) |
2 jimon
Это не однодневная работа!!! не шути так))))) Код делал не только я) посмотри в "благодарностях" имеено эти люди приложили свои руки к коду. 2impersonalis Это же даже не демка! Но поправки будут внесены!!! Остается: баг коллизий (с "несуществующим" осколком") AI продолжение следует... |
Вложений: 1
Я исправил управление.
Возник вопрос! 1. Не знаю как оптимизировать код. Типа через case пытался - фиг что вышло! 2. Если нажать и удерживать вправо и вверх(вместе) то игрок будет идти вверх. Но стрелка будет указывать вправо 3. Актуален вопрос по поводу: Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ 4. Все-еще парюсь с AI |
Выложи плз, не только исходник, но и ресурсы
|
Вложений: 1
2impersonalis
Я все ресурсы в 1ом моем тексте Выкладываю опять ВСЕ что есть! 2ALL Так! У меня вопрос!!! Мне всегда выкладывать ВСЕ ресурсы??? или только по мере "улучшения и дополнения". Я считаю что стоит только "дополнять"! Выклабываю все, что есть!!! 2impersonalis Надеюсь, что вы(ты) мне поможете(поможешь) 32 кб - максимальным сжатием RAR |
Цитата:
А то просто наезд какой-то получается :blink: Советы пиши, раз ты все знаешь. А если не интересно, можно вообще не лезть в эту тему... |
Код:
Код:
If KeyDown(72)=1 And KeyDown(75)=0 And KeyDown(77)=0 And KeyDown(80)=0 Смысле не "улучшеный" или так и оставить можно??? если есть варианты получше, я обязательно переделаю этот кусочек |
Да- проглядел я, что ресурсы уже были. Выкладывай только обновления/дополнения.
|
Код:
If KeyDown(72)=1 And KeyDown(75)=0 And KeyDown(77)=0 And ... пиши просто Код:
if keydown(72)=1 then ... end if а вот ето : Код:
MoveEntity player\obj,0,0,spd# пиши moveentity player\obj,spd#,0,0 moveentity player\obj,-spd#,0,0 и тд в итоге прийдеш к чемуто типа Код:
if keydown(xxx) moveentity p,s#,0,0 |
Могу посоветовать вот так сделать:
Код:
KEY_MOVE_LEFT = KeyDown(75) Почему-то взрываются БЕЛЫЕ кубики, НО это зависит от стороны, с которой осколок прилетел. Так же и с синими :dontknow: |
Вложений: 1
2Jimon
Спасибо за совет! я же не туплю, что все расписываю! Без этого будет баг с управлением и поворотом. 2impersonalisъ Вот выкладываю...но буду очень признателен, если вы мне с AI поможете! 2Жека обновил по твоей схеме управление!!! Спасибо! баг я уже описывал( я знаю, что правый осколок ничего не делает)...пока народ молчит 2ALL 1)Баги: " при разрыве" бомбы (бомба ставиться "пробелом", управление - 8,4,6 - доп. клава), осколок, который летит вправо не удаляет кубики, которые можно "взорвать. Разумееется не "взрывает" игрока. НУЖНА ПОМОЩЬ 2) AI. то, что нужно есть в диздоке! Я над этим думаю, но так как знаний мало, то все идет ооочень медленно. выложил исходник с "обновленным" управление. В управлении багов теперь нет. ОСТАЕТСЯ: БАГ со взрывом AI На этом пока все! |
для ИИ:
ИМО, для начала надо ограничить игрока и противников в движениях, а именно: чтобы они могли передвигаться только по середине прохода-лабиринта, чтобы не болтались от стенки к стенке. Сейчас это уже не так заметно, но "люфт" все же есть. Например, при продвижении в смежный коридор (после поворота на 90град) наблюдается "въезд" игрока в этот коридор из-за колизии сфера-полигоны. Также надо задавать "опорные точки" для противников, в которых они могут повернуться на +(-)90 град, в остальных только 180 град (это может и не обязательно). Надо разрешить текущие проблемы, то есть "неправильные" колизии осколков и кубиков: если осколок ударяется в убиваемый кубик справа, то соударения как такового не происходит; аналогичные действия, но слева - происходит соударение, как оно и должно быть. ПС: у меня нет времени прогу делать (ни эту, ни другие), поэтому "даю" только теорию, я еще не сказал, что это правильно, просто предлагаю то, что может понадобиться... Нужен доброволец, который бы уделил своего времени и более или менее основательно пересмотрел код. Истина ведь где-то рядом... |
К сожалению, не знаю когда разгебу с делами - но на выхах - точняк
|
вот твоя ошибка : посмотри внимательно c 272 по 275 строку
я нашол ошибку за ~45 сек... ps. если невидете такую примитивную ошибку то как вам писать большие игры ? а еще говорят что у меня нету опыта :bad: |
Совместно с jimon устранили баг с "взрывающимися" кубиками и осколками!
БАГ - очень сложно устранимый! итак: Код:
EntityType boom1\Obj,typeexp Код:
EntityType boom1\Obj,typeexp буду юзать! но от помощи как всегда не откажусь! |
Вот! Причем опечатку найти даже сложнее, чем другую ошибку, хотя и не всегда.
Насчет убивания белых все ясно, просто надо закомментировать 3 строчки в функции fnUpdateBooms() Код:
;copy_cube.cubes = Object.cubes (EntityName (ent4)) |
Итак, уважаемые друзья!!!
Смею вас заверить, что проект НЕ СДОХ, а успешно продолжает жить! Просто сейчас из-за учебы у меня нет времени... итак! вот что сегодня как тяжкий груз висит: 1) AI. описание есть в диздоке 2) Сделать призы. (пока это 3Д кубики, которые изменяют параметры игрока( все в диздоке) |
Ладно, уважаемые друзья-кодеры!!!
давайте все по-порядку! и добьем НАШ (заметим не мой, а уже Жекин, ZubZero, impersonalis, jimona) коль скоро у всех учеба...и нету времени, то я решил (как руководитель и "задумщик" проекта) делать так: а) задавать конкретные вопросы, а не писать тупо:сделаем призы :@ потому что это выглядит как:сделаем игру. б) спрашивать конкретные вопросы. в) в конце концов если вопрос туп (все просто) то убидительно прошу не напоминать мне это, ибо я уже не задаю вопрос, а говорю на каком этапе игра. То есть либо я это первый сделаю, либо ктто-то.. Кто первый сделает - тот и выкладывает! Итак: 1) AI нужно сделать так, что бы "кубик" (уже есть в исходниках - клавишей 1 активируется) при столкновении поворачивался на 90. При этом(это легко я делал) встречается баг! Если "кубик" между 3 кубиками-но он крутится до бесконечности. Вообзе про AI тип 1 есть в диздоке 2) Нужно создать кубик-приз. а) создать кубик - он должен создаваться ТОЛЬКО внутри убиваемого кубика(это сложность) б) убивается бомбой в)изменяет параметр игрока. Если взят - жизнь игрока=жизнь +1 (естть в диздоке. Для этого нужно ввести переменную жизни. (она есть...ее нужно апдейтНУТЬ) Итак... теперь я надеюсь, что кно-нибудь 1 пункт, но сделает! А то проект...замерзает(( |
(я новый код не зырил)
1. Советую сделать двухмерный массив, такой же как в редакторе карт, и его использовать для проверки есть ли препятствие на пути или нет, но коллизии оставить! Т.е. при столкновении противника со стенкой ты его поворачиваешь, но не сразу, а сначала проверяешь есть ли препятствие там, куда планируешь повернуть. Для определения наличия препятствия используешь "суперинформативний" массив. Тут "сложность" только в том, чтобы определить, в каком секторе карты находится противник, чтобы перевести его координаты в индексы массива. поле имеет размер 29х29, каждый кубик имеет размер 10х10х10 Получаем игровое поле 290х290 Допустим, противник врезался в стенку, имея координаты (надо только х и z) (127,y,200) Надо получить из этого индексы для массива, так получаем их! posX# = 127 posZ# = 200 koefX = posX# * 0.1 - "делим" координату Х на ширину кубика. Этим мы получили целое цисло кубиков, которые находятся слева от противника koefX - целое число! = 12 в нашем случае Надо что-то сделать с оставшейся 7-кой addX = posX# - koefX * 10 if (addX-5>2.5) koefX = koefX + 1 На практике не должно получиться этого "округления", потому что размер противника соизмерим с размером кубиков... так же для координаты z потом проверяем значение массива value = mapInfoMas(koefX,koefZ) - это для сектора, где противник в ДАННЫЙ момент - не интересно mapInfoMas(koefX-1,koefZ) - что находится слева от противника? mapInfoMas(koefX+1,koefZ) - что находится справа от противника? mapInfoMas(koefX,koefZ+1) - что находится спереди от противника? mapInfoMas(koefX,koefZ-1) - что находится позади противника? имеется ввиду сдвиг на 1 кубик в каждую сторону 2. Смотря что нужно: если призы должны появляться всегда в разных кубиках, то из игры их расставлять, если в одном и том же, то проще/нагляднее расставить в редакторе карт... ПС: чем отличаются пункты а) и б), которые самые верхние? |
Вложений: 1
Я немножко переделал функцию обработки ИИ, теперь противники бегают по полю и поворачиваются, если столкнулись с чем-то...
Но надо еще подправить кое-что: там, где я вписал проверку на коллизию противников с различными типами объектов, надо это писать не в один IF, а в несколько, т.к. бывает столкновение обновременно с игроком и стенкой и работает неправильно. Хотя может и не в том дело. !!! Я делал исправления в старой версии, какой не помню... ПС: Изначально противник(и) нарезает креги в "замкнутом" пространстве, но стоит нам взорвать одно из препятствий, как... ППС: это всем, кто просит помочь с кодом: те примеры, которые я пишу, НЕ ЯВЛЯЮТСЯ эталоном правильности или чего-то в этом роде, они позволяют врубиться что к чему (и то не всегда наверное), не больше. Поэтому: нужно брать саму идею и делать по-своему как вам УДОБНЕЕ, и не переделывать свою прогу ПОД МОЙ код! (если хотите - делайте, я не против, просто сказал, как лучше будет). Расширение файла надо ПЕРЕИМЕНОВАТЬ в RAR! |
2Жека:
Я посмотрел твой код. То, что есть в ИИ сейчас это то, к чему я когда-либо уже приходил. И потому я не выложил такой результат, что когда ИИ враг типа1 при коллизии с кубиком - поворачивается - это + , но при повороте он так же...меняет свою позицию - "дергается". Что крайне нежелательно. Убрать "дерганье" можно при помощи команды rotateentity. Но я не справился со всем. Посему прошу тебя немого пересмотреть "движение" ИИ. 2All 1) Сделал приз. дает +1 к кол-ву бомб. Теперь игрок не может клавишей пробел ставить больше 1 бомбы( пока не взорвется первая. При получении приза (активируется клавишей f5 на цифровой клавиатуре) игрок ставит уже 2 бомбы. Повторное нажатие f5 ставит опять кубик-приз 2) Убрал лишний код...привел в порядок то, что есть. Теперь белый(непробиваемый) кубик не пробивается 3) БАГ!!!! ВНИМАНИЕ: то, что нужно сделать: 1) f5 2) берем приз 3) ставим !!рядом!! 2 бомбы 4) взрыв в неположеном месте. Это грусно(( 4) Нужно сделать так, что бы кубик-приз(тот, что есть уже(то есть мой)) появлялся в случайном месте внутри кубика. (разумеется пробиваемого) 5) Необходимо сделать ИИ 2 типа. ОПИСАНИЕ: 2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики. *** Буду работать над кубиком-призом. Последняя версия бомбера - прилагается! |
И еще!
Дальнейшая разработка призов-трата времени! необходимо сперва сделать 4) Нужно сделать так, что бы кубик-приз(тот, что есть уже(то есть мой)) появлялся в случайном месте внутри кубика. (разумеется пробиваемого) пока этоо не будет...не будет дальнейших призов... :bad: думаем на этим... |
Вложил текстуру приза.
Теперь все работает |
мои изменения :
переделал колозии - нах так много ? переделал управление - было глючное стало нормальное и краткое убрал лошивий глюк - было в колозиях притом там две колозии повторялись ! поставил ботам тип колозий игрока - потомучто ето тоже самое зделал более-мение тупой ai :)) правда фактор случайности там кривой :)) замечание которые я сказал fant'у, говорю и здесь первое - ненадо столько колозий , тормозит второе - updateworld тоже некидай куда попало третье - ты зделал неочень рациональное управление четвертое - ненадо условие для if писать в скобках - можно но ненадо, если после if идет конструктция if ... end if то лутче напиши if aa=0 then... end if чем ети скобки а так вроде все нормально и главное - код не оптимизирован вообщем дерзайте мона повесить на етот код надпись : jimon modification ;) |
2jimon
1) Убрал баг 2) Положил начало ИИ (смешно звучит) 2ALL 1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого) 2) ИИ первого типа надо добить. 5) Необходимо сделать ИИ 2 типа. ОПИСАНИЕ: 2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики. и объяснить мне, что значит "оптимизировать код"...и почему мой - не оптимизированый. |
говорюже - с опытом прийдет к тебе понятие оптимизация :rolleyes:
|
Это так, но можно этот процесс ускорить!
Надо только раз показать что к чему, и все... |
еще один :o
вот пример оптимизиции в жизни реактивный двигатель универсален ракета для вылета в космос неуниверсальная и дорогая оптимизированый вариант - самолет , универсален и дешов и способен летать в космос а теперь представь ето в программировании... |
Все ваши ответы клевые и захватывающие :o
! но есть дела: 1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого) 2) ИИ первого типа надо добить. 5) Необходимо сделать ИИ 2 типа. ОПИСАНИЕ: 2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики. |
Нужно в момент поворота (сразу после столкновения) поворачивать на 90 до тех пор, пока не будет пика на вектор 0,0,z
|
Ага, нормально вполне, и проще всего...
Время найду - сделаю, если кто не опередит ;) |
:wallbash:
обнаружен баг. Жека обнаружил: Крайний верхний левый (белый кубик) - можно пройти сквозь него. В том же районе такой же синий :unsure: Нужна помощь по "разбору" бага...+ 1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого) 2) ИИ первого типа надо добить. 5) Необходимо сделать ИИ 2 типа. ОПИСАНИЕ: 2. Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов. Вырезка из ДизДока Сложность: как сделать так, что когда ИИ2 поворачивается, то он не наталкивался бы на стены, а поворачивался в тот момент, когда можно пойти в "коридор". То есть он не должен поворачиваться на белые кубики. пока так. |
Извините, что влезаю не в своё дело, но не могу не поинтересоваться:
Fant, когда ты САМ начнешь писать игру? По постам складывается такое впечатление, что ты только координатор :unsure: |
2Jet
Я начал писать эту игру. Я совсем мало знаю блиц и начал писать на форуме блицКоммюнити. Надо мной там посмеялись (хотя и помогали тоже) и я решил плавно перейти на этот замечательный форум. Ко мне присоединился Жека и мы вместе продолжили проект. Но из-за низкого опыта, да и не мое это (я не математик...и далек от информатики...о программирование даже не говорю) призвание кодить..но мне это нравится! Я активно стараюсь учавствовать на форуме(что знаю то и пишу)...а сейчас я очень редко(нету времени и опыта)(если для меня что-то сделать - очень долго и трудно, но я стараюсь, конечно! Ведь что-то и я делаю! Этого НИКТО отрицать не может) занимаюсь игрой. Но все-же мой пост живет! 1) Начинал я сам. У тебя правильное впечатление. Присоединяйся! На сегодняшний момент елси от меня никто здесь не отвернется, но я УВЕРЕН, что с моими координациями МЫ на 100% закончим игру! и пусть это будет ФОРУМНЫЙ проект!!!!!!!!! Respect Жека Impersonalis jimon SubZer0, который к сожалению давно не писал в посте...хотя активно помогал мне ранее. Если у кого-нибудь есть опыт в программировани, я не откажусь от помощи! Тогда мы быстрее сделаем игру. 2Jet: Я считаю, что уместнее ЭТО было бы спрашивать в "болтовне". Не продолжай здесь этот разговор пожалуйста! |
Все верно Jet говорит.
Это ОЧЕНЬ важный вопрос. Если ты знаешь мало, и твоих знаний явно не достаточно, чтобы сделать игру, то может сначала надо набраться этих знаний? А потом смело в бой! Координатор тоже никогда не лишний ;) |
1) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого)
Я уже писал про массив, аналогичный тому, что в редакторе карт... Заполняешь его значениями в функции загрузки карты, а потом при необходимости используешь. |
Всем кто так или иначе причастен к коду: комментируйте свои добавления, потому как разбираться в чужом коде хоть и полезно, но не самое приятное ;)
|
Цитата:
|
Итак, коль скоро я тут он-лайн, то не могу не осветить вопросы! Ибо без них...все будет плохо:
1) Крайний верхний левый (белый кубик) - можно пройти сквозь него. В том же районе такой же синий. Нельзя убить бомбой синий кубик - БАГ 2) Нужно сделать так, что бы кубик-приз появлялся внутри кубика(пробиваемого) Приз должен появлятся в "случайном" кубике. 3) ИИ типа 1 и ИИ типа 2. Все по ИИ есть в диздоке+ на форуме много раз писал. Повторяться в посте не буду. 4) Сделать приз, который при взятии (как тот, который увиличивает кол-во бомб) увеличивает скорость игрока. 5) Сделать приз, который при взятии (как тот, который увиличивает кол-во бомб) увеличивает радиус взрыва бомбы на +25 единиц(на 2 кубика). 6 ) по умолчанию радиус взрыва - 2 кубика. Это 35 блиц. единиц.(я мерил игроком. переставил его в другую координату...вообщем расчет точный(более или менее). Под радиусом взрыва я разумею расстояние, которое пролетает осколок, после взрыва бомбы. Его нужно уменьшить. |
Вложений: 1
Вот что сделал:
1. Кубики расставлялись криво, стенки стояли криво. В итоге казалось, что все нормально. Надо сдвигать все кубики на (-5) по оси Z, а они сдвигались на (+5). Стенки не помню как были, но тоже подровнял как надо. (Это в функции fnLoadLevel()) 2. Функция обработки взятия бонуса работала неправильно: там была проверка коллизии игрока с бонусами, а надо бонуса с игроком, поэтому при взятии ОДНОГО бонуса удалялись ВСЕ. Переделал ее, но не менял коллизии, так как пришлось бы делать полный перебор всех бонусов, чтобы узнать, какой же взял игрок. 3. Сделал создание бонусов внутри пробиваемых кубиков. F5 - увеличение количества бомб (зеленый) F6 - увеличение радиуса разлета осколков (красный) F7 - увеличение скорости движения игрока (синий) 4. Функция fnDestroyField() удаляла только кубики. Добавил в нее удаление Бомб, Осколков, Противников 1го типа (других-то нема пока) и Бонусов. 5. Добавил новое поле в тип "Кибики" и тип "Бонус1" - Field nomerX, nomerZ. Это позиция кубика, но не на поле, а в массиве что ли. Еще в другие типы добавил поля, по коду должно быть понятно все... 6. Скорость полета осколков сделал независимой от количества ФПС. Также и для игрока, и для противников. 7. Радиус разлета осколков задается числом и не зависит от того, сколько времени прошло с момента взрыва бомбы. Размер кубиков 10х10х10, если нам надо сделать радиус разлета в 2 кубика, то задаем его |рад = 20| и все. 8. Сделал поворот противника в сторону свободного прохода без дерганья. Но с противниками есть косяки - они на половину влазят в стены. И в кубики после колизии со стеной... Тип колизии у противников сделал BOX. Какая-то глючная колизия стала с Box'ом, а если радиус, то в узкие щели пытаются лезть, и круги наворачивают, если пролезут (когда игрок рядом с кубиком, и противник в него врезается...) 9. Сделал создание противников в случайном свободном месте. 10. Написал комментарии в местах, которые могут вызвать затруднения при чтении кода (все, что новое добавил, с комментариями, старое - местами только добавил). |
У меня сейчас к сожалению катастрофически нехватает времени, поэтому я немного "торможу" с проетком.
Сейчас могу сказать только одно БОГОПРОТИВНЫЙ БАГ, который уже просто ДОСТАЛ! Крайний верхний левый (белый кубик) - можно пройти сквозь него. В том же районе такой же синий. Нельзя убить бомбой синий кубик + можно сделать 4 режима камеры: 1) как в FPS (какера как бы в "кубике" 2) Следящая камера сверху 3) следящая под углом камера (как в любом РПГ) 4) Игрок сам фиксирует камеру (через кнопки на доп. клаве) и камера следит в заданом положении игроком. Призы я пока не прошу рассматривать. По Жекиному примеру сам их постараюсь добить. Необходимо сделать ИИ типа2. |
Цитата:
Причина бага: Ctrl+C - Ctrl+V. ПС: хотел сделать эффект "размытия при движении", но так и не врубился пока, как перевести 3д координаты в 2д. А просто копировать чужой код не хочется... |
Причина бага: Ctrl+C - Ctrl+V.
:wallbash: не понял... и почему был этот баг? |
Вложений: 1
Код взят из ф-ии fnLoadLevel()
Раньше было так: Код:
............................... Код:
............................... Сделал противников 2го типа, но они дерганые какие-то получились. :( Устранить дерганье можно так: сделать два "пикера" - это два пивота, которые располижить соотв. у правого и левого краёв объекта-противника в качестве его детей, и делать EntityPick не для самого объекта, а для этих пикеров. Если противник "захотел" повернуться в сторону, то поворачивать его только в том случае, когда оба пикера вернули НОЛЬ. Я пробовал сделать одного пикера - не получил того, что хотел (надеюсь что потому, что делал неправильно). Поэтому выкладываю код с дерганными "чертями". ПС: 1 - сделать противника 1го типа 2 - сделать противника 2го типа Выкладываю ВСЕ ресурсы игры. ППС: делаю исходник ЕЩЕ и в формате *.txt, потому что в редакторе кода он в непонятной кодировке (Юникод может?), и русские буквы у вас могут стать корявками (при копировании сюда, в форум, так и происходит). |
FPS меня не радует в двух отношениях:
1. Чатота изменения FPS (очень быстро дергается) Предлогаю заменить на следующее: Код:
* * *;FPS CHECK; 2. Сам FPS маловат (у меня CeleronD 2400 а FPS всего примерно 138 кадров/с) Предлагаю уменьшить кол-во объектов на карте путем загрузки всех неразрушаемых объектов как один (создавать повертексно в одном и том же меше(mesh), а точнее в его поверхности (surfse)), далее изменить к нему метод столкновения на ellipsoid-to-polygon. Это повысит FPS Вот к примеру функции из моей игры(http://pax-games.narod.ru/downloads/bombers3d.exe): Код:
Const BoxUpperSide%=0 * |
Извиняюсь за ошибку
Код:
C#=C#/2 alc'o'SHoLiK: исправил. |
Наверное я погорячился с методом ellipsoid-to-polygon.
Лучше вместо этого создать точку привязки и поставить ее на мето куба: Код:
Type GeomPivot Код:
Function FNDestroyPivots() |
|
2PAX
Спасибо, конечно, за примеры, но лично для меня (проектировщик и "наставитель" проекта) ои показались сложными... Я уверен, что кодеры, которые учавствуют в проекте по достоинству оценят ваш код! Заменил FPS проверку. Ваш вариант удобнее. Присоединяйся к нашему проекту! Я уверен, что с большей командой мы сделаем быстрее и лучше проект!!! 2Жека Дааа)) нашел 10 отличий в коде!!! Теперь с "кубиками" покончено. 2All Остается: 1) Домучить противника 2го типа 2) Сделать противника 3его типа а я, найдя время доведу-таки призы до ума! |
Да все не так уж и сложно:
В этом блоке определяются координаты вертексов(вершин) сторон куба(кроме нижней стороны) Код:
Select BoxSide% Код:
V1%=AddVertex(Surf%, X1#, Y1#, Z1#, 0, 0) |
Для использования этих функций нужно создать мустую модель и поверхность в ней жля добавления геометрии, вот пример:
Код:
global Mesh%=createmesh() Код:
Function AddBoxToSurface(Surf%,X#,Y#,Z#,C#=1) |
Куда делся Fant? Проект же в самом разгаре разработки был.
|
У Fant'а очень много всякой х... ((
и он очень хочет продолжить проект, но я боюсь, что ВРЕМЕННО он не сможет ничего ДЕЛАТЬ. Список вопросов: ИИ типа 2,3,4,5 Доделать призы, основываясь на диздоке А еще я ВОЗМОЖНО найду художницу (она знает фотошоп ) это хоршая новость. Плохая - у меня много учебы Проект не умер... Просто сейчас проекту как никогда нужен чел. у которого есть время и ОПЫТ осветить данные вопросы!!! |
Люди!
почему вы молчити!Или совсем про бомбера забыли! Ведь проетк готов почти на 45%! Без ВАШЕЙ помощи мне ИИ никогда не одолеть! Призы я почти сделал! скоро выложу (просто у меня мкоро д/р и в универе грузят! Но жизни для игрока я УЖЕ сделал. Осталось только приз-детонатор сделать. А как помощь мне необходимы: ИИ 2 типа доделать Странник - этот тип имеет обыновение путешествовать по игровой локации, поворачивая в случайном направлении(на 90,180,270,360 грудусов) каждые N количество секунд. Если встречает препятствие(любое), поворачивает на 90 грудусов Сделать: 1) ИИ 3 типа Ловец - не путешествует по локации(стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути возможный вариант) 2) ИИ 4 типа Убийца - путешествует по локации(не стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути). 3) ИИ 5 типа Активный - путешествует по карте. Избегает игрока. Создает юнитов с ИИ типа "Пассивный" |
Доделал призы.
Теперь: F3 - детонатор. Бомбы взрываются после нажатия клавиши enter F4 - увеличение жизни игрока F5 - увеличение количества бомб (зеленый) F6 - увеличение радиуса разлета осколков (красный) F7 - увеличение скорости движения игрока (синий) Это радует. Фактически система призов сделана. Необходимо доделать ИИ Нужно: 1) ИИ 3 типа Ловец - не путешествует по локации(стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути возможный вариант) 2) ИИ 4 типа Убийца - путешествует по локации(не стоит на месте). Если есть возможность видеть игрока, следует за ним( Астар(Astar) поиск пути). 3) ИИ 5 типа Активный - путешествует по карте. Избегает игрока. Создает юнитов с ИИ типа "Пассивный" Это по ИИ пока все. Поработать над камерой Камера: 1. Вид "из глаз"(как в экшн). 2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ). 3. Вид "вертикально сверху. При приближении камера следит за игроком. 4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком). ---------------------------- Люди! Почему все молчим? Я ведь без вашей помощи не сделаю полностью качественный проект! Пожалуйста, помогите мне с вопросами камеры, и,конечно, самое главное с ИИ. Я понимаю, что дать совет проще, но я отлично понимаю, что никому не хочется копаться в коде, но проект ведь "форумный", а к сожалению кроме меня и жеки никто в нем не учавствует! Вот так прикол! Я бы очень хотел, что бы еще хоть кто-нибудь присоединился к нашей команде, и помог нам! ------------------------- Присоединяю ВЕСЬ пакет бомбера! ВНИМАНИЕ: весит 17КБ |
Очень постыдно выпускаю другой файл .bb
Я перепутал тогда файлы и отправил старый !!! Просто замените старый файл на этот ЕСЛИ ЗАМЕЧЕНЫ БАГИ, просьба их исправить (по возможности) либо просто предоставить список токовых! |
1. По-моему, Астар - это слишком, тут проще можно сделать, в теории. На практике попробую, тогда точно скажу потянет или нет тот метод...
2. С камерой ты перегнул. Столько видов ни к чему, хотя в плане разнообразия это плюс. Если делать камеру от первой морды, то надо радар делать, чтобы видеть бомбы и игроков - это не проблема, проблема в том, что так неудобно играть будет (хотя кому как). Еще: если дать возможность камере НИЗКО опускаться, то модели объектов должны выглядеть лучше в разы... А молчим потому, что у большинства учеба и свои проекты не терпят отлагательства. Если конкретное что-то спрашивать, то совет всегда дадут, а так сложновато... Кстати, стиль прогерства у всех свой, поэтому после изменения кода разбираться сложнее... ПС: скоро мозги подделаю противникам (и самих недостающих типов противников), так что вряд ли кто-то останется в живых после встречи с ними ;) |
2Жека
1. По-моему тоже слишком, но просто это единственный пример, который пришел мне в голову. Пробуй свой метод. Я надеюсь, что все получится! 2. Конечно в плане разнообразия! Камера - с ней всегда можно побаловаться, а пользователь сам придумает, как уму лучше. 3. Я не уверен в "нужности" радара. Его ненадо делать, ведь если пользователь захочет, он сделает "вид сверху". Предложение про радар отменяется еще и по другой причине. Я ставил 15 врагов и очень расстроился количеством ФПС: 1). В самом начале 130-150. 2). 45 врагов - 40 фпс. не стабильно. глючт. это нормально? или "проблема в быстродействие? 4.Сколько "без тормозов" максимум можно кидать "врагов" на уровень? 5.Конечно модели должны быть отличными, ибо это простая аркадка и поэтому кроме как геймплеем и графикой, увы, ничем больше "славиться" не может. 6.А кроме меня, и тебя, Жека, сюда уже дааавно никто не "вносил поправки" в код. Поэтому все в коде, что я выложил сделано (то, что новое появилось) мною. 7.Спасибо, что "мозги" врагов делаешь! 2All: Камера: 1. Вид "из глаз"(как в экшн). 2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ). 3. Вид "вертикально сверху. При приближении камера следит за игроком. 4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком). Протестить ФПС: НЕ мало ли ФПС? Если кто-то считает, что производительность не очень, я с удовольствием приму поправки в код. Сделать функцию, расставляющую "пробиваемые" кубики на поле. То есть как "случайная расстановка" (для мультиплеера) ------------------------------------------------------------------------------------------------ |
Насчет фпс:
1. Надо сделать как PAX советовал, все в 1 меш засунуть 2. Учти, что противники - это кубики, когда модельки будут, будет еще тормознее работать 3. 45 врагов не понадобится за раз рисовать, максимум 10-15 (если только на сложном уровне). Насчет поправок в коде: это нормально, я постараюсь в ближайшее время продвинуть ход разработки. С камерой думаю надо подождать. Расстановка пробиваемых кубиков аналогична расстановке бонусов. |
Официально заявляю!
ВСЕ ПРИЗЫ ДЛЯ одного игрока СДЕЛАНЫ и РАБОТАЮ НУЖНО СДЕЛАТЬ: 1) ИИ2, ИИ3, ИИ4, ИИ5 - Жека над этим работает 2) Камера: 1. Вид "из глаз"(как в экшн). 2. Следящая сверху справа(или слева).камера следит за игроком(как в РПГ). 3. Вид "вертикально сверху. При приближении камера следит за игроком. 4. Вид, установленный пользователем. камера следит за игроком(любой вариант, настроенный игроком). 3) Возможность СОХРАНЕНИЯ и ЗАГРУЗКИ Людей над работой корпит очень мало! Жека и Я поэтому прошу присоединиться кто МОЖЕТ и ХОЧЕТ учавствовать в проекте! БАГ - если игрок стоит на бомбе и происходит взрыв, то не отнимаются жизни у игрока. - нужно работать над этим! Я не могу сказать, что проект "вянет", но лишние силы не помогут! ПРОШУ ПРОТЕСТИТЬ!!! 1) Если ли еще баги? 2) не мало ли ФПС при добавлении ИИ или большого количества взрывов? 3) Если есть что-то еще - пишите! Есть просьба: не пишите плз. сообщения типа "все клево" ... пишите в томи случае, если баги или проблемы(в частности с ФПС) обнаружены! С уважением, Санек (Александр, он же Fant)! выкладываю только код. все ресурсы я выкладывал ранее. Код весит 6 кб! |
Цитата:
Решение: надо перед самым взрывом бомбы проверять расстояние от нее до игрока, и если оно меньше, скажем, размера бомбы, то влип он, этот игрок. ОффТ: Цитата:
|
:?? :?? :?? :?? :?? :?? :?? :?? :)) :)) :)) :)) :))
вот я... :bad: :bad: совсем из ума выжил!!! Я имел ввиду НЕ помешают!!!!!!!!!!!!!!!!!!!!!!!!!!!! ТО есть наоборот! Хочу что бы люди присоединялись!!! А то всего 3 скачивания ((( да и никто сюда давно не писал! С бомбой Я лично разберусь, ! Это просто!!! Возможно поняту камеру А вот с остальными вопросами это уже сложнее :( :( и!!!! ЛЮДИ вы меня не правильно поняли!!! Вернее это я неправильно написал!!! Ни не помогут,а НЕ ПОМЕШАЮТ!!! ТО есть наоборот хочу, что бы народ присоединялся! И писал мнение об игре! Для этого я создам в болтавне специальный раздел!!! Так можно писать все, что угодно!!! |
Часовой пояс GMT +4, время: 12:33. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot