Как сделать здоровье game maker
Вряд ли тут сидят программисты но все-таки) Пригодится для новичков-прогеров начинающих с Game Maker
1.Гравитация (писать в step)
2.Повернуть объект туда куда смотрит мышка (писать в step)
if mouse_x 0 && not place_free(x,y+vspeed)) <
3.АИ интелект (проще говоря бот)
if instance_exists(o_man) >0
if distance_to_object(o_man) 64
x-=3; image_speed = 0.2; image_xscale = 1
if not place_free(x-3,y)
if distance_to_object(o_man) > 64
if not place_free(x+3,y)
if zametil = false //А если ГГ незамечен
image_speed = 0 //То скорость анимации 0
Дубликаты не найдены
Посоны, го постить сюда свой код без форматирования и подсветки!?
Будет кодо-квест «угадай чо я написал»
Ну можно ещё с подсветкой и форматированием, но картинкой, желательно строк 1-2к
Да чудесный язык, ну а комментарии это не всегда обязательно, зависит от языка и того что написано.
С чего бы это?)
Вы, уважаемый программист игрушек, запостили неформатированный, нечитаемый код, который предназначен непонятно для кого.
Ну и если уж собрались строить из себя программиста, хвастаться этим и показывать всему миру свой говнокод, то для начала освойте paste.org и github.org.
Если уж решил про этот казуал писать то пиши обзорный пост, а не этот треш. И да, в game maker-e не программисты сидят, а лентяи.
Не надо постить всякие куски кода без должного описания и оформления с других форумов http://gamemaker.clan.su/load/skript/4
Очевидно же, что тут даже инстансы не описаны, а уже используются, ну.
Как у вас там все интересно. В Game Maker-e то.
ты просто не программист, иди на своём ассемблере печатай
а я вот инженерное программирование фигачу)
Когда код заработал)
Когда младший разработчик показывает свой код
Российский программист получил восемь лет тюрьмы за создание утилиты для обработки логов ботнетов
Министерство юстиции США сообщило о вынесении приговора российскому программисту Александру Бровко.
Еще в 2019 году 36-летний Александр Бровко был арестован в Чехии, откуда его экстрадировали в США в связи с масштабным расследованием деятельности российских хакерских группировок. По заявлению правительства США, Бровко был «членом элитных онлайн-форумов, созданных для русскоязычных киберпреступников, где те обмениваются инструментами и услугами для совершения преступлений».
Согласно судебным документам, Бровко родился и вырос в России, имел диплом системного инженера, но в какой-то момент потерял работу в полиграфическом и рекламном бизнесе «из-за разногласий с руководством компании». Тогда Бровко стал работать на своего бывшего одноклассника, «который нуждался в помощи для направления интернет-трафика на определенные сайты», и это стало его точкой входа в мир киберпреступников. Бровко говорит, что ему было стыдно за ту работу, но найти другую он не мог.
В итоге Бровко стал работать с Александром Твердохлебовым, который эмигрировал из России в 2007 году, получил американское гражданство и проживал в Калифорнии. В 2017 году Твердохлебов был арестован и отправлен в тюрьму на девять лет, так как управлял ботнетом, который насчитывал около 500 000 зараженных компьютеров. В обвинительном заключении Бровко от 2018 года Твердохлебов фигурирует под инициалами «А.Т.».
Благодаря своему ботнету Твердохлебов имел доступ к тысячам взломанных машин, и его малварь похищала имена пользователей и пароли с этих компьютеров. Бровко было поручено проанализировать логи ботов и найти в них учетные данных от интернет-банкингов. Впоследствии эта информация использовалась для кражи миллионов долларов со счетов американцев (посредством мошеннических переводов).
В итоге Бровко написал программу для автоматического скрапинга этих данных. Также он вручную проверял, работают ли обнаруженные комбинации имени пользователя и пароля для банковских счетов пользователей. Прокуроры утверждают, что он выписывал данные о количество денег на счетах пострадавших, стремясь найти наиболее «выгодных» жертв.
За все это Бровко получал от Твердохлебова около 70 000 долларов в год, и на эти деньги, по утверждению адвоката, содержал жену и сына. Также документы гласят, что Бровко оказывал услуги другим хакерам и даже пытался самостоятельно продавать банковскую информацию жертв другим преступникам. Когда полиция провела обыск в его доме, было изъято большое количество оборудования, которое затем использовали в качестве доказательств в суде.
Когда написал весь код сразу, а потом ищешь ошибки
Автоматизация на почте
Устроился на работу сотрудником почты. На окраине города стоит полупустое здание, там начальство решило сделать архив. Рабочие привезли туда огромную груду мешков с письмами, которые требовалось отсортировать и занести в базу. Процесс таков: имеется пачка писем, обвязанная шпагатом. У каждой пачки есть накладная со штрихкодом, в котором зашифрована информация по этой пачке. Нужно 1) нажать в программе кнопку «сканировать штрихкод» 2) провести сканером по накладной 3) подождать 10-30 секунд пока программа расшифрует ШК 4) нажать кнопку «внести данные» 5) подождать 30-90 секунд 6) написать на пачке диапазон номеров, которые программа присвоила этим письмам (10-15 сек) 7) нажать кнопку «закрыть накладную» (5-10 сек), выйти назад в меню 8) следующий цикл.
Как видите, все эти ожидания плюс время на нажатие кнопок отнимает много времени. Во время 10-30 и 30-90 секундных перерывов можно занять себя открывая очередной мешок в другом конце комнаты и вытаскивая новые пачки, однако приходится бегать туда сюда и жать кнопки. Тогда я написал скрипт, автоматически определяющий когда закончился предыдущий шаг (распознавание экрана), жмущий нужные кнопки, а также назначил горячие клавиши, которые быстро выходят в меню и начинают новый цикл. Также я наловчился писать цифры загодя на основе диапазонов предыдущих пачек и количества писем в текущей. Теперь процесс выглядит так: сканирую ШК, иду занять себя другими делами (вскрытие мешков, написание цифр на следующих накладных, складирование готовых), программа в это время сама проходит полный цикл, возвращаюсь, сканирую следующий ШК и т.д. Скорость работы приблизилась к теоретическому пределу: теперь все упиралось в скорость работы программы, ускорить которую я не мог. Но этого вполне хватало, программа постоянно что-то обрабатывала, а я выполнял другие работы.
Также были бракованные накладные или пачки писем вообще без накладных. Приходилось брать каждое письмо 1) сканировать его ШК 2) клик «ввести данные» 3) 1-2 секунды программа думает 4) вылезает окно с характеристиками письма, тут ничего не делаем, все письма одинаковые, жмем «сохранить письмо» 5) следующий цикл
Как видите, опять много ненужных движений, нужно откладывать сканер в сторону, тянуться к мышке, два раза жать в разные места на экране. Моментально был написан скрипт, автоматизирующий всю эту лабуду, теперь процесс свелся к «пикнул письмо сканером (сканер издает звук при считывании), жду 2 секунды, пикаю следующее письмо» и т.д. Работа ускорилась в 2-4 раза, да и сил тратится гораздо меньше.
Но мне и этого показалось мало. Мало приятного в двухсекундном пялении в монитор. Открыл блокнот, занес туда штрихкоды писем, каждое письмо требует треть-полсекунды. Затем пишется еще один скрипт, который заносит в программу из блокнота по письму каждые 2 секунды, а я иду пить чай (а писем очень много, 10-30 тысяч, их накопилось достаточно за три года). Или не иду. Принес с собой ноутбук, пока скрипт работает над другой пачкой писем, открываю на ноуте блокнот и вношу туда следующую партию. Скорость работы выросла еще больше.
Периодически зовут помочь в городское отделение, там начальники удивляются моей скорости работы по сравнению с девочками операторами, вручную прокликивающими все кнопки. Вот так один технически подкованный человек может выполнить объем работ, требующих несколько человеко-час.. нет, лучше сказать тетенек-дней.
Как сделать здоровье game maker
Все мы, наверно, когда-то играли в какие либо игры и к нам рано или поздно приходило желание сделать свою игру. Возможно, у вас возникло желание создать небольшую игру, но вы не знаете не единого языка программирования? Конечно, если у вас есть Интернет, вы можете найти уроки по программированию C++, Delphi и других языков. Вы можете долго учить их и потом делать небольшие игры. Но у меня возникает вопрос: «ЗАЧЕМ?». Если умные люди создали массу конструкторов и готовых движков для ваших игр. Кстати, на сайте http://gcup.ru вы сможете найти буквально все конструкторы, что изобрели люди. Давайте остановимся на известном всем Game Maker by Mark Overmarse.
Итак, ищем на этом сайте эту программу, и качаем. Желательно купить лицензию за 20$, чтобы иметь больше возможностей. Без лицензии вы не сможете создать полноценную игру (хотя это можно, но проще будет с лицензией). Ознакомьтесь с примерами, которые даны вместе с программой, прочитайте основы программы в файле помощи. Вы наверно спросите – зачем нам эта статья, если всё подробно расписано в официальном файле помощи к игре? Да затем, что в официальном файле помощи описаны только коды и основы их пользования, а я расскажу, как сделать игру определенного жанра.
Вы ознакомились с Game Maker, теперь обязательно выучите хотя бы основы GML. Хотя ниже описанный пример platf_primer.gm6 будет использован преимущественно на кнопках (триггерах).
Платформеры – это, пожалуй, один из самых распространённых жанров в приставках Dendy, Sega и просто в играх на компьютеры. Суть его заключается в том, что вы ходите как бы по «платформам» и после прыжка, гравитация притягивает вас обратно к «платформе». Часто вам придется прыгать с одной «платформы» на другую. Вообще жанр платформеров очень обширный, это могут быть и 2D-шутеры с кровавой резнёй, или просто развесёлые платформеры наподобие Соника или Tiny Toon.
Для лучшего понимания создания платформера, к статье прилагается пример платформера platf_primer.gm6.
Теперь персонаж ходит влево и вправо. Пожалуй, самое важное в этих играх это гравитация, и естественно нужны платформы. Создаём ещё один объект, назовём его obj_platform – это будут наши будущие платформы описанные выше. Обязательно ставим галочку Solid (твёрдый) в obj_platform.
Переходим опять к obj_player. В Step ставим условия, показываемые на скриншоте и в примере:
Здесь так же объясняются все кнопки, для чего они, и что они дают. Я просто хочу, чтобы не бездумно взяли мой пример платформера, и просто вставили свои спрайты. Я хочу, чтобы вы поняли, как это всё работает.
Переменная, отображённая слева, поможет вам ограничить скорость падения до 12 максимум. Это поможет вам избавиться от бесконечного увеличения скорости падения.
Теперь важно сделать прыжок персонажа. Давайте замахнёмся сразу на двойной прыжок.
Чтобы сделать прыжок, нам нужно внедрить переменную. Давайте назовём её jump. Она понадобится нам для установления максимального количество толчков. В условии create создаём переменную jump=0. Переменные создаются выделенной красным цветом кнопкой. Когда вы её перенесёте в «Actions», появится меню. Указывайте там всё, как на скриншоте.
Теперь при создании персонажа переменная будет равняться нулю.
В Событии press (нажать кнопку вверх) создаём такое:
И теперь создаём цепочку действий в касании с объектом obj_platform.
В принципе, основной движок для нашего платформера готов! Но давайте внедрим в него дополнительные функции.
Давайте сделаем лестницы. Лестницы мы сделаем в событиях Step, Up, Down. Создаём новый объект, и назовём его obj_ladder.
В Step создаём следующие действия:
В Up, создаём следующее…
В Down создаём тоже самое, что и в Up, но координату y=-4, надо заменить на y=+4
Создаём объект врага. Назовём obj_enemy. Врагам в событии Create создаём действие, указанное на рисунке, и ставим в нём всё как указанно на скриншоте.
Ещё нам понадобится объект obj_rotate и сделать его невидимым (убрать галочку Visible).
Во враге создаём событие столкновения с obj_rotate и вставляем следующее действие:
При касании к этому объекту, враг будет менять своё направление, и идти в обратную сторону. То есть так мы устанавливаем области патрулирования врагов.
Чтобы враги могли «убивать» персонажа, нужно сделать систему жизней и здоровья. В Game Maker такая система уже встроена.
В событии Step создаём следующее:
И в событии столкновения с obj_enemy:
Теперь при касании к врагу, у вас будет отниматься одна жизнь.
Тоже самое, как и врага, делаем штыки, только они не двигаются. При касании к ним ставим:
Когда здоровья будет меньше одного, отнимается одна жизнь.
Вот уже можно сделать неплохой платформер. Идём в комнату и делаем уровень. Расставляем блоки, персонажа, врагов и прочее…
Давайте сделаем, чтобы наш платформер был не просто на одной картинке, а был большой уровень, и камера следила за персонажем. Для этого в комнате во вкладке views (виды) делаем следующее:
Hbor и Vbor нужно менять. Это координаты x и y при достижении которых, камера будет двигаться. Например, для вида размером 640х480 можно поставить Hbor:320; Vbor:240. Тогда камера будет следить чётко по центру за персонажем.
Как сделать здоровье game maker
В прошлом выпуске №1 мы создавали лабиринт, а этом мы будем делать новую игру чем-то похожую на арконоид, но это не арконоид. В общем вот её состав:
I. В начале уровня на экране появляются шарики и стены
II. При столкновении шариков со стенами шарики меняют цвет в соответ-ствии с стенами
III. При столкновении между собой становятся также другого цвета
IV. Игрок управляет платформой, которая не должна давать мячам улетать с экрана
V. Система очков
VI. Система таймера
Это то, из чего будет состоять игра. Мы в прошлом уроке изучали, как загружать спрайты, добавлять объекты и прочее что их надо называть в соответствии, как менять разрешения экрана и ставить в полноэкранный режим, как задать управление с помощью кнопок как сделать объекты непроходимыми. Поэтому весь этот список повторять не будем, и эти элементы будут выглядеть так: «Соз-даём эффект непроходимости …». Снова объяснения не будет, поэтому если вы не читали первый номер, либо не помните, скачайте его и прочитайте сначала и после переходить к выпуску номер 2.
Манипуляция спрайтами …
Снова включаем Game Maker, видим рисунок
Объяснять где что не буду. Добавляем комнату, устанавливаем разрешение этой комнаты на 800*600. Делаем полноэкранный режим. Загружаем спрайты разноцветных блоков (c:\program files\game_maker8\sprites\ Bouncing Balls\stones). Хватит и четырёх цветных блоков. Загружаем также спрайт маленького железно шарика (на одну папку назад). Теперь все спрайты блоков дублируем, чтоб блоков каждого цвета было по два.
Теперь берём «клоны» блоков и нажимаем кнопку «Редактировать». Жмём Ctrl +Alt+P. Пишем в строке «Border» 17. Жмём ОК. Клацаем Ctrl+Alt+R. Делаем вращение на 90 градусов. Жмём Ок. Снова набираем комбинацию Ctrl +Alt+P, только теперь берём «Border» = 0. И у вас должно получится так (рисунок ниже). Повторяя прошлые манипуляции с каждым клоном блоков. Этим мы перевернём блоки. Потому что нам нужны будут различные.
Закончив с спрайтами переходим к самим объектам.
В первую очередь сделаем платформу, которой игрок будет управлять. Создаём объект, применяем к нему спрайт платформы, и делаем для него управление с клавиатуры лишь для кнопок «Влево» и «Вправо» потому что мы будем им управлять только по оси Х.
Создаем блоки по количеству спрайтов блоков. В моём случае это 8. В объекте Player (так у меня называется платформа) ставим событие столкновения с бло-ками и делаем, чтоб он не мог пройти сквозь эти блоки (Как сделать объекты не проходимыми мы рассматривали в первом уроки).
Делам объект «Boll». В «Player» ставим также столкновение, но теперь для «Boll». В нём добавляем случай «Bounce» чтоб при столкновении с платформой мячики улетали. В самом шаре делаем так …
Изменения цвета при столкновении
Теперь нам надо чтоб когда игрок все-таки не смог отбить мяч он улетает чтоб шар возвращался назад и для красоты поставим эффект зелёных (по желанию можно выбрать любой цвет под свой цвет и вкус) колец в стартовом положении. Для этого в «Boll» также ставим событие «Вне границе комнаты». Там выбераем «Jump to start», и в закладке «Draw», «Creat Effect» там всё ставим как на рисунке.
Звуки
Сначала давайте загрузим звуки. Это также как и спрайты и фоны. Загрузим стандартные звуки Game Maker из директории «C:\Program Files\Game_Maker8\ Sounds». Грузим вот эти звуки:
I. Cancel
II. click_tiny
III. Step
IV. Applause
Чтоб подключить звук в событии переходим на вкладку «Main1» и выберам «Play Sound».
В объекте «Boll» во всех событиях столкновениях поставьте звук «step».
В событии «Вне границе комнаты» ставим звук «Cancel».
В объекте «Player» в событии столкновении с «Boll» включите звук «step».
Внимание! При подключении звука смотрите, чтоб Loop ровнялось false – Don’t Loop. Иначе звук будет проигрываться зациклено!
А теперь перейдём к системе очков. Я сделал так, чтоб когда игрок отбивал платформой мяч, он получал балл. Когда он упускал мяч (он оказывался за пре-делами комнаты) у него снимался также один балл.
Нам понадобится переменная ups. Она должна быть глобальной. Выбираем комнату и переходим к закладки «Установки» и «создать код» (Рисунок ниже). Там вы также увидите переменную (на картинке) под названием timer и что он установлен с значением = 100. Это объясню позже. Она нам понадобится для создания таймера. Пока напишите и её.
Переходим к объекту «Boll» и в событии «Вне границе комнаты» нажимаем на вкладку «Control» и жмём на «Execute code». Там пишем (рисунок ниже)
Теперь переходим к объекту «Player», к событию столкновения с мячом. Там также жмём «Execute Code» и пишем всё точно такое же только «…ups-=1» за-меняем минус на плюс, чтоб очки при соприкосновении платформы и мяча при-бавлялись, а не отбавлялись.
Сейчас у нас ведётся подсчёт очков, но нам надо чтоб он выводился на экран и также нужен таймер.
Таймер и вывод переменных на экран
Для создания таймера нам нужна будет глобальная переменная под названием timer. Если вы её всё ещё не написали, то предлагаю вам вернуться в комнату щелкнуть по закладки «установки» и нажать на кнопку «Создать код» и написать всё также как на рисунке.
Теперь создаём ещё один объект и называем его «write». Не какого спрайта к нему не принимаем. Также не нужно ставить галочку «Твердый» то, как он нужен будет нам только действиями, а не видимостью.
Делаем событие «Room Start» и в нём делаем случай «Alarm0» как на рисунке.
Делаем событие «Alarm0» и в нём добавляем «Alarm0» где «number of steps:» =30. Это сделает, так что все функции, которые будут в «Alarm0» каждую секунду будут выполняться. Это нам подходит для того что б каждую секунду «Alarm0» нам снимал с переменной «timer» по единице. Для этого в «Alarm0» добавляем функцию «Execute code» и там пишем (рисунок ниже)
Теперь мы должны сделать так чтоб когда время игрока заканчивалось, ему показывался его результат в таблице рекордов, проигрывался звук аплодисмен-тов и по введению имени и закрытию окна рекордов комната переигрывалась.
Для этого в «Alarm0» жмём закладку «Control» и там нажимаем «Test Expres-sion» и в появившемся окне пишем следующие (рисунок ещё ниже)))
После добавляем открытие блока, выполнения в том случае если аргумент будет верен, под названием «Start Block». Теперь подключаем звук аплодисментов. Переходим в закладку «Score» жмём «Set Score» а там делаем как на рисунке.
Таким образом, мы присваиваем очкам переменную «ups» куда сохранялись все очки. Конечно, можно было использовать стандартную переменную «score»? но я хотел показать, как делать глобальные переменные…
Теперь мы должны чтоб сделать, чтоб выводилась таблица рекордов. Поэтому нажимаем на кнопку «Show Highscore». В том окне настраивайте всё под своё усмотрение.
После в «Main1» выбираем «Restart game» и завершаем блок действий перейжя снова на закладку «Control» и нажимаем на кнопку «End Block». В общем у вас должно получиться чтото подобное (Рисунок ниже)
А сейчас делаем, чтоб на экране выводилось количество очков и времени, ко-торое осталось (количество времени которое даётся для игры вы можете отре-дактировать, выбрав в «создать код» и заменить строку «timer=100» на любое другое число). Для этого всё в том же объекте «write» создаём событие «Draw».
В нём переходим на закладку «Draw» и клацаем по кнопке «Set Color». Там выберете любой цвет для отображения очков и контура поля, в котором они будут находиться.
После нажимаем «Добавить шрифт» и делаем приблизительно, так как это изображено на рисунке ниже. Естественно вы можете изменять параметры, но шрифт не будет отображать буквы, если вы выберите отображения только чисел. Поэтому выберете то, что отмечено на рисунке.
Жмём Ок. Снова переходим к объекту «Write» и там к событию «Draw» и до-бавляем оператор «Set Font», там выберете тот шрифт, который вам нужен.
Теперь добавляем ячейку, в которой будет находиться строка «Очки: ». Клацаем по «Draw Rectangle» и делаем так (рисунок ниже)
И второй – для строки времени делаем так (рисунок совсем низко)))…
Дальше делаем так как сделано на рисунке.
Это будет вывобить переменную «Timer» в ячейку справа. И делаем так …
Курсор
Не такая уж большая тема чтоб её делать отдельно но всеже вот…
Нам надо чтоб при запуске курсор мыши скравался так как он нам мешает. Для этого перейдя в «Boll» в события «Room start» переходим на закладку «Extra», там клацаем по значку с курсорам и остовляем всё как есть.
Всё.
Постройка уровня под наши правила
Теперь переходим к постройки уровня. Под наши запрограмированые объекты он должен выглядить примерно так… (рисунок ну совсем низко)