Пятница, 29 Марта 2024, 16:00

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Художник пытается освоить GML (задаю вопросы по всем непоняткам)
Художник пытается освоить 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 - степень смещения пушки относительно босса. Короче чтобы присобачить пушку куда надо smile


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)
---------------------------------------------
ЫХХХ четыре глобальных переменных и боссу хана biggrin


все серо и пусто
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, Мда... Я обошелся тремя (одна пушка, одна переменная), до такого не додумался. Вот что значит гуманитарий((. smile

все серо и пусто
LunarPixelДата: Пятница, 20 Января 2012, 12:02 | Сообщение # 259
старожил
Сейчас нет на сайте
Можно попробовать вообще без переменных сделать smile

У каждой пушки:
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
}}


все серо и пусто
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Художник пытается освоить GML (задаю вопросы по всем непоняткам)
Поиск:

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