![]() |
Самопальная физика.
Тут на днях с велеколепного BlitzEtc нарыл хорошую функцию, которую и искал: Пересекаются ли отрезок и окружность?
Значит, после махинаций над функцией, с моими функциями нахождений угла, и дистанций, модернизировал функцию, и что она теперь умеет: 1. Возвращает: Пересекаются ли? 2. Угол пересечения, от ближайшей точки к центру окружности. 3. Сила заступа. 4. И ещё другие значения. Итого у нас есть основа для физики, основывающейся, на окружностях и линиях. Осталось сделать трение и отсок, и сочления окружностей, и это я сделал. Итого вышло, за 7,5 часов немного багованая, бесконечная игрулька, с транспортом, у которого 2 колеса, тело, и дополнительная точка, отвечающая за то что-бы сочления не бадялись как заблагоросудится (LineRider - хороший пример, когда у некоторых моделей выворачивались части). Так вот, ну и замутил, небольшую демо, начит на 2 начинаем, W - газуем, S - тормозим. A\D - наклоняем. Ну собственно и всё, если значит появились внезапно заного, то это вы разбились =). Уровень генерируется постоянно, и абсолютно рандомно, и бесконечно. Может быть и не линейный, а очень разнообразный уровень, это я так что-бы показать ;) . Сорс правда забыл, но принесу обязательно! ;) Вот дема. Коментарии приветствуются :super: |
Re: Самопальная физика.
Цитата:
онаж там лежит ужо месяца 4 (если не большн) Пример классный! Респект. |
Re: Самопальная физика.
Шустро! Только, касаемо демы: почему модель периодически возвращается назад?
|
Re: Самопальная физика.
не назад, а сразу над машиной когда Разбился, тоесть есть условия, если нагрузка на калёса разная, то по задумке, колёса ломаются, тока я не все условия прописал, там баги ух как много. =) Да и кстать, эта машинка, и 4к линий, на моём компе держит стабильно.
|
Re: Самопальная физика.
Цитата:
Цитата:
|
Re: Самопальная физика.
Вот, думаю, может пригодиться: http://uk.geocities.com/olivier_rebellion/Polycolly.zip
Это хорошо объясненный алгоритм детекции коллизии полигонов (на английском правда). |
Re: Самопальная физика.
УХТЫ РЕСПЕКТ. НЕ ПЛОХО.
Похвально даже очень. По времени с функцией долго мучался? |
Re: Самопальная физика.
прикольно чуствуется динамика "машинки" :) мне понравилось
|
Re: Самопальная физика.
Мне тоже понравилось. МоКа говорил, что за 6 часов сделал.
|
Re: Самопальная физика.
Молодец сделано неплохо, учитывая сколько время потрачено!
|
Re: Самопальная физика.
Спасибо! Даже не думал что так классно вышло! ;)
Цитата:
Просто эти 7 часов, я много творил, что и небыло в демке, нужно было же сделать отскок от линий, это оказалось не совсем просто, что-бы отскакивало корректно, в нужную сторону, да и по секрету: и щас не совсем правильно с точки зрения физики. Сегодня сорс выложу. ;) |
Re: Самопальная физика.
кульно! респект! даёш красивую графику!
|
Re: Самопальная физика.
Реально супер! За такой короткий срок!!! Так держать!!!
|
Re: Самопальная физика.
Ура!!! Наконец я поборол эти углы! Всё никак не мог сделать правельный отскок, проблема была в нахождении угла отскока, зная перпендикулярный угол линии (угол коллизии с линией) и угол перемещения, исходя из них я только смог узнать угол отскока. Угол=Угол_Коллизии+(Угол_Колизии-Угол_Скорости). Оказалось всё просто, но я спешил, хотел сделать побыстрее, и маялся всё не мог сообразить, потом сел так, продумал, какие у нас есть углы, чему должен быть равен угол отскока, ведь угол отскока, это в два раза больше чем угол между точкой соприкосновения, и двумя точками: центром окружности и точкой которая получается от угла коллизии. Всё на самом деле было проще чем мне казалось, вот и я сделал Правильные отскоки! Я рад за себя! :)
Ещё добавил совсем чуток графики – землю Да и баг исправил, что транспорт, сам потихоньку ехал, и что иногда отскакивал (это было что я проверял на коллизию со всеми линиями, и если коллизились сразу 2 линии то от них отталкивал, поэтому и был такой вот артефакт. Теперь я проверяю на самую близкую точку коллизии, и только от неё отталкиваю) Короче говоря, теперь отталкивается всё правильно, на трамплинах подлетает нормально. И если в огромном падении, аккуратно приземляется на склон, то не разбивается, т.к. теперь отскок правильный, и по физике он должен будет ускориться, тоесть скорость по Y начнёт переходить в скорость по X, когда спуск начнёт выравниваться, впрочем это всё за счёт правильного отскока :). Выкладываю сорс как и обещал. (Только я ещё не успел там навести порядок ;) И разложить всё по полочкам :) ) Ой, забыл добавить, что разрешение поменяйте =) А то я там поставил 1280х960, поставте к примеру 800х600. ![]() |
Re: Самопальная физика.
За сорс Спасибо! :)
|
Re: Самопальная физика.
Дай ЕХЕ ;)
|
Re: Самопальная физика.
Дай ЕХЕ.
|
Re: Самопальная физика.
Вложений: 2
Ловите.
|
Re: Самопальная физика.
Исправил глупый баг, относительно выбора ближайшей линии, с которой производить коллизию, теперь пропали порой непонятные разломы машины, и разбиваться стало реже, и ездить стало лучше.
Вот нарисовал набросок машинки. Сделал амортизаторы. Колёса, крутятся по-моему очень реалистично, на самом деле это фэйк ;) Они не исходя физики крутятся, а из определённых условий. Немого отконфигурировал положения тел, для большей динамичности. Добавил Партиклы, и прикрепил источники к машинке, теперь гонять стало намного эффектнее, с рёвом плазмы задних трубок, и пыли из под колёс. :) Сделал подобие радара. Начал работать с оружием, но решил не делать всякой стрельбы. Вот у меня есть вопрос: Как я понял в старых версиях была команда, что-то типо: FlushMem – которая отчищала оперативку, и удаляла неиспользуемые объекты (так?), так вот, но у меня её нету :( И поэтому если добавляю пули, и удаляю их (Как и в первом сорсе я удаляю линии, тоесть в списке, делаю remove), так вот как я понял они только удаляются из списка, но не из памяти, а мне надо из памяти, как это сделать? Пробовал Delete что-то ругается, по разному пробовал, и не катит :(. Вот очередная дема (EXE). :) И скриншотик ;): ![]() |
Re: Самопальная физика.
Мега круто! Мне очень понравилось! Супер! Даже не смотря на однообразность, геймплей затягивает! Сделай ешо препятствия всякие, тамплины и т.д. и добавь жизни. Смысл игры - проехать карту как можно скорее и не разбиццо. имхо будет прикольно. На мобильнике была подобная игра, только там мотоцыкл :)
кстать самый реальный способ не разбццо в твоей игре - падать пузом кверху, крышей вниз :) так выживаеш, падая с любой высоты |
Re: Самопальная физика.
2Moka Попробуй поставить ссылку на объект Null (но это скорее всего не поможет) Delete как написано в хелпе зарезервирован для каких-то целей (пока наверное не придумали для каких :)) А флушмем еще с 1.14 ушла куда-то... :(
|
Re: Самопальная физика.
|
Re: Самопальная физика.
Народ! Я бы хотел узнать ваши предложения, чтобы вы хотели добавить в "игру"! И опишите это! А я постараюсь добавить! :)
Да и с проблеммой утечки памяти всё решил, но где-то утечка всёравно есть =( И немогу понять где. Просто ставлю на 15 минут на месте машинку, и потом Такие лаги будут, притом возрастают. |
Re: Самопальная физика.
Попробуй вместо PNG другой формат использовать.
|
Re: Самопальная физика.
Мое мнение ты уже слышал, но скажу еще раз - таймер, ну и кто дальше проедет.
|
Re: Самопальная физика.
Цитата:
0. приравнивание к Null освобождает память занимаемую переменной (если только эта одна переменная ссылается на эту память) 1. Delete - стандартный деструктор, этот метод по умолчанию уничтожает данные объекта в памяти (сложно структурированные данные неумеет уничтожать) 2. Можно писать свой метод Delete и уничтожать данные как вам удобнее и правильнее. 3. В любом случае ваш или стандартный деструктор Delete объекта вызывается автоматически при присваивании переменной Null. 4. Утечки памяти в 99% случаев по вине программиста и менее 1% по вине софта на которм он пишет. 5. FlushMem переименована в GCollect() Пока всё... |
Re: Самопальная физика.
|
Re: Самопальная физика.
Для тех кто в танке поясняю, пока все ссылки на объект не станут null объект будет жив...как тока на объект неуказывает ни одной сцылки он удаляется из памяти.
|
Про игру я уже тебе в асе сказал. (динамическое окружение и т.п.)
Насчет утечки, тут посложнее. Для начала попробуй запустить GCCollect() в цикле. Если не поможет, то у меня есть некоторые подозрения на партиклы от игрока, террайн и на загрузку ресурсов, посмотри все внимательно, особенно флаги у изображений, обрати внимание на blend mode. Вполне может быть, что паразит спрятался в алгоритме притяжения к земли. ЗЫ. МоКа, по проге видно, что у тебя версия блиц макса <= 1.14, это не есть хорошо. |
Re: Самопальная физика.
Версия как раз 1.22 (вроде :) )
Насчёт приравнивания к Нулл, тут блин, частично сделал, а частично нет, т.к. гдето утечки, чтож теперь ясно, что за отчисткой нужно самому следить. Вот очередной маленький упдэйт, теперь уровень не бесконечный, и генерируется в самом начале, и есть время и скорость (Спасибо HolyDel). Едим, смотрим и постим ваши лучшие результаты. :) Мой 749\с ;) |
Re: Самопальная физика.
1:27
594\c вообще то я немного другое имел ввиду, лучше сделать так (на мой взгляд): бесконечный уровень: таймер, устанавливаеш на 60 секунд в начале уровня и поехали, когда время закончиться смотрим наскоко проехали, запоминаем и можно уже мериться пиписьками. можно всякие там бонусы расстреливать которые драгоценные секунды добавляют. разбился - в аут, игра незасчитывается. |
Re: Самопальная физика.
О! Спасибо, думаю это в точку! Хм, может и добавить хотябы 2-3 жизни, а насчёт бонусов, угу, думаю самое то!
*Поехал домой кодить ;)* |
Re: Самопальная физика.
память в проге течет :)
|
1.13
644/c На счет геймплея: думаю надо сделать два режима - на время и на проходимость, т е если весь уровень прошел то зачет, если нет, то на начало. Очень понравилось. Продолжай дальше. ЗЫ: Думаю еще чуток и можно переезжать в раздел - "на этапе разработки". Жду следующую демку. Найден баг: при приземлении я умудрился не разбиться. Я приземлился на переднее колесо и подпрыгнул снова, после чего у меня жутко выгнулась подвеска, при этом я в полете сделал переворот на 180 град., т е как бы колесами вверх. В этот момент у меня колеса перенеслись с верха вниз и после этого я мог ехать на крыше. /*edited*/ Снова тот же баг не дает мне ехать нормально, только на этот раз даже не пришлось переворачиваться. Подвеска, после отскока моей тачки от земли, вытянулась и пошла назад, а уже когда снова я приземлился на землю подвеска отскочила и перешла на крышу. Лекарство: сделать предел длины подвески, или сделать так чтоб она не крутилась а только вверх/вниз и все. 1.5 750/с |
Re: Самопальная физика.
у него дома инета нету так что выходит сюда он не так часто.
|
Re: Самопальная физика.
H@NON Спасибо большое! Да сорри, я не часто могу выйти в интернет ;).
Угу этот баг я знаю =) Лекарство по идее не сложное, там просто проверка на градусы тела машинки и градус между двух колёс если разница больше 90 градусов то ломать машинку. Дема будет скоро новая, угу так и расчитывал: 2 режима :) Цитата:
|
Re: Самопальная физика.
в игре Time Left - Это же вроде Времени осталось? Так почему же там отсчет идет? а не стремится время к 0?
|
Ответ: Самопальная физика.
Вот тут попросили найти, искал, все ссылки полетели, попросил H@NON'а, он поискал у себя и я нашёл, за что ему огромное пасипа!
Вот ссыль. Там exe и сорсик, только более ранний, у меня тогда полетел жёсткий. |
| Часовой пояс GMT +4, время: 14:40. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot