Четверг, 28 Марта 2024, 16:21

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Дробовик (Выстрел...)
Дробовик
Alex-KarpДата: Пятница, 28 Января 2011, 11:06 | Сообщение # 1
участник
Сейчас нет на сайте
Подскажите мне код для выстрела дробовика!
Выстрел патронны росходятся!!! И если можно опишыте принцып действия выстрела!)

СПС))



Пишем игру на GM вместе...

SilverShot

BaHu3aTopДата: Пятница, 28 Января 2011, 11:34 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
В степе оружия
if (mouse_check_button_pressed(mb_left))
Code
{
instance_create(x+0,y+0,o_bulgun)
instance_create(x+0,y+0,o_bulgun)
instance_create(x+0,y+0,o_bulgun)
}

В Создании пули
Code
move_towards_point(mouse_x+random(15)-random(15),mouse_y+random(15)-random(15),20);


Dva_KotaДата: Пятница, 28 Января 2011, 12:13 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Можно сделать короче. В шаге оружия написать:
Code
if (mouse_check_button_pressed(mb_left))  
{
repeat(5)
bullet=instance_create(x,y,o_bulgun)
bullet.speed=random_range(10,13);                    //Скорость
bullet.direction=direction+random_range(-15,15);                             //Направление
}

И в создании пули можно ничего не писать.


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

Energy Wars
Alex-KarpДата: Пятница, 28 Января 2011, 13:05 | Сообщение # 4
участник
Сейчас нет на сайте
спс))) Зделав))) Терь вот глюк с перезарядкой!((( Перезаряжается норм, но бывает проскакует перезарядка когда она не нужна! С 1 оружкой норм, код весь скопировал и зделал на подобе перезарядку на оружея 2 такую самую но теперь чёт лагает(((


Пишем игру на GM вместе...

SilverShot

Dva_KotaДата: Пятница, 28 Января 2011, 13:16 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Как сделал перезарядку и уменьшение патронов?
Code
if (mouse_check_button_pressed(mb_left))
{
repeat(5)
{
bullet=instance_create(x,y,o_bulgun)
bullet.speed=random_range(10,13); //Скорость
bullet.direction=direction+random_range(-15,15); //Направление
}
//здесь уменьшаем количество патронов на 1
}


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

Energy Wars


Сообщение отредактировал Dva_Kota - Пятница, 28 Января 2011, 13:17
Alex-KarpДата: Пятница, 28 Января 2011, 13:19 | Сообщение # 6
участник
Сейчас нет на сайте
перезарядка

if weapon=2
{
if magazBul<=0 and ammoBul>0 and perzd=1 {alarm[1]=45 perzd=0}
if ammoBul<=0 and magazBul<=0 {magazBul=0ammoBul=0}
}

выстрел
if weapon=2
{
if magazDrob>0
{
repeat(5) instance_create(x+0,y+0,obj_bullet_2)

magazDrob-=1
}
}

alarm1

if weapon=2
{
magazDrob=8
ammoDrob-=8
perzd=1
}



Пишем игру на GM вместе...

SilverShot

Сообщение отредактировал Alex-Karp - Пятница, 28 Января 2011, 13:22
Dva_KotaДата: Пятница, 28 Января 2011, 13:24 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Code
{magazBul=0ammoBul=0}

Здесь пробел забыл поставить

Поставь код перезарядки сразу после уменьшения патронов.


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

Energy Wars
Alex-KarpДата: Пятница, 28 Января 2011, 13:28 | Сообщение # 8
участник
Сейчас нет на сайте
Quote (Dva_Kota)
{magazBul=0ammoBul=0} Здесь пробел забыл поставить Поставь код перезарядки сразу после уменьшения патронов.

СПС)) Работает!!! Я Убрал из степа и добавил его после уменьшения патронов на глоб.лев.мыш.



Пишем игру на GM вместе...

SilverShot

Dva_KotaДата: Пятница, 28 Января 2011, 13:57 | Сообщение # 9
заслуженный участник
Сейчас нет на сайте
Правильно, нет смысла проверять это в степе - все равно количество патронов уменьшается только когда стреляешь (в большинстве игр).

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

Energy Wars
Alex-KarpДата: Пятница, 28 Января 2011, 14:04 | Сообщение # 10
участник
Сейчас нет на сайте
Quote (Dva_Kota)
Правильно, нет смысла проверять это в степе - все равно количество патронов уменьшается только когда стреляешь (в большинстве игр).

рОЗКАЖ КАКАЯ РАЗНАЦА У СТЕПАХ ИХ 3 ВИДА?! Для чего лучше и что? чтоб уменьшыть оптимицацию



Пишем игру на GM вместе...

SilverShot

Dva_KotaДата: Воскресенье, 30 Января 2011, 10:44 | Сообщение # 11
заслуженный участник
Сейчас нет на сайте
Для оптимизации, на сколько я знаю, нет разницы в каком степе ты пишешь код - в любом случае код будет выполняться каждый шаг.

Разница очень хорошо описана в справке:

Quote
...Но Вы также можете выбрать событие начала шага (Begin step) и конца шага(End step). Событие начала шага выполняется в начале каждого шага, перед всеми остальными событиями. Обычное событие шага выполняется перед тем, как экземпляры объекта будут перемещены в новые позиции. Событие конца шага выполняется в конце шага, перед событием рисования. Оно обычно используется, например, для изменения спрайта в зависимости от его текущего направления.

Где писать код зависит от того, когда именно должны выполняться действия. Чаще всего это не имеет значения, по этому основную часть кода можно писать в степ.

А вот привязку одного объекта к другому луче делать в событии End step. Вот код привязки:

Code
x=obj1.x;
y=obj1.y;

Если его выполнить в событии Step, то данный объект переместится в координаты объекта obj1, но движение объекта obj1 выполнится в стобытии End Step. По этому когда привязку объектов делают в step они как бы "отрываются" друг от друга.

Добавлено (30.01.2011, 10:44)
---------------------------------------------
А вообще, для оптимизации лучше убрать из степа код, который не обязательно выполнять каждый шаг, и перенести его в аларм.


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

Energy Wars
AGENTX001Дата: Воскресенье, 30 Января 2011, 23:00 | Сообщение # 12
почётный гцупер
Сейчас нет на сайте
Dva_Kota, спасибо за рассказ про End step и Begin step=) А то у меня helth bar в игре убегал и пришлось переносить его в Draw. В следующий раз буду умнее))
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Дробовик (Выстрел...)
  • Страница 1 из 1
  • 1
Поиск:

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