Game Maker - создание игр | HellRoom Games
Февраль 25, 2017, 05:22:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Hyperflex - релиз!
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 ... 7 8 [9] 10   Вниз
  Печать  
Автор Тема: Обучение Game Maker 8 [создание 2D платформера]  (Прочитано 78381 раз)
0 Пользователей и 1 Гость смотрят эту тему.
allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #120 : Март 31, 2013, 20:36:24 »

Уже 8 часов сижу и ищу как сделать стрельбу по направлению спрайта ГГ и с кончающимися патронами, которые нужно подбирать в 2D платформере. Вообщем Не отсылайте меня в FAQ, там этого нет. Есть только, как сделать паузу между выстрелами. И кучу ссылок на примеры не давайте, там тоже этого нет. Они в основном все для TDS по курсору мыши, либо с бесконечными патронами и своеобразными скриптами, при вставке которых все идет наперекосяк, то ГГ перестает двигаться, то вообще ведет себя неадекватно. Вот удалось нарыть скрипт для  TDS, получилось сделать, чтобы патроны кончались, а вот что нужно вписать сюда, чтобы патрон летел по направлению спрайта ГГ? Нужен этот простой скрипт. Если спрайт ГГ левый - патрон летит влево, а если Правый - вправо. Это часть кода, при нажатии кнопки стрельбы. Тут кое что ненужно конечно.
Код:
if (global.bullet>0) // первым делом проверим есть ли у нас патроны
{
 if (canshoot) // теперь проверим можно ли стрелять
 {
  global.bullet-=1;  /// отнимаем -1 патрон при выстреле
  sound_play(sound1) // проигрываем звук стрельбы
  canshoot=false; // даем понять, что после одного выстрела нам нельзя стрелять определенное время
  alarm[0]=20; /// время паузы 20 шагов
  var i,newbullet; /// создаем переменную newbullet
  for (i=0;i<5;i+=1) /// кол-во создаваемых патрон
  {
   newbullet = instance_create(x,y,o_bullet); /// создаем объект пули и записываем это действие в переменную newbullet
   newbullet.direction = image_angle + irandom_range(-15, 15); // направление полета пули и разлет пули
   newbullet.image_angle = newbullet.direction; // направление спрайта пули = направлению объекта пули
   newbullet.sp=15; // скорость пули
   newbullet.speed = 0.5;  /// так надо =)

  }
}
}
Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 594
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: Coder, Artist
Сообщений: 5659



« Ответ #121 : Март 31, 2013, 20:44:55 »

Код:
switch(sprite_index)
{
case s_right: летит вправо; break;
case s_left: летит влево; break;
}
Если стрельба на мышку, то лучше направлять пулю к мышке. И лучше делать один спрайт и поворачивать его с помощью image_xscale=-1(повернуть) 1(сделать прежним)
Записан
MegaDimon
GM Pro user
*

Репутация: 74
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
1000 сообщений!За постоянность! [10 дней на форуме]
API: GameMaker Studio Pro
Деятельность: Gml, Pixel Art
Сообщений: 1266


CreaQtrex


« Ответ #122 : Март 31, 2013, 20:46:04 »

Можно проверять поворот спрайта гг перед созданием пули.
И в коде у тебя правда много не нужно, можно сделать на много проще.
Записан
allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #123 : Март 31, 2013, 21:05:31 »

Нужно стрельбу при нажатии на пробел только. На мышку не вариант, делал. Управление не позволяет двигаться и в то же время стрелять мышкой.
В этом коде не понятно "летит вправо и летит влево" Это пояснение, или туда что-то вписать нужно оО
Код:
switch(sprite_index)
{
case s_right: летит вправо; break;
case s_left: летит влево; break;
}
Записан
AndrewVideoGames
Главный Модератор
*

Репутация: 594
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]За помощь новичкам!
API: GameMaker Studio Pro
Деятельность: Coder, Artist
Сообщений: 5659



« Ответ #124 : Март 31, 2013, 21:28:35 »

 Туда вписать полет пули вправо или влево. Его можно по-разному задать.
Записан
allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #125 : Март 31, 2013, 22:49:48 »

Еще вопрос, как сделать, чтобы уничтожив объект А, уничтожился и объект Б. Например, уничтожили босса, уничтожается дверь, которая следит, если объекта босс уничтожили, я тоже уничтожаюсь. Все просто, а как записать не знаю.
Записан
demon3521
Посетитель
**

Репутация: 5
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 33



« Ответ #126 : Март 31, 2013, 22:57:12 »

if instance_exists(obj_a)
{
with(obj_b)
{instance_destroy}
}

при уничтожении объекта а, уничтожится объект b
Записан


allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #127 : Апрель 01, 2013, 00:05:28 »

Хм, а в какое событие этот скрипт вставлять нужно? Что-то у меня  сразу объект Б (дверь) уничтожается, хотя объект А (босс) живой.
А, разобрался, в событие уничтожение. И, если что, там после instance_destroy скобки нужны.
Код:
if instance_exists(obj_A)
{
with(obj_B)
{instance_destroy ()}
}
Записан
Bunyod
Новичок
*

Репутация: 0
Offline Offline

Guinea-Bissau Guinea-Bissau

API: Game Maker 8.0 Pro
Сообщений: 1


« Ответ #128 : Июль 03, 2013, 22:11:18 »

я всё таки не понял как делать платформы патаму что я скачал пример там в папке с спрайтам с игрой нету обяснений как джелать эту игру скажите нарм а то я чё та не понял 
Записан
Ivaha_9
Активный участник
*****

Репутация: 44
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
За постоянность! [10 дней на форуме]За участие в Весеннем конкурсе.
API: Game Maker 8.0 Pro
Сообщений: 279


« Ответ #129 : Июль 03, 2013, 22:41:42 »

Разархивируй архив в папку туториалс.
Записан
Temniy
Новичок
*

Репутация: 0
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Lite
Сообщений: 6


« Ответ #130 : Март 10, 2014, 22:52:45 »

move_contact_solid(direction,speed);
В столкновение добавить.

а можно поподробнее в какое столкновение?

 Спасибо разобрался
Отличный учебник плюсик автору
Записан
allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #131 : Сентябрь 21, 2014, 22:11:16 »

У меня не проигрываются звуки в GMS. Я портировал с GM8 проект в GMS. Устранил все ошибки, игра запускается, но ни одного звука вообще нет.
Вот в качестве примера. У ГГ в событии нажатии кнопки прыжка "Z" (press Z-key) стоит вот такой код
Код:
if !place_empty(x,y+1) then
{
y-=1
vspeed=-16.5
released=0
}
sound_play (snd_jump)
В GM8 строчка sound_play (snd_jump), проигрывала звук, а в GMS тишина. Если убрать эту строчку и поставить проигрывание этого звука через быструю кнопку, то все ок.
Также в событии столкновения ГГ с объектами, если воспроизведение звука написано кодом, то его тоже нет.
В чем проблема GMS?  

Понятно, добавлю сюда же. Нужно писать вот так
Код:
audio_play_sound(soundid,priority,loops)
Для моего примера это будет выглядеть вот так
Код:
audio_play_sound(snd_jump, 10, false);
« Последнее редактирование: Сентябрь 21, 2014, 23:06:05 от allilya » Записан
YellowAfterlife
Is watching you.
Главный Модератор
*

Репутация: 422
Offline Offline

Пол: Мужской
Ukraine Ukraine

Награды:
Добавление и перевод новостей о Game Maker!500 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+300 репутации]Настоящий игродел!Знаток Game Maker!...
API: GameMaker Studio Master
Сообщений: 719



WWW
« Ответ #132 : Сентябрь 21, 2014, 22:35:20 »

В GameMaker: Studio была введена новая аудиосистема, использующая другие имена функций. Для использования см. справку о audio_sound_play.
Записан

allilya
Посетитель
**

Репутация: 1
Offline Offline

Russian Federation Russian Federation

API: Game Maker 8.0 Pro
Сообщений: 40


« Ответ #133 : Ноябрь 15, 2014, 17:34:47 »

У меня много уровней в игре. Решил сделать так, чтобы при начале новой игры всегда начинался произвольный уровень, а также при завершении одного уровня, следом шел произвольный. Подскажите как можно это реализовать кодом? Например я прошел уровень, у меня появляется кнопка подтверждения перехода на след. уровень. Какой код нужно вписать в эту кнопку, чтобы при нажатии на нее следом шел любой произвольный уровень?
Записан
Dmi7ry
Гл. Администратор
*

Репутация: 1184
Offline Offline

Пол: Мужской
Russian Federation Russian Federation

Награды:
5000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+1000 репутации]За помощь в развитии форума!Знаток Game Maker!За помощь новичкам!
API: GameMaker Studio Master
Деятельность: Code, design
Сообщений: 5529



WWW
« Ответ #134 : Ноябрь 15, 2014, 18:01:18 »

Как понимаю, уровни не должны повторяться?
Создайте список (ds_list) в который поместите названия всех комнат, в которые можно переходить. Что-то вроде:
Код:
levels_list = ds_list_create();
ds_list_add(r_level1);
ds_list_add(r_level2);
..
ds_list_add(r_final_level);

// и перемешайте его в случайном порядке
ds_list_shuffle(levels_list);

в конце уровня просто берите первую строчку из списка (и удаляйте её из него):
Код:
if ds_list_size(levels_list) > 0
{
    next = ds_list_find_value(levels_list, 0);
    ds_list_delete(levels_list, 0);
    room_goto(next);
}
else
{
    все уровни пройдены
}
Записан

- А какой, собственно, командой процессора колобок ест черта?
- Командой EAT...
Справка и FAQ в правом верхнем углу...
Страниц: 1 ... 7 8 [9] 10   Вверх
  Печать  
 
Перейти в:  

Vendet | HellRoom Games © 2006-2017 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines