![]() |
Итак, я попробовал объединить кубики.
ДО количество фпс у меня было ~166, ПОСЛЕ стало ~250. Делал при помощи команды AddMesh(src,dest). НО: я добавлял кубики в два меша - один для пробиваемых, другой для непробиваемых кубиков. Как же теперь удалять пробиваемые кубики? - Никак! Просто их не надо объединять! Я это для проверки сделал. Если их не объединять, то фпс = ~200 Объединение стенок и пола прироста не дало, но возможно на медленных тачках будет заметно. |
Цитата:
Цитата:
|
Цитата:
PS: я над ним бился довольно долго 8) , но зато вышло неплохо ;) |
2Жека:
Накосячил! Знаю! Сам виноват! Просто в разработке впервые и не знаю как себя правильно вести! Вот и написал муть! Мне очень стыдно. 2PAX: Буду просто очень-очень признателен если вы покажете алгоритм! Будет тогда все клево! 2All: Сказал я глупую фразу! Простите пожалуйста! Очень хотелось бы всегда знать мнение ваше! И заходите в топик мой почаще! вот. Пока не буду писать ЧТО нужно делать, поскольку трудная работа с объединением все в один меш, и ИИ еще не до конца окончена! |
Ладно начнем...
Во-первых: весь мой уровень построен в виде матрицы пользовательского типа, каждый элемент матрицы содержит тип геометрии (если например куб уничтожен, то на его место ставится "0", для вашего случая можно в матрицу добавить поле для точки привязки, чтобы обрабатывать столкновения); Код:
Type PlaneMatrix В-третьих: линия геометрии имеет свой тип (или список), в котором хранится mesh (это на всякий случай),для кажной линии создается свой меш, и surface, все объединяется в масиив этого типа (Plane.PlaneLine(N), где N число линий); Код:
Type PlaneLine Код:
Type PlaneLineUpd Код:
Function UpdateLine(I%) Код:
For plu.PlaneLineUpd = Each PlaneLineUpd Код:
Function UpdatePlaneLine(I) Код:
Function AddBoxToSurface(Mesh%,GeomType%,X#,Y#,Z#) Рекомендации: можете добавлять торько разрушаемые кубы к мешу, а неразрушаемые объединить в один (как сделал Жека). PS: Я привел сильно упрощенный алгоритм (в нем нет "тумана войны" и повертексного создания геометрии) но думаю для вашей игры это лучше всего (кстати, в моей игре в загружаемых картах неразрушимая геометрия строится этим же способом). Вот и все ;) |
а зачем такие сложности ?
|
Цитата:
|
2PAX
Огромное тебе СПАСИБО ! Я в нем со временем постараюсь разобраться! Хотя сложно (для моего уровня) |
2Жека
Огромное спасибо, что ты со мной и всегда помогаешь, а главное ВСЕГДА ПОДДЕРЖИВАЕШЬ меня! Для меня все это очень важно! 2ALL Сделал: 1) С камерой покончено. Все. * Я с удовольствием выслушаю любое предложение(что и где поменять В КАМЕРЕ * Любую критику или совет ПО ПРАВКЕ кода! Без вашей помощи будет сложно тестировать проект! Нужно: 1) ИИ (все в диздоке) 2) Оптимизировать код (все засунуть в меш, как мне неоднократно предлогали и Pax выложил как это сделать! За что ему отдельный respect!!! ----------------------------------------------------------------------------------------------- думаю, что пока это все. есть всего два вопроса. Но они очень объемные. 8,4,5,6 - на доп. клаве - движение. 1,2,3 - на доп. клаве фиксировать камеру. 1,2 - вызвать ИИ f1, f2, f3, f4, f5, f6, f7 - призы пробел - ставить бомбу enter - взорвать (если есть приз детонатор) колесо мыши, левая, правая кнопка - управление камерой *выкладываю ВСЕГО бомбера, что есть на сегодня. ВЕСИТ 41 КБ!!! |
Цитата:
Я тебя понимаю: хочется так много сказать, вот и говоришь, а то что мысли кое-где не стыкуются, это не страшно (меня радует, когда такое вижу, в хорошем смысле). По игре: 1. можно сделать ещё "режим бога", т.е. чтобы камера была высоко и смотрела вниз, но была привязана к игроку. А то врагов не видно и заблудиться можно в лабиринте (). 2. так и хочется вручить игроку дробовик при виде от первого лица :) (и чтобы монстры не кончались, пока камера вся не зальётся кровью) 3. конструкцию ***bomb\lifetime = bomb\lifetime+50 ***If (bomb\lifetime=5000 ) то взрыв бомбы надо заменить на такое а)запоминаем время создания бомбы, т.е. когда нажали пробел - bomb\timeCreated = MilliSecs() б)устанавливаем НАСТОЯЩЕЕ время (в миллисекундах) жизни бомбы - bomb\timeLife = 2000 (будет жить 2 секунды) в)делаем проверку: если (MilliSecs()-bomb\timeCreated >= bomb\timeLife) то делаем всё, что относится к взрыву Это нужно для того, чтобы скорость взрыва бомбы не зависела от мощности компа игрока. 4.почему враги не убивают игрока, они же такие страшные и злые? 5.в функции создания камеры сразу после строчки c\camera=CreateCamera() добавить строчку PositionEntity C\camera,5,5,-270 этим мы установим камеру в позицию игрока, и она не будет нестись к игроку через всё игровое поле 6.функция сброса коллизий для прохода игрока сквозь стены получилась почти копией для функции установки коллизий для всего, надо подумать, можно ли упростить её. 7.самого бонуса прохода сквозь стены я не нашёл 8.убрать удаление уровня нажатием на F8 ПС: Дробовик нужен, стопудово! |
Спасибо за поддержку!
По игре: 1) Режим бога сделал. Теперь по нажатии клавиши 9 на доп. Клаве есть этот режим. * Ужасное неудобство на середине карты. Очень резкий поворот камеры, хотя и и так уменьшил значения. Что делать? 2) Этот бомбер называется standard edition. То есть ничего оригинального. Просто ремейк старого бомбера 92 года. Ни крови, ни насилия, ни оружия не будет. Зато в проекте Bomberman_UnlimitedEdition (если закончим этот бомбер, конечно…вот там можно будет оторваться J ) * Все еще в переди;) 3) Не осилил. К сожалению. 4) Враги теперь убавляют жизни у игрока · Систему нужно дорабатывать. К примеру если жизнь отняли, уничтожаем плеера и ставим в начальную позицию. Думаю, что на данном этапе этого пока достаточно 5) Сделал камеру. 6) Буду думать, но пока ничего не придумал. Да и идея сброса – jimona…но буду думать! 7) F2 на клавиатуре. Появляется кубик как обычно. 8) Убрал! Жду следующих команд по тому, что нужно делать! Тестим то, что есть! ПС: ты серьезно про оружие? |
1. пока не знаю, не думал
3. Это просто, не парься, если не въезжаешь пока, сделаю - увидишь. про оружие пошутил, но если довернуть оружие, то получим отдельную игру. я с ИИ так и не разобрался - дёргаются! :( |
Как ты считаешь!? Чтоит обраться на RBC или засмеют и заклюют как обычно?
|
Надо противников доделать сначала, чтобы уже поиграться можно было.
ПС: просьба мне рейтинг не повышать так часто - неудобно. |
Я повысил тебе рейтинг за ДЕЛА!
Ты, единственный, кто ТАК моного помогаешь с блиц! Это достойно + А логотип! Без тебя не было бы того, что там есть) загляни, кстати! Это тоже "+" Я не прав? Если не прав, то не буду так часто повышать) А Если прав - то... Так я и говорю! Обратиться в RBC форум? Может не засмеют...хотя сомневаюсь! Там тока это и умеют! |
Просто надо делать так, чтобы не засмеяли. Смех - естественная реакция. И вообще, ты же просто показываешь игру, не понравится - их проблемы :)
|
И еще, сделайте кубики без нижней стороны, чтоб лишних треугольников в сцене не было.
|
а у вас все угарно получается :)
фант... иногда даже гуру ошибаются (я думаю ты поймеш о чем я) |
Цитата:
Но подразумеваю что ты имеешь ввиду что-то плохое! ГОВОРИ! :( |
Цитата:
|
Цитата:
|
Цитата:
Вопрос: какой нужно брать размер в максе и при каких единицах измерения, чтобы "линейная 1ца" в максе соответствовала 1це в блитце? |
2 fant - я тебе раньше когдато говорил что у тебя проект провальный
похоже что щас дела пошли наоборот ;) |
2Жека:
Понял! Буду эксперементировать! Не знаю про размеры. Не проверял! Когда я делал в максе можели(для прошлых неудачных игр, то я все делал в масе и проблем с размерами не было! 2jimon: Спасибо за поддержку! |
Цитата:
|
Я помойму раньше приводил этот код:
Код:
Const BoxUpperSide%=0 |
2Pax
Уууу...код то ты приводил...но я не понимаю КАК им пользоваться! :?? что куда втыкать, что бы куб появился!? |
Цитата:
Код:
box=CreateMesh() Да из функции AddBoxToSurface(Surf%,BoxSide%,X#,Y#,Z#,C#=1) сотрите параметр BoxSide% - он не нужен, а код примера просто скопируй в своего бомбера ;) |
СпасибО!
Я сделаю! Завтра! А то щас англ. делаю! Не могу проверить! |
Выбирая направление движения ориентируй врагов на Игрока, а не проверяй бездумно куда можно пойти... Сначала строй вектор между врагом и игроком, определяй где он находится, если правее. значит сначала проверь можно пойти направо или нет...
Проверку на смену движения делай только между блоками, незачем делать ее через рандомное время... Синхронизацию скорости с ФПС тем способом который ты делаешь сделать невозможно... У тебя будет получаться что объект который проходит обработку позднее будет двигаться быстрее. Хотя в данном случае этого может и не будет заметно. Нужно перед обработкой логики запомнить значение времени и везде использовать эту переменную... Колизии тебе здесь мешают... Тебе нужет только masPrep... Это для ИИ посоветовал Tolking Pet! |
Код:
Pax ! Его идея! Повысилось ФПС! Очень незначительно! Но повысилось! |
Подведем итоги:
Глобальные проблемы: 1) ИИ К сожалению это проблема номер 1. И пока не решима(на сегодня) -------------------------------------------------------------------------------- Очень нужна помощь с ИИ 2) Сделать генератор случайной расстановки пробиваемых кубиков(для "схватки") |
Я бы сказал не нерешима, а не решеНА.
Случайная расстановка кубиков аналогична расстановке бонусов, только делаешь цикл от 1 до колвоКубиков, в котором их и расставляешь. |
2Жека :
Я кстати не заметил, где в бомбере неразрушимые кубики объединяются в один меш... по мойму для этого надо создать пустой меш, и запихивать их туда, да еще вместо того чтобы к кубикам применять EntityRadius() надо создать точку привязки и ей сделать EntityRadius() (как бы имитация, что на этом месте стоит куб). Просто если все объединить в один меш инфа по колизиям потеряется... |
А я Fant'у не давал исходник с объединёнными кубиками.
А у нас стоит (и стоял) метод элипсоид-полигоны, поэтому ничего не потерялось. Если делать элипсоид-элипсоид, то игрок будет немного "въезжать" между кубиков. |
Цитата:
в своей игре я кстати вообще обрабатываю коллизии вручную, тока для вашей игры это может не подойти, у меня положение игрока выравнивается по клеточкам про каждом повороте... |
Здесь тоже надо вручную: и игрок, и противники должны двигаться между кубиками от кубика к кубику, а щас они просто движутся, без выравнивания.
|
Цитата:
Так так оно и есть! Повернуться можно на 90 градусов! А хотьба? Можно заставить игрока ходить на 5 единиц каждый раз! Тогда что же бужедет с плавностью? Вообще идея, конечно, хорошая! Но я пока что не представляю как ее реализовать! Не кажется ли, что при выравнивании будут "резкие движения" ? (я,конечно, не знаю точно, но все же!) |
Цитата:
Надеюсь, что это я сам осилю! Ну а если что, то напишу в раздел 3d программирования! Но, надеюсь, что кубики я сам расставлю! Я уже так сам как-то расставлял (года 1,2 назад) И проблема, с котороя я застрял была: КАК заставить коллидется пробиваемые кубики между собой! Это и была самая ужасная трабла! Я сумел сделать так, что бы не было коллизии непробиваеых и пробиваемых, а вот пробиваемых и пробиваемых увы не смог :( |
Цитата:
Посмотри расстановку бонусов. Метод элипсоид-бокс надо попробовать - узнать что быстрее. Кстати, для работы ИИ кубикам установлен ПИК-режим - это тоже тормозит, наверное. Движения на 5 делать конечно не надо! Просто надо сделать автоматическую хотьбу между клетками, т.е. игрок нажал клавишу "вперёд" и отпустил, а его герой продолжает двигаться, пока не пройдёт 5 единиц - ПЛАВНО. Так же и с простивниками. |
Цитата:
|
ВО ПЕРВЫХ С НОВЫМ ГОДОМ ВСЕХ!!!!!!!!!!
а теперь к делу: Как насчет такого меню? Ведь работает! Можно нажать на кнопку "опции", а потом опять вернуться в главное меню! Только вот так и не смог я начать новую игру из меню! (вставлял все "главные" функции, но почему-то не вышло. Вообщем как вообще ЛУЧШЕ делать меню? И чего плохого в моем меню! (ведь можно его продолжать расширять(по моей идеи). Этот вариант меню я взял с учебника Скавена. Если убрать в начале функцию главного меню, то можно рассмотреть игру. Добавил 1 карту игровую. + влепил по нажатии f10 случайную расстановку. Пока что все! Жду замечаний по поводу меню! (и конечно советов) |
кстати кльово ! :)
только меню ужс... и двигай на одиницу движения а не на то что щас - просто удобнее будет |
Цитата:
Как меню? |
по коду более мение
по виду ужас и неработает |
Цитата:
Хм...как это по коду не работает? В меню "опции" можно зайти? Да! Значит работает! И выход тоже работает! Только почему-то ругается на freefont!(странно) Что бы кнопки нажимались нужно целиться в центр слова(пока так! Ведь это все пока что "без графы") Я не знаю как мне сделать "одиночную"(пока там стоит чушь! Лишь бы ничего не происходило) ! Я при условии нажатия if нажали=1 загружаю 4 основные функции: ;MAIN FUNCTIONSfnCreatePlayer() fnCreateEnvir() Global cam.ChaseCam = CreateChaseCam.ChaseCam(player\obj); - CAMERA fnLoadlevel("maps\TestAI1.txt") fnSetCollisions() ;MAIN FUNCTIONS и ничего! Не знаешь в чем фишка? Может cls де-нибудь не хватает!? И еще! По какому принципу строить меню "изменение клавиш управления" ? Да и "выбор разрешения монитора" 2LL Не у кого случайно нет(или может кто знает) как делать реальное меню!? |
взять нормальное gui - к примеру NGui
|
XGUI-красиво, стильно, аля Win - но долго грузит скины - для игры не самое подходящее
AlphaGUI - красивые эффекты перехода, но безбожно глючит , если в игре заюзан ProjMode NGUI - оптимальный вариант, но некоторые переменны (по недосмотру авторов) не имеют библиотечного префикса, так что надо быть аккуратным при объявлении переменных, чтобы "не задеть" ГУИшные. |
У меня когда-то был GUI какой-то, но я так и не разобрался. Хелпа к нему не было.
Насколько меню, сделанное в NGUI лучше чем то, которое можно сваять средствами blitz? Если разница велика, подскажите пожалуйста где можно скачать NGUI с примером и хелпом (если такое имеется) Если "игра не стоит свеч" то по какому принципу лучше делать меню средствами блиц? |
ети все перечисленые гуи написаны на блитце :)
|
Цитата:
Вывод. Если делать меню без них, то выходит что я изобретаю велосипед! А насколько сложно делать на ГУИ меню? Может мне проще будет по функциям(как и в начале задумано)? Где можно достать ГУИ? (а стоит ли, если разница между красотой и сожностью создания настолько велика, что я просто не справлюсь) |
где достать ? в гугле или где нить... даже хотябы по запросу "NGui download" :)
и делать несложно... только надо незапутатся ... а то .bb файл гуи весит ~400 кб, справка столько же :) |
Цитата:
Посмотрел примеры, но еще не резбирался! Примеры ооочень красивые! А это правильно, что Ngui.bb не запускается? |
ето просто набор функций,типов и глобальных переменых + когда ты его инклудиш там выполняется код псевдоинициализации
тоесть ето просто можно щитать псевдо-библеотекой, из етого правильно что он незапускается :) |
Вообщем первое, что я хочу сказать тут это то, что бомбер жив, и продолжает развиваться!!! :ok:
Хотя сейчас испытывает проект трудности (наврерное это уже все слышали 1000 раз, так что пишу это с улыбкой) Выкладываю последнюю версию. А вот и что необходимо: 1) Нужен 2D художник! 2) Есть баги, которые трудно мне исправить, то если кто-нить из форума великодушно сможет разобраться, то я буду только рад! Описание: Сейчас игра запускается в режиме "случайное расставление пробиваемых кубиков" Так вот: Если попытаться клавишей f2-f6 (любой из них) добавить приз на игровую локацию, игра полностью зависнет. При этом если загрузить карту с кубиками, то бага не происходит и призы добавляются отлично. Что нужно: Сделать так, что бы при добавлении приза на локацию, не происходило зависание игры. Пока что все! очень надеюсь, что мне помогут с этим вопросом!!! |
:SOS: никто не знает как это сделать!?
|
Блин! нет ничего хуже, чем когда тебя игнорируют!
Это тонкий намек на то, что мне можно удалять тему и забить на бомбера? :'(( |
Цитата:
Это примерно то же самое. что : Я варю борщ, а он гад очень невкусный выходит. Что мне делать ? Где-то ты накосячил в коде, а вот где - только тебе искать. ;) |
Ладно! С багом помутю что-нить! А как реализовать (я даже представить не могу) хождение игрока не на 1 клетку (при нажатии клавиши вперед) а сразу на 5 или на 10 (при этом что бы это мягко было)
|
Покажи кусок кода, который у тебя двигает на одну клетку
|
Код:
Function fnUpdatePlayer(spd#=1) |
не уверен, но может надо сделать spd#=5 или скока там надо...
|
Меняй значение spd#
или делай так: Код:
|
Цитата:
А где же мы используем step_player? |
Часовой пояс GMT +4, время: 04:52. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot