Вопрос - Ответ (Game Maker)
| |
FadeBaker | Дата: Среда, 11 Декабря 2013, 04:32 | Сообщение # 4661 |
JavaSE Game Developer
Сейчас нет на сайте
| AnOmalyWolf, используй функцию move_potential_step. Название точно не помню, посмотри в справке.
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
|
|
| |
AnOmalyWolf | Дата: Среда, 11 Декабря 2013, 06:22 | Сообщение # 4662 |
частый гость
Сейчас нет на сайте
| Fade, Ага... Нашёл. Спасибо большое. Код mp_potential_step(x,y,stepsize,checkall) Добавлено (11.12.2013, 06:22) --------------------------------------------- Ещё вот такой вопрос есть. Мне нужно, чтобы при нажатии левой кнопки мыши создавался объект obj_wall. Но только в местах комнаты ниже чем y+500 например. То есть, комната размерами 800X600... Если нажал вверху комнаты левую кнопку, ничего не произошло, а если внизу, то появился obj_wall. Есть идеи?
|
|
| |
zaicev9797 | Дата: Среда, 11 Декабря 2013, 06:56 | Сообщение # 4663 |
AbRaKaDaBrA
Сейчас нет на сайте
| если у тебя к курсору прикреален какой - то объект то просто его координаты сверяй
if (obj.у > 500) {instance_create....}
а если не прекреплен то прикрепи
я так синтаксис не помню, но думаю логику ты понял
проект Mysterious Space. The losted moment
Сообщение отредактировал zaicev9797 - Среда, 11 Декабря 2013, 06:57 |
|
| |
AnOmalyWolf | Дата: Среда, 11 Декабря 2013, 08:35 | Сообщение # 4664 |
частый гость
Сейчас нет на сайте
| zaicev9797, Спасибо. Не стал прикреплять объект, нашёл другой выход. Но твоя идея подтолкнула меня на эту мысль. Спасибо.
|
|
| |
adast12 | Дата: Четверг, 12 Декабря 2013, 14:36 | Сообщение # 4665 |
почетный гость
Сейчас нет на сайте
| Как сделать так чтобы при нажатии пальцем на объект и водя пальцем по оси y объект двигался за пальцем?
|
|
| |
hero564 | Дата: Пятница, 13 Декабря 2013, 18:32 | Сообщение # 4666 |
Made in Ukraine
Сейчас нет на сайте
| adast12, не знаю как с тач падом, но на пс делал так: в событии Mouse Left Pressed: в событии Mouse Left Released: в Step: Код if press=true and y<ymax and y>ymin{ y=mouse_y }
|
|
| |
adast12 | Дата: Пятница, 13 Декабря 2013, 20:37 | Сообщение # 4667 |
почетный гость
Сейчас нет на сайте
| Обновил game maker и вылезла эта ошибка ___________________________________________ ############################################################################################ FATAL ERROR in action number 1 of Step Event0 for object o_info_menu:
DoSet :: Invalid comparison type at gml_Object_o_info_menu_StepNormalEvent_1 (line 1) - if (lang = 1) ############################################################################################
Вот код в событии Step if (lang = 1) { background_index = background0; }
Сообщение отредактировал adast12 - Пятница, 13 Декабря 2013, 20:52 |
|
| |
hero564 | Дата: Суббота, 14 Декабря 2013, 17:25 | Сообщение # 4668 |
Made in Ukraine
Сейчас нет на сайте
| background_index - это для pop-up сообщений? Если да, то в новых версиях они не поддерживаются.
|
|
| |
MrSlap | Дата: Воскресенье, 15 Декабря 2013, 00:41 | Сообщение # 4669 |
почетный гость
Сейчас нет на сайте
| Здравствуйте, господа игроделы. У меня проблема довольно нубского характера, но я никак не могу её решить, чтобы было толково:
Как адекватно выстроить анимацию и смену спрайтов в игре?
Хм... Как бы уточнить вопрос? В общем, жанр - платформерный РПГ. Нужно чтобы при любых условиях новая анимация не могла начаться, пока не закончится предыдущая. Кроме, скажем, ходьбы, и приседания. Мой перс - лучник, он натягивает тетиву некоторое время (что определяет скорость стрелы, соответственно, и силу удара, и дальность полёта), во время натяжения тетивы, объекты рук (вписал отдельными объектами, чтобы левая рука находилась за персонажем, а правая перед ним) проигрывали эту анимацию, чтобы не делал игрок, пока не отпустит кнопку мыши - для спуска тетивы. Само тело персонажа должно откликаться на команды - приседать, подпрыгивать, идти или бежать (и я имею ввиду анимации всего этого). Так же есть возможность переключать на рукопашное оружие и на магию. В рукопашном режиме интерактивные руки, следящие за мышью, отключаются, и спрайт тела меняется на спрайт с руками и мечом, у которого прописаны анимации ударов и прочего. Так всё работает.
Суть вопроса - как сделать, чтобы любая нужная мне анимация проигрывалась от начала и до конца, не взирая на смену действий. Например я не мог переключить оружие, пока натянута тетива. Я не мог снова нанести удар, пока не закончилась анимация первого удара.
Все попытки создать более-менее оптимизированный и удобный код провалились. Расскажите, как прикрепляете анимации к игре вы.
Создаю интерактивную повесть.
|
|
| |
GameMix | Дата: Воскресенье, 15 Декабря 2013, 11:54 | Сообщение # 4670 |
старожил
Сейчас нет на сайте
| MrSlap, всё решение лежит в использовании события Animation End. В событии создания персонажа объяви и инициализируй логическую переменную. Например:Код animation = false; // анимация удара не происходит Теперь везде, где находится выполнение удара, ставь проверку:Код if (animation) { animation = false; // отключаем возможность нанесения повторного удара и действия нанесения удара } И, наконец, в событии Animation End:Код animation = true; // анимация завершилась, разрешаем наносить очередной удар и использовать анимацию
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
MrSlap | Дата: Воскресенье, 15 Декабря 2013, 12:29 | Сообщение # 4671 |
почетный гость
Сейчас нет на сайте
| GameMix, буду пробовать. Спасибо.
Создаю интерактивную повесть.
|
|
| |
tomkallen | Дата: Воскресенье, 15 Декабря 2013, 12:44 | Сообщение # 4672 |
частый гость
Сейчас нет на сайте
| adast12, переменную объявили? If не работает с необъявленными
Код var lang = 1;
// code here
if (lang == 1) { background_index = background0; }
Добавлено (15.12.2013, 12:44) --------------------------------------------- hero564, Нет, у него ошибка именно для цикла If без объявления (строка 1 вызвала фатал)
background_index[0..7] работать будет – это для записи и свопа фонов комнаты
Если можешь не делать игру - не делай.
Сообщение отредактировал tomkallen - Воскресенье, 15 Декабря 2013, 12:39 |
|
| |
sayran | Дата: Воскресенье, 15 Декабря 2013, 20:28 | Сообщение # 4673 |
частый гость
Сейчас нет на сайте
| Доброе время суток ! Подскажите как реализовать щит у корабля ? Есть корабль нажимаешь кнопку срабатывает щит проходит время он исчезает ?
|
|
| |
tomkallen | Дата: Воскресенье, 15 Декабря 2013, 21:04 | Сообщение # 4674 |
частый гость
Сейчас нет на сайте
| sayran, Alarm эвент и инстанс дестрой в нем?
Если можешь не делать игру - не делай.
|
|
| |
jayreck | Дата: Понедельник, 16 Декабря 2013, 05:39 | Сообщение # 4675 |
участник
Сейчас нет на сайте
| sayran, Код
if keyboard_check_released(ord('M')) { instance_create(ship.x+20,ship.y,shield) alarm[0]=120 }
в аларме уничтожаем потом ----------------------------------------------------------------- Замудрил такое
Код Create:
up_button = virtual_key_add(60,200,30,36,vk_up) down_button = virtual_key_add(60,254,30,36,vk_down) left_button = virtual_key_add(30,230,36,30,vk_left) right_button = virtual_key_add(84,230,36,30,vk_right)
Код Draw: if keyboard_check(up_button) draw_sprite(controller,5,60,200) else draw_sprite(controller,1,60,200) if keyboard_check(down_button) draw_sprite(controller,4,60,254) else draw_sprite(controller,0,60,254) if keyboard_check(left_button) draw_sprite(controller,6,30,230) else draw_sprite(controller,2,30,230) if keyboard_check(right_button) draw_sprite(controller,7,84,230) else draw_sprite(controller,3,84,230)
в итоге это почему то криво работает, а именно при нажатии любой кнопки моргает только спрайт up_button, но если сделать так
Код Draw: if keyboard_check(vk_up) draw_sprite(controller,5,60,200) else draw_sprite(controller,1,60,200) if keyboard_check(vk_down) draw_sprite(controller,4,60,254) else draw_sprite(controller,0,60,254) if keyboard_check(lvk_left) draw_sprite(controller,6,30,230) else draw_sprite(controller,2,30,230) if keyboard_check(vk_right) draw_sprite(controller,7,84,230) else draw_sprite(controller,3,84,230)
то всё работает корректно, но так мне не надо так потому что будет использоваться сенсор, а не клавиатура З.Ы. часа 2 уже сижу и не как не пойму в чём соль, взгляните свежим взглядомДобавлено (16.12.2013, 05:35) --------------------------------------------- всё понял, я не совсем правильно понял значение функции virtual_key_add(); Добавлено (16.12.2013, 05:39) --------------------------------------------- а потому надо использовать второй вариант draw и всё будет ок
g-null-dc Ippolit - тамагоч немного моего пиксель арта
|
|
| |
sayran | Дата: Понедельник, 16 Декабря 2013, 07:12 | Сообщение # 4676 |
частый гость
Сейчас нет на сайте
| А можно пример выложить !
|
|
| |
tomkallen | Дата: Понедельник, 16 Декабря 2013, 13:38 | Сообщение # 4677 |
частый гость
Сейчас нет на сайте
| sayran, а разве господин jayreck не выложил?
Если можешь не делать игру - не делай.
|
|
| |
JunkerKun | Дата: Понедельник, 16 Декабря 2013, 16:22 | Сообщение # 4678 |
частый гость
Сейчас нет на сайте
| Цитата sayran ( ) А можно пример выложить ! http://rghost.ru/51003872
Делал еще динозавром, поэтому никаких изысков в области кода не ждать. Вообще, по моему там и нет кода никакого, там кнопки... Собственно, Shift = щит.
Сообщение отредактировал JunkerKun - Понедельник, 16 Декабря 2013, 16:23 |
|
| |
adast12 | Дата: Вторник, 17 Декабря 2013, 20:21 | Сообщение # 4679 |
почетный гость
Сейчас нет на сайте
| Все равно все время повторяются вот объект с глобальным списком: В create global.objects = ds_list_create() ds_list_add(global.objects, o_Textura4) ds_list_add(global.objects, o_Textura5) ds_list_add(global.objects, o_Textura6) ds_list_add(global.objects, o_Textura7) ds_list_add(global.objects, o_up_dnive) ds_list_add(global.objects, o_ice_dnive)
Вот код в объектах, во всех объектах код одинаковый o_Textura4, o_Textura5, o_Textura6, o_Textura7, o_up_dnive, o_ice_dnive: В step if world=0 { sprite_index=textura_cave6; } if sptextura = 8 {x-=globalspeed} else {x-=0} if (x<400 && ready=1) { val = irandom(ds_list_size(global.objects)) obj = ds_list_find_value(global.objects, val) instance_create(1192, y, obj) ds_list_delete(global.objects, val) ready=0 }
if (x < - 400) { instance_destroy(); }
|
|
| |
URGINSAN | Дата: Вторник, 17 Декабря 2013, 21:57 | Сообщение # 4680 |
почти ветеран
Сейчас нет на сайте
| Ребят помогите, в общем есть переменная roty - отвечающая за поворот объекта, мне нужно чтоб при нажатии на кнопку этот объект поворачивался плавно на 45 градусов. Я когда-то давно писал такую функцию, потом ее забыл( И нужно, чтоб скорость поворота тоже можно было свою задать.
Я на драйве
|
|
| |
|