Понедельник, 25 Ноября 2024, 06:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Уроки GML
IzaronДата: Четверг, 17 Января 2013, 21:28 | Сообщение # 1
Rammstein forever
Сейчас нет на сайте
Здравствуйте, пользователи gcup.ru! smile
За то время, что я изучал GM, я создал немало уроков по GML и решил их сюда выложить.
Каждый урок прячется под спойлер. Удачи в изучении GML!





Добавлено (17.01.2013, 21:28)
---------------------------------------------
Добавлен урок "генерация карты" smile



Сообщение отредактировал Izaron - Четверг, 17 Января 2013, 14:33
ФилДата: Пятница, 18 Января 2013, 01:10 | Сообщение # 2
Томатный революционер
Сейчас нет на сайте
Зачем на каждую стрелку во втором примере создавать свой объект? Хватило бы и одного.
MR-IgrodelДата: Пятница, 18 Января 2013, 01:10 | Сообщение # 3
GML скриптор
Сейчас нет на сайте
а если я хочу заполнять карту не желтыми и поверх красными спрайтами, а мне нужно заполнять одним движущимся обьектом, в смысле одного типа, но так, чтобы было совершенно рандомно без чисел было количество и дальность спавна, но на каком-то максимальном расстоянии от игрока? как реализовать?

Урок взаимодействия джойстика в Game Maker
Как быстро сделать меню и не париться в Game Maker


Сообщение отредактировал MR-Igrodel - Пятница, 18 Января 2013, 01:13
IzaronДата: Пятница, 18 Января 2013, 14:33 | Сообщение # 4
Rammstein forever
Сейчас нет на сайте
Цитата (MR-Igrodel)
а если я хочу заполнять карту не желтыми и поверх красными спрайтами, а мне нужно заполнять одним движущимся обьектом, в смысле одного типа, но так, чтобы было совершенно рандомно без чисел было количество и дальность спавна, но на каком-то максимальном расстоянии от игрока? как реализовать?

Ну допустим, ты делаешь TDS. Тогда в Create какого-нибудь объекта ставишь такой код:
Код
min_obj=10 // Минимальное кол-во объектов
max_obj=20 // Максимальное кол-во объектов
min_rad=5 // Минимальная близость от игрока - 5 клеток
max_rad=10 // Максимальная близость - 10 клеток
max_rad_spawn=15 // Максимальная дальность от игрока - 15 клеток
//т.е. за пределы 15 клеток спавниться не будет

obj=irandom_range(min_obj,max_obj) // Cтроки и столбцы (x,y)
rad=irandom_range(min_rad,max_rad) // Радиус минимальной дальности

karta[0,0]=0  
// Допустим, что есть карта размером 100х100
for (n=0; n<100; n+=1) // Внешний цикл  
  {for (m=0; m<100; m+=1) // Внутренний цикл  
   {karta[n,m]=0}}

gamer_x=50, gamer_y=50 // Мы поставили игрока в координату karta[50,50], можете попробовать поставить рандомно
karta[gamer_x,gamer_y]=1 // Если в координате есть игрок, координата помечается "1"

while(true) // Поиск начальной клетки.
{ a=false
    nn=irandom_range(gamer_x-max_rad_spavn,gamer_x+max_rad_spavn)
    mm=irandom_range(gamer_y-max_rad_spavn,gamer_y+max_rad_spavn)
    if nn<gamer_x and nn>gamer-1-max_rad { a=true }
    if nn>gamer_x and nn<gamer-1+max_rad { a=true }
    if mm<gamer_y and mm>gamer-1-max_rad { a=true }
    if mm>gamer_y and mm<gamer-1+max_rad { a=true }
    if a=false break }

for (r=1;r<obj;r+=1)  
    {  
     karta[nn,mm]=2 // Пометка врага
       
     switch (irandom(3))
     {case 0: nn-=1; if nn == gamer_x-max_rad_spavn-1 or nn==gamer_x-max_rad-1 {nn += 1} break;  
      case 1: nn+=1; if nn == gamer_x+max_rad_spavn+1 or nn==gamer_x+max_rad+1 {nn -= 1}  break;  
      case 2: mm+=1; if mm == gamer_y+max_rad_spavn+1 or mm==gamer_y+max_rad+1 {mm -=1 } break;  
      case 3: mm-=1; if mm == gamer_y-max_rad_spavn-1 or mm==gamer_y-max_rad-1 {mm +=1 } break;}  
     }

for (n=0; n<100; n+=1) // Внешний цикл  
   {for (m=0; m<100; m+=1) // Внутренный цикл  
     {if karta[n,m]=1 instance_create(n*16,m*16,player) // player - объект игрока
      if karta[n,m]=2  instance_create(n*16,m*16,object)}} // object - твои спавнившиеся объекты

Код пока не проверял. biggrin
CreatingOverДата: Среда, 18 Сентября 2013, 07:42 | Сообщение # 5
ColdGamedev
Сейчас нет на сайте
Хорошие уроки). Жду еще.

Я снова с вами:з
Возвращение легенды. (нет)
IzaronДата: Среда, 18 Сентября 2013, 14:44 | Сообщение # 6
Rammstein forever
Сейчас нет на сайте
Цитата (CreatingOver)
Хорошие уроки). Жду еще.

Я GM год не открывал, увы, уроков новых не будет
CreatingOverДата: Четверг, 19 Сентября 2013, 07:31 | Сообщение # 7
ColdGamedev
Сейчас нет на сайте
Izaron, angry angry angry
Я приказываю, еще уроки пиши!


Я снова с вами:з
Возвращение легенды. (нет)
HaGeДата: Четверг, 19 Сентября 2013, 07:51 | Сообщение # 8
постоянный участник
Сейчас нет на сайте
неплохие уроки. тем, кто не умеет/кому лень думать, наверняка, понравится. а так, было бы куда полезней, если бы ты раскрыл тему о массивах или ознакомил читателей с какой-либо малоизвестной, но полезной функцией. алгоритм генерации мира, тир и т.д. можно и своими мозгами придумать.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг