Пятница, 26 Апреля 2024, 15:31

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Архив с вопросами
Архив с вопросами
LunarPixelДата: Суббота, 22 Января 2011, 18:53 | Сообщение # 61
старожил
Сейчас нет на сайте
Создай переменную wpn и меняй её значение в зависимости от выбранного оружия.. А потом при стрельбе проверяй
Code
if wpn=1 {первый патроны}
if wpn=2 {вторые патроны}


StrategДата: Суббота, 22 Января 2011, 19:16 | Сообщение # 62
заслуженный участник
Сейчас нет на сайте
а где это надо создавать? У перса или как отдельный объект!

Добавлено (22.01.2011, 19:16)
---------------------------------------------
как это вооюще сделать?


DiamonD - мой сайт...
LunarPixelДата: Суббота, 22 Января 2011, 19:21 | Сообщение # 63
старожил
Сейчас нет на сайте
Как тебе удобнее... Лучше у перса конечно... Не знаю как у тебя там все устроено, но грубо говоря будет так:

в create пишешь:

Code
wpn=1;

Допустим оружие у тебя при нажатии на shift меняется, пишешь в событии нажатия:

Code
wpn+=1;
if wpn>5 {wpn=1} (это если у тебя 5 видов оружия)

В событие нажатия клавиши для стрельбы пишешь:

Code
if wpn=1 {создается первый вид пуль}
if wpn=2 {создается второй вид пуль}
......


StrategДата: Воскресенье, 23 Января 2011, 00:10 | Сообщение # 64
заслуженный участник
Сейчас нет на сайте
нет, всё равно не получается(((

DiamonD - мой сайт...
LgunchikДата: Воскресенье, 23 Января 2011, 10:10 | Сообщение # 65
постоянный участник
Сейчас нет на сайте
Strateg,

вот так


>

Сообщение отредактировал Lgunchik - Воскресенье, 23 Января 2011, 10:15
StrategДата: Воскресенье, 23 Января 2011, 23:22 | Сообщение # 66
заслуженный участник
Сейчас нет на сайте
Где это надо прописавыть? В Create у перса?!
Что такое:
weapon=5
sspas(это вид оружия???)

И оружия у меня только 2.


DiamonD - мой сайт...
Dva_KotaДата: Понедельник, 24 Января 2011, 09:47 | Сообщение # 67
заслуженный участник
Сейчас нет на сайте
Можно сделать короче: Занести всё оружие и все патроны в массивы.

Событие Создание

Code

//Список оружия (спрайтов)
weapon[1]=spr_weapon_01;
weapon[2]=spr_weapon_02;
weapon[3]=spr_weapon_03;
weapon[4]=spr_weapon_04;

//количество патронов
ammo[1]=30;
ammo[2]=20;
ammo[3]=0;
ammo[4]=10;

//список объектов-пуль
bullet[1]=obj_bullet_01;
bullet[2]=obj_bullet_02;
bullet[3]=obj_bullet_03;
bullet[4]=obj_bullet_04;

//Номер оружия, которое будет по умолчанию (не путать с массивом weapon[]? это не одно и то же!)
weapon=1;

событие "колесо мышки вверх" //Переключение не предыдущее оружие

Code
    {
      if weapon>1
          {
          weapon-=1
          while (ammo[weapon]=0)
              {
              if weapon>1 weapon-=1 else weapon=4
              }
          }
      else
          {
          weapon=4
          while (ammo[weapon]=0)
              {
              if weapon>1 weapon-=1 else weapon=4
              }
          }
      //здесь меняем спрайт оружия
      }

Событие "колесо мышки вниз" //Переключение на следующее оружие

Code
    {
      if weapon<4
          {
          weapon+=1
          while (ammo[weapon]=0)
              {
              if weapon<4 weapon+=1 else weapon=1
              }
          }
      else
          {
          weapon=1
          while (ammo[weapon]=0)
              {
              if weapon<4 weapon+=1 else weapon=1
              }
          }
меняем спрайт оружия на спрайт weapon[weapon]
      }

В событиях "смены оружия", везде где стоит 4 нужно ставить количество видов оружия (максимальный номер оружия).

Когда создаешь пулю (стреляешь) создавай объект с именем bullet[weapon], например

Code
instance_create(x,y,bullet[weapon]);

Можно еще сделать чтобы когда патроны закончились было автоматическое переключение на следующее оружие. Для этого нужно в шаг добавить код:

Code
if (ammo[weapon]=0)
{
//Здесь код переключения на следующее оружие (написан выше)
}

Тут будет одна проблема: если закончатся все патроны начнется переключение оружия по кругу без остановки - будет постоянно выполняться цикл и игра зависнет. Чтобы этого не было нужно сделать одно оружие с бесконечными патронами (или, если нужно чтобы игрок мог остаться без оружия, сделать оружие без спрайта и с одним патроном, а так же запретить стрелять из него - перед выстрелом проверять номер оружия, и если это оружие номер ... не создавать пулю). Можно сделать например нож - у него будут бесконечные "патроны". biggrin


Новый пример инвентаря! /20.06.2012/

Energy Wars


Сообщение отредактировал Dva_Kota - Понедельник, 24 Января 2011, 09:48
LgunchikДата: Понедельник, 24 Января 2011, 14:36 | Сообщение # 68
постоянный участник
Сейчас нет на сайте
Strateg, sspas - переменная отвечает за дроб(1 - есть в рюкзаке/0 - в рюкзаке нет), weapon=1,2,3,4,5 - это выбранное оружие

>
Don_AlexeyДата: Вторник, 25 Января 2011, 00:14 | Сообщение # 69
заслуженный участник
Сейчас нет на сайте
Dva_Kota, Чёт я тоже не пойму как это сделать! Можешь примером?!Если не сложно!Пригодится!!!С меня +

Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.
NeZnayuДата: Вторник, 25 Января 2011, 00:22 | Сообщение # 70
__танцуй!__
Сейчас нет на сайте
Последний пример в этой теме - как раз про смену оружия колесиком мыши.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Don_AlexeyДата: Суббота, 29 Января 2011, 20:58 | Сообщение # 71
заслуженный участник
Сейчас нет на сайте
NeZnayu, спасибо большое!

Добавлено (29.01.2011, 20:46)
---------------------------------------------
Все привет, люди столкнулся вот с такой проблемой! Помогите мне её решить!
у меня в игре сть мина(их 3 штуки), я сделал так что б перс устанавливал их рядом с собой! Это всё нормально! Но вот какая проблема я ставлю их все 3, на разном растоянии!Но при столкновении врага с одной из мин, происходит эффект взрыва на том месте, на котором я установил первую мину!

Если не поняли, я попробую ещё раз обьяснить!

Добавлено (29.01.2011, 20:58)
---------------------------------------------

Т.е. сам эффект взрыва происходит там где я первую поставил мину, а не на той с которой было столкновение! Как это исправить?

Вот каквыглядит настройка мины, и в частности её эффект взрыва.



Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.


Сообщение отредактировал Don_Alexey - Воскресенье, 30 Января 2011, 12:13
NeZnayuДата: Суббота, 29 Января 2011, 21:02 | Сообщение # 72
__танцуй!__
Сейчас нет на сайте
Главное на последнем скриншоте - кого ты уничтожаешь, а не эффект взрыва.

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
Don_AlexeyДата: Суббота, 29 Января 2011, 21:06 | Сообщение # 73
заслуженный участник
Сейчас нет на сайте
Нет ни кого я там не уничтожил!Перс столкнулся с 3 миной и весь эффект был на первой!ПОчему?

Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.
MrWolfДата: Суббота, 29 Января 2011, 21:41 | Сообщение # 74
почетный гость
Сейчас нет на сайте
Don_Alexey, покажи действие "уничтожение".


Кликни сюда, помоги вырасти
LgunchikДата: Воскресенье, 30 Января 2011, 08:59 | Сообщение # 75
постоянный участник
Сейчас нет на сайте
сделай эффект в гг....то есть если он сталкивается с миной то возникает по координатам мины взрыв

>
Dva_KotaДата: Воскресенье, 30 Января 2011, 10:48 | Сообщение # 76
заслуженный участник
Сейчас нет на сайте
Вместо
Code
object41.x
object41.y

поставь просто
Code
x
y

Если пишешь object41.x - это координаты первого созданного объекта object41 (object41 = id первого объекта object41)

Добавлено (30.01.2011, 10:48)
---------------------------------------------
если ставишь просто x y - это будут координаты того образца объекта я которого выполняется код.


Новый пример инвентаря! /20.06.2012/

Energy Wars
Don_AlexeyДата: Понедельник, 31 Января 2011, 00:12 | Сообщение # 77
заслуженный участник
Сейчас нет на сайте
Dva_Kota, спасибо, очень помог.Лови +

Добавлено (31.01.2011, 00:12)
---------------------------------------------
Привет всем, сложилась вот такая проблема.

У меня есть таймер(вот его код):

Create:

Code
s=0
m=0
alarm[0]=1

Alarm 0

Code
s+=1
alarm[0]=29

Step

Code
if s>=60
{
m+=1
s=0
}
if m=1  and s=0
{
instance_create(x,y,object32);
}

Вроде всё хорошо работает,НО при определённом времени должен создать объект(object32). Он создаётся,НО не один, а 29 штук. Так как написано в коде:

Code
Alarm 0
s+=1
alarm[0]=29 <---Вот

Если это число поменять, допустим на 1, создаётся один объект так как надо, НО теперь таймер работает очень быстро! Почему так происходит, и как это исправить?

Заранее спасибо. Мне помощь, вам +!


Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.
NeZnayuДата: Понедельник, 31 Января 2011, 00:52 | Сообщение # 78
__танцуй!__
Сейчас нет на сайте
Code
if m=1  and s=0    
{    
instance_create(x,y,object32);    
}

m=1 и s=0
как минимум 29 шагов, т.к:
s+=1
alarm[0]=29
<---Вот - сколько тут напишешь, столько объектов и создастся.

Зачем вообще так усложнять себе жизнь?

Create:

Code
//Задаем все переменные
timer=0;
s=0;
m=0;

Step:

Code
timer+=1; //добавляем таймер каждый шаг
if timer=room_speed //если таймер равен одной секунде
   {
    s+=1; //добавляем секнду
    timer=0; //обнуляем таймер
    if s=60 //если секунд 60
     {
     m+=1; //добавляем минуту
     instance_create(x,y,object32); //создаем объект
     s=0; //скидываем секунды
     }
}


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу


Сообщение отредактировал NeZnayu - Понедельник, 31 Января 2011, 00:55
Don_AlexeyДата: Понедельник, 31 Января 2011, 01:30 | Сообщение # 79
заслуженный участник
Сейчас нет на сайте
NeZnayu, хорошо, спасибо.+ пока не могу поставить, как только так сразу)

Добавлено (31.01.2011, 01:30)
---------------------------------------------
Да, но только объект создаётся через минуту, а мне надо через 15!И не могу понять что поменять то надо?Всё перепробывал!


Офф. Сайт Битва за Олейрент - Это мой сайт посвящённый серии игр Битва за Олейрент.
Видео прохождение игр - Это мой сайт посвящённый прохождению игр.
Made_In_USSRДата: Понедельник, 31 Января 2011, 02:49 | Сообщение # 80
заслуженный участник
Сейчас нет на сайте
15 минут это 900 секунд.
Code
if s=900


Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Архив с вопросами
Поиск:

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