Среда, 27 Ноября 2024, 17:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
Space_wormДата: Среда, 20 Сентября 2017, 23:02 | Сообщение # 1 | Тема: Вопросы про разрешение экрана
уже был
Сейчас нет на сайте
Цитата useruser ()
Значит нужно менять положение объектов, если это возможно. Т.е. производить расчет положения объекта относительно разрешения экрана.
Картинка всегда должна быть в правом нижнем углу? Значит её координата х = ширина экрана-ширина картинки.

Возможно уже поздний вечер, но я ни черта не понял.

Насколько я понимаю, при работе с разрешением есть 2 основных момента:
1) Для того чтобы не портились растровые изображения, отношение ширины и высоты вида в комнате к соответственно ширине и высоте окна должны быть целыми. При этом получается, что отношение высоты и ширины вида равно отношению высоты и ширины окна.
2) Если твой вид (вся комната на примере с шахматами) невозможно полностью вписать в окно, то есть указанные в последнем предложении отношения не равны друг другу, то

а) подгоняешь свой вид под размеры окна, а если это невозможно

б) таки да, "черные полосы" по бокам - единственный оставшийся выход. Только необязательно делать именно черные полосы, можно же графически приятно оформить лишнее пространство.

Если английского не боишься, зацени этот видос:

https://www.youtube.com/watch?v=jCl6zT0eQLU&list=PLXkVsacazW2qvdnKNzgBLkUwlgi3FU-VO
Space_wormДата: Среда, 20 Сентября 2017, 20:06 | Сообщение # 2 | Тема: Вызов события по клику мыши на объекте нарисованном в GUI
уже был
Сейчас нет на сайте
Цитата zillkor ()
Перепутал там два раза написал width. Вроде заработало. Но вообще такой подход - это не велосипед?


По-моему, не велосипед. С помощью DrawGUI других способов не знаю.

Вот тебе пример реализации кнопки:

В Create:

// button coordinates and bounds
btn_x = display_get_gui_width() - (sprite_get_width(spr_button)-sprite_get_xoffset(spr_button)) - 200;
btn_y = display_get_gui_height() - (sprite_get_height(spr_button)-sprite_get_yoffset(spr_button)) - 100;
btn_img = 0;
btn_bbox_bottom = btn_y + (sprite_get_height(spr_button)-sprite_get_yoffset(spr_button));
btn_bbox_top = btn_y - sprite_get_yoffset(spr_button);
btn_bbox_right = btn_x + (sprite_get_width(spr_button)-sprite_get_xoffset(spr_button));
btn_bbox_left = btn_x - sprite_get_xoffset(spr_button);

// масштаб интерфейса относительно вида в игре
display_scale_x = display_get_gui_width()/view_wview[view_current];
display_scale_y = display_get_gui_height()/view_hview[view_current];

over_btn = 0; // Курсор над кнопкой
pressed = 0; //Кнопка нажата

В Step:

// Координаты мыши в интерфейсе
global.gui_mouse_x = (mouse_x - view_xview[view_current]) * display_scale_x;
global.gui_mouse_y = (mouse_y - view_yview[view_current]) * display_scale_y;

over_btn = (global.gui_mouse_x > btn_bbox_left)&&(global.gui_mouse_x < btn_bbox_right)&&(global.gui_mouse_y > btn_bbox_top)&&(global.gui_mouse_y < btn_bbox_bottom);

if (mouse_check_button_pressed(mb_left))
{
pressed = 1;
}


Сообщение отредактировал Space_worm - Среда, 20 Сентября 2017, 20:07
  • Страница 1 из 1
  • 1
Поиск:

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