#android #game-maker
#Android #создатель игр
Вопрос:
У меня есть контроллер паузы obj. Раньше это работало при использовании стрелки вверх / вниз, затем enter, чтобы щелкнуть что-то в меню паузы. НО как именно я могу это сделать, используя щелчки левой кнопкой мыши (сенсорный экран) вместо клавиши ввода. У меня есть этот код в качестве клавиши ввода.
if (interest == "resume")
{
instance_destroy();
}
else if (interest == "levels")
{
room_goto(worlds);
}
else if (interest == "main_menu")
{
room_goto(main);
}
И это в моем графическом интерфейсе рисования
draw_sprite(background, 0, 640, 360);
draw_sprite(spr_border, 0, 640, 360);
if (interest == "resume")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 100);
}
else if (interest == "levels")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 100);
}
else if (interest == "main_menu")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 100);
}
Я попытался использовать это в своем пошаговом событии, чтобы заставить нажатие (касание) работать, но оно вообще не работает (ничего не активируется при касании или нажатии).). Это вообще правильно?
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 amp;amp; device_mouse_x(0) < 640 sprite_get_width(spr_resume)
amp;amp; device_mouse_y(0) > 260 amp;amp; device_mouse_y(0) < 260 sprite_get_height(spr_resume)){
//RESUME IS TOUCHED
}
}
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 amp;amp; device_mouse_x(0) < 640 sprite_get_width(spr_levels)
amp;amp; device_mouse_y(0) > 260 amp;amp; device_mouse_y(0) < 260 sprite_get_height(spr_levels)){
}
}
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 amp;amp; device_mouse_x(0) < 640 sprite_get_width(spr_main_menu)
amp;amp; device_mouse_y(0) > 260 amp;amp; device_mouse_y(0) < 260 sprite_get_height(spr_main_menu)){
}
}
Ответ №1:
Я вижу ряд проблем с вашим кодом, которые вам всем нужно будет решить, чтобы что-то работало:
- Ваша переменная интереса проверяется на наличие изменений, но на самом деле она нигде не изменилась (я бы ожидал, что она будет изменена в вашем сценарии событий step, но это ничего не делает).
- Ваш графический графический скрипт рисует одно и то же для трех разных значений, представляющих интерес. Никаких видимых изменений нет.
- Вы переходите в новую комнату и одновременно отображаете выбранный интерес (при отпускании выбора), что означает, что вы никогда не увидите выбор. Вы должны а) нарисовать выбранный интерес при нажатии и б) перейти в комнату при отпускании.
Кроме того, имейте в виду, что более одного пальца могут касаться экрана одновременно — вы проверяете только первое касание, когда их может быть 5.
Последнее предложение в контексте GameMaker — использовать объекты для проверки событий нажатия и отпускания пальцев (события мыши переводятся как события пальцев на сенсорных экранах), а не сканировать области экрана на предмет нажатий. Это то, что делает GameMaker намного проще в использовании, поскольку он автоматически проверяет область спрайтов экземпляра на наличие коллизий, встроенное поведение.