Форум » Вопрос-Ответ » Появление объекта в gm6.1 » Ответить

Появление объекта в gm6.1

Dmak inc.: Эээ, всем привет, всем добрый день. Долго не был на форуме и понял, что без вашей помощи мне не обойтись)) Тут такой вопросик, как сделать, что бы и одной точки появился один квадратик. Затем 4, 8 и т.д. Не знаю, как по умному записать этот код. Что бы за определенное время они появлялись, а затем всё быстрее и быстрее.

Ответов - 34

FatPir: Dmak inc. можно сделать один большой спрайт. А вообще обьясни полудше, это непонятно

sanchez: Напиши в квадрате типо если место рядом с ним пусто тогда создавать обьект. Вот с этой функцией collision_point(x,y,obj,prec,notme) Проверяет, есть ли в точке (x,y) столкновение с объектами obj. Если хочешь, могу скачать гамак и сделать пример

lero: лучше для большей производительности и меньшей хавости памяти и легкости делать через массивы


sanchez: lero Поделись мудростью!

2man: Dmak inc. Надо сделать, чтобы просто появился квадратик? Потом вокруг него еще 4? Потом далее, так?

Ev-genius: та не народ, массивов тут ненужно =) побыстрому в цикле создаем и делов)) ща накидаю

Ev-genius: короче, создаешь обьект вокруг которого будут создаваться квадратики как уж они у тя будут создаваться мне было неважно. (подправить скриптег под себя и всё будет как надо) rad = 4; // это радиус нужный. for (i=-rad; i<=rad; i+=1) { k=rad-abs(i); for(j=-k; j<=k; j+=1) { obx=x+i*20; //юзал квадратики hole из набора. они 20х20, вставить свои цифорки =) oby=y+j*20; instance_create(obx,oby,ob); //ну а сами квадратики что я юзал назывались ob } } короче сделал object0 который при появлении создает ob квадратики, каким радиусом тебе это нужно =)

Ev-genius: соответственно если вместо instance_create(obx,oby,ob); вставить условие: if(abs(j)+abs(i)==rad){instance_create(obx,oby,ob);} то будет рисоваться только обводка ромбика без внутренности тогда ты гдето в цикле (в степе) прибавляешь rad на единичку пока это нужно, и с каждым новым рад, дорисовываешь новый слой =) причем если поставить ещё и что то типа sleep(1000) прорисовка будет понаростающе с паузами, а скриптег гарантирует, что ни один кубик не будет сверху на другом, дубликатом

Dmak inc.: sanchez Да, если можно примерчик)) lero Ну давайте начнём с того, что я не знаю, что такое массивы)) 2man Да именно так)) Ev-geniusМмм, тут другой принцип ты поставил. Мне не надо, что бы при записке, ну или через какое-то время появлялся сам итог, я же это, типа как наглядный рисунок наколякал)) И мне надо, что бы квадратики чередовались через одного.

sanchez: http://slil.ru/26141405

Ev-genius: Dmak inc. пишет: Мне не надо, что бы при записке, ну или через какое-то время появлялся сам итог, я же это, типа как наглядный рисунок наколякал)) Эмм =) может ты неправильно скрипт запустил =) ну мало ли вдруг пригодиться тоже скину что имел ввиду, кстати про колизию прикольно придумано, правда остановить разростание на какомнить размере нужно ли оно или нет Dmak inc. пишет: И мне надо, что бы квадратики чередовались через одного. чтото типа такого? http://slil.ru/26141503 кстати там от себя жизнь кубиков пару секунд, потом они удаляются, и всё время рисуется потновой =) размер можно ограничить посути хы, занятно получается ))) интересно для чего это =)

Dmak inc.: хы, занятно получается ))) интересно для чего это =) Для игры под незнанием XzempeL 3. sanchez Спасибо тебе за пример, ты воссоздал то, что я и хотел видеть. Ты показал ту проблему, которую я не мог предвидеть. Да же у меня с 2,5 ГБ ОЗУ, в итоге наступают тормоза. Да и к тому же я прикинул, что лучше и интереснее будет пример Ev-genius Ev-genius, Тут что-то проблемка, я понимаю, что вообще легкая, но как-то не могу сбалансировать нормально. Я хотел бы, что бы через какое-то время квадратиков увеличивалось, квадратики увеличивали скорость, и расстояние между старыми и новыми квадратиками сохранялось.

Ev-genius: я понять не могу чтото =) нужно чтобы скорость появления посепенно увеличивалась? сначала медленно появляется слой за слоеем, потом быстрее бестрее и быстрее?

Dmak inc.: Ага. А ещё как увеличеть оперативность игры, а то что-то гг, когда двигается по этой карте, то он тормозит?

FatPir: ну я думаю можно отключать лишние объеткы через disable_object прочти справку

Ev-genius: FatPir пишет: ну я думаю можно отключать лишние объеткы через disable_object прочти справку вроде как лишних обьектов там быть не должно, хотя если с этими задержками-то может быть нужно будет вставить ещё одну переменную для доп проверки моно рисовать или пока нет =) ну и одну перменную для скорости Dmak inc. пишет: А ещё как увеличеть оперативность игры, а то что-то гг, когда двигается по этой карте, то он тормозит? это потому чо я туда вставил sleep =) так как это дело было лишь примером я не заботился обо всяких alarm'ax поэтому у тя игрушка и делает паузу каждые там 300 миллисекунд вроде =))) ну сейчас накидаю, поиграешься с цифорками, где скорость выше где ниже, и тд

Ev-genius: вот, вставил вместо sleep (которая весь уровень паузит) - Алармы, кинул доп проверку на рисование, хотя и так видно что лишнего ничего не рисуется, кубики же убираются в примере =) ну и скорость особо не хитрил просто задержку появления с каждым шагом снижал. ну и коментов добавил чтобы понятнее было пользуйтесь наздоровье slil.ru/26149910

Dmak inc.: Наверное, я не правильно объяснил по поводу ускорения квадратиков, хотя этот пример я то же может, буду использовать.)) Мне надо чтоб допустим, первые квадратики шли с одной скоростью. А уже другая группа (когда все уже удалились!), шли с большей скоростью. Потом другие, когда предыдущие все удалились, шли ещё быстрее. Потом через промежуток времени другая группа и т.д.

Ev-genius: типа несколько ромбиков в разных местах? первая группа с радиусом, с одной скоростью прорисовалась и исчезла, второй ромб чуть быстрее и исчез, третий ещё быстрее и тд?

Dmak inc.: Второе две строчки верны. Но только не с разных мест, а с одного места.

Ev-genius: просто ту перемнную что отвечает за скорость нужно снижать в том условии где создается новый заход прорисовки кубиков slil.ru/26158347 вот типа такого. ну а дальше по своим нуждам цифорки подгоняешь и радуешься =)

Dmak inc.: Ev-genius, спасибо за пример, и всем кто помогал то же ))

Dmak inc.: А как что бы радиусы то же изменялись, с маленького по большой? А то скорость меняется, а радиус всё тот же. И ещё у меня игрок обстреливает эти квадратики, а когда они увеличиваются, кажется, что они востонавливаются, как этого избежать?

Ev-genius: if((rad<15) вместо 15 вставишь переменную какуюнить и изменяй её где хочешь а по поводу востановления, прорисовывается только новый слой, старые не трогаются, как они могут востанавливаться там я представить не могу, да и сам пример такой абстрактный хотябы скрины чтоли скинь что и где там востанавливается

Dmak inc.: Ev-genius, Ну что-то типа этого. В скрипте была сделана как бы имитация скорости, так и это можно сказать как имитация после попадания пули.

Ev-genius: если попали в кубик сверху то всё понятно, следующий не появляется. а если попали чуть левее на 2 кубика например? там наискосок, какие тогда кубики не должны появляться?

Dmak inc.: Ev-genius, скоро у тебя будет юбилейный пост))

Ev-genius: хм. ладно это то понятно. только чтобы чтото сложнее реализовывать надо во всех деталях описать, мы же не нубы какие =) если на крайних верхней-нижней-левой-правой стороне так и удаляем по горизонталям и вертикалям.... если удалили чётко на 45градусов то тоже от центра неплохо вырисовывается... а я же спросил чуток про другое =) если удалили (судя вон по третьему рисунку справа который) верхний второй кубик. не чётко посередине грани а гденить ближе к верху чтото типа этого должно получиться чтоли? такое кривое =)

Dmak inc.: Да что-то в этом роде. Насчёт вершин, может так сделать (может будет получше), а то в планах одно, а на деле другое)) То есть, что бы через одну восстанавливались все, и те, который на 45 градусов то же.

Ev-genius: ev-genius.nm.ru/download/test1.gmk

Dmak inc.: Ща посмотрим

Dmak inc.: Я маленький прощёт заметил, при попадании в зеленый квадрат, все красные то же удаляются.

Ev-genius: она у тебя както криво работает походу. может с цифорками поиграй.. или подстрой условия под себя, там всё понятно я у себя как делал: кубик перед удалением предполагает что его х-у равны с центром если он вынужден удалиться то, сверяются координаты, если он выше центра то спец переменная х остаётся, у будет отниматься это и будут координаты на следующий шаг.. также например если кубик удаляется справа то сравнивая изменяется только х, в большую сторону и там создаётся отметка, при столкновении с которой на следующем шаге, новый кубик удалиться если наискосок, то изменяются и х и у, на следующий шаг по направлению градиента, от центра. шаг расчитывался для 20 пикселей. так сам юзал обьекты в 20 пикселей. дерзай тебе там виднее что именно ты хочешь, я даже концепта то не видел, у меня только абстрактные представления, основу прорисовки сделали, дальше уже настраивай под себя

Dmak inc.: У меня тут проблемка, не знаю почему, но меня почему-то выкидует( http://ifolder.ru/8666803



полная версия страницы