Художник пытается освоить GML
|
|
Maleev | Дата: Вторник, 17 Января 2012, 19:14 | Сообщение # 241 |
частый гость
Сейчас нет на сайте
| Можно сделать чтобы гг не сразу оказывался в точке mouse_x mouse_y, а двигался к этой точке с определенной скоростью. Добавлено (17.01.2012, 19:14) --------------------------------------------- А не успел.
Пополнить счет.
|
|
| |
Ferrumel | Дата: Среда, 18 Января 2012, 00:53 | Сообщение # 242 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, Maleev, Благодарю, значит в этот гемморой лезть не буду. Пусть мотыляется по всему экрану герой, кому надо будет пройти игру, те будут рулить спокойней.
Добавлено (18.01.2012, 00:53) --------------------------------------------- Не пойму в чем проблема. Почему то не работает кусок скрипта. В принципе из кода все понятно. Стоит он в шаге ГГ.
player.x=mouse_x player.y=mouse_y
//ограничение гг по виду (чтобы не вылазил за край экрана Не работают правая часть и низ, ГГ игнорирует там где +500 и +600) if x < view_xview { x = view_xview; }
if x > view_xview+500 { x =view_xview+500; }
if y < view_yview { y = view_yview; } if y > view_yview+600 { y =view_yview+600; }
все серо и пусто
Сообщение отредактировал Ferrumel - Среда, 18 Января 2012, 00:54 |
|
| |
Robin-Locksley | Дата: Среда, 18 Января 2012, 01:39 | Сообщение # 243 |
постоянный участник
Сейчас нет на сайте
| Quote (Ferrumel) В принципе из кода все понятно В принципе ничего не понятно.
Добавлено (18.01.2012, 01:17) --------------------------------------------- Уверен что не напутал с высотой и и шириной вида? Может поменять местами 500 и 600? И еще, ты включил вид или у тебя 500 и 600 это размер комнаты?Добавлено (18.01.2012, 01:39) --------------------------------------------- Я бы написал так: Code if x < view_xview + sprite_width/2 { x = view_xview + sprite_width/2; }
if x > view_xview + view_wview - sprite_width/2 { x = view_xview + view_wview - sprite_width/2 }
if y < view_yview + sprite_height/2 { y = view_yview + sprite_height/2 } if y > view_yview + view_hview - sprite_height/2 { y = view_yview + view_hview - sprite_height/2 }
GameMaker Easy Menu
Сообщение отредактировал Robin-Locksley - Среда, 18 Января 2012, 01:18 |
|
| |
Ferrumel | Дата: Среда, 18 Января 2012, 16:52 | Сообщение # 244 |
почти ветеран
Сейчас нет на сайте
| Robin-Locksley, Ага, суть ясна. Я действительно сделал вот так Quote или у тебя 500 и 600 это размер комнаты? Просто уменьшил цифры до нужной величины чтобы гг не вылазил. Хоть ваш код и не пригодился, но он натолкнул на нужную мысль. Несомненно плюс!Добавлено (18.01.2012, 16:52) --------------------------------------------- Коллеги, хочу сделать следующую фиготень,
Такой классический босс, с кучей всякого оружия, которое можно уничтожать последовательно. Интересуют моменты, как прилепить объекты оружия к основной массе босса, чтобы они составляли собой, как бы единое целое. Если будут какие нибудь исходники или примеры, буду только рад, также интересуют различные мысли по этому поводу..
все серо и пусто
|
|
| |
LunarPixel | Дата: Среда, 18 Января 2012, 16:54 | Сообщение # 245 |
старожил
Сейчас нет на сайте
| Создаешь два объекта Основа босса и Пушка. Размещаешь их в комнате. У Пушки в событии End Step пишешь: x=boss.x+n y=boss.y+n
где n - степень смещения пушки относительно босса. Короче чтобы присобачить пушку куда надо
|
|
| |
Ferrumel | Дата: Среда, 18 Января 2012, 16:55 | Сообщение # 246 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, тьфу блин.. Так просто((((
все серо и пусто
|
|
| |
GameMix | Дата: Среда, 18 Января 2012, 16:59 | Сообщение # 247 |
старожил
Сейчас нет на сайте
| Ferrumel, можно прицепить объекты-пушки к основной части корабля через событие End Step. К примеру, End Step объекта пушка1: Code x = korabl.x+20; y = korabl.y+12; image_angle = point_direction(x,y,player.x,player.y); // это если нужно
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Ferrumel | Дата: Четверг, 19 Января 2012, 13:23 | Сообщение # 248 |
почти ветеран
Сейчас нет на сайте
| GameMix, с наводкой пушек на ГГ? Хорошая мысль))) Добавлено (19.01.2012, 13:23) --------------------------------------------- LunarPixel, Персональный вопрос. Покажи как делаешь такую штуку как выстрел. Например, имеем один спрайт ГГ, есть выстрел стрип на 6 кадров. Ума не дам что то, как сделать так чтобы анимации всего один цикл проигрывался. Затем спрайт (анимированный выстрел) менялся обратно на спрайт ГГ.
все серо и пусто
|
|
| |
LunarPixel | Дата: Четверг, 19 Января 2012, 13:41 | Сообщение # 249 |
старожил
Сейчас нет на сайте
| Ferrumel, ну можно попробовать сделать так:
При нажатии на кнопку выстрела: sprite_index=sprite_vistrel
А в событии Animation End: if sprite_index=sprite_vistrel sprite_index=sprite_normal
|
|
| |
Ferrumel | Дата: Четверг, 19 Января 2012, 16:50 | Сообщение # 250 |
почти ветеран
Сейчас нет на сайте
| Точно блин! Добавлено (19.01.2012, 16:50) --------------------------------------------- LunarPixel, Вот интересно. А если выстрел производится ботом, периодичность выстрела которого заданы например alarm0. Как здесь поступить с анимацией выстрела? Где и как необходимо выполнять проверку?
все серо и пусто
|
|
| |
LunarPixel | Дата: Четверг, 19 Января 2012, 16:54 | Сообщение # 251 |
старожил
Сейчас нет на сайте
| Ferrumel, а в чем разница?! Или я чего то не догоняю )) Точно так же и сделай, через Animation End. Периодичность создаваемая alarm0 по сути тоже самое, что нажатие кнопки выстрела у ГГ.
|
|
| |
Ferrumel | Дата: Четверг, 19 Января 2012, 17:05 | Сообщение # 252 |
почти ветеран
Сейчас нет на сайте
| Я пробовал так, наверное что то не так делаю, анимация выстрела начинает проигрываться бесконечно. Добавлено (19.01.2012, 17:05) --------------------------------------------- Все, решил проблему)))
все серо и пусто
|
|
| |
LunarPixel | Дата: Четверг, 19 Января 2012, 17:08 | Сообщение # 253 |
старожил
Сейчас нет на сайте
| Ferrumel, может у тебя просто анимация длительная и между её окончанием и новым выстрелом просто нет временного промежутка?!
В Create: alarm[0]=60
в Alarm0: sprite_index=sprite_vistrel alarm[0]=60
А в событии Animation End: if sprite_index=sprite_vistrel sprite_index=sprite_normal
|
|
| |
Ferrumel | Дата: Четверг, 19 Января 2012, 18:18 | Сообщение # 254 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, не не не... там всего четыре кадра, я просто поставил -1 в проигрывании анимации спрайта. Добавлено (19.01.2012, 18:18) --------------------------------------------- Вот думаю, когда босс повержен, его лучше взрывать серией взрывов по всей поверхности. В этом случае лучше всего подойдет timeline?
все серо и пусто
|
|
| |
LunarPixel | Дата: Четверг, 19 Января 2012, 18:25 | Сообщение # 255 |
старожил
Сейчас нет на сайте
| Ferrumel, да, думаю самый простой и оптимальный вариант.
|
|
| |
Ferrumel | Дата: Пятница, 20 Января 2012, 02:19 | Сообщение # 256 |
почти ветеран
Сейчас нет на сайте
| Есть такая штука, босс с кучей пушек. Пушки можно расстрелять игроком. По всей теории после этого боссу настанет хана. Так вот, никак не могу придумать как эту хану ему устроить. Вроде как надо учитывать, остались ли еще пушки у босса (пушки отдельные объекты)? А как это сделать я просто не знаю. Есть ли какие соображения? Добавлено (20.01.2012, 02:19) --------------------------------------------- ЫХХХ четыре глобальных переменных и боссу хана
все серо и пусто
|
|
| |
qazer | Дата: Пятница, 20 Января 2012, 07:09 | Сообщение # 257 |
Borey Games
Сейчас нет на сайте
| Требуется одна глобальная переменная, отвечающая за колличество пушек - global.kolvo, помещенная в Create объекта босса. Допустим global.kolvo=3,т.е. пушек три штуки. В Step каждой пушки пишешь Code if hp<=0 {instance_destoy() global.kolvo-=1} , где hp-переменная, отвечающая за здоровье кадой пушки. И в Step босса Code if global.kolvo=0 {instance_destroy() }
|
|
| |
Ferrumel | Дата: Пятница, 20 Января 2012, 11:58 | Сообщение # 258 |
почти ветеран
Сейчас нет на сайте
| qazer, Мда... Я обошелся тремя (одна пушка, одна переменная), до такого не додумался. Вот что значит гуманитарий((.
все серо и пусто
|
|
| |
LunarPixel | Дата: Пятница, 20 Января 2012, 12:02 | Сообщение # 259 |
старожил
Сейчас нет на сайте
| Можно попробовать вообще без переменных сделать
У каждой пушки: if hp<=0 instance_destoy()
У босса: if instance_number(obj_pushka)=0 instance_destroy()
|
|
| |
Ferrumel | Дата: Пятница, 20 Января 2012, 12:19 | Сообщение # 260 |
почти ветеран
Сейчас нет на сайте
| LunarPixel, блин, по сути вчера я это и искал. Ведь знал же что можно как то сделать просто без переменных.
Слушай, я какие то клины словил с конструкцией IF, просто не могу вспомнить написание если одновременно проверяются на false и true несколько объектов, что то типа если все три объекта false то делаем то... Написал вот так... Как можно покороче эту конструкцию написать?
if global.dead_nos_boss1_x=0 and global.dead_left_orudie_boss1_x=0 { if global.dead_right_orudie_boss1_x=0 { hits-=20 }}
все серо и пусто
|
|
| |