Advertisement
Guest User

Screen Adjust

a guest
Dec 10th, 2016
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. application_surface_enable(false); //Отключаем сурфейс для производительности
  2.  
  3. globalvar DW, DH, BASE_W, BASE_H;
  4. BASE_W = 1920; //под эту ширину мы дизайнили игру
  5. BASE_H = 1080; //и под эту высоту
  6. DW = floor(display_get_width()); //получаем ширину экрана и округляем (надо не забыть поставить галочку на Landscape и Landscape flipped, чтобы отключить портретку)
  7. DH = floor(display_get_height()); //получает высоту и округляем
  8.  
  9. var aspect = DW / DH; //получаем соотношение сторон
  10. var view_h = BASE_H; //устанавливаем для вида высоту, равную базовой
  11. var view_w = view_h * aspect; //получаем ширину вида по высоте с учетом соотношения сторон
  12.  
  13. view_wview[0] = floor(view_w); //округляем результат до меньшего, чтобы не скейлилось
  14. view_hview[0] = floor(view_h);
  15.  
  16. var xview, yview; //Центруем вид (остальные вещи в комнате будут обрезаться)
  17. xview = BASE_W/2-view_wview[0]/2;
  18. yview = BASE_H/2-view_hview[0]/2;
  19.  
  20. view_xview[0] = xview; //Устанавливаем вид по центру
  21. view_yview[0] = yview;
  22.  
  23. view_wport[0] = DW; //Это то, как вид будет растягиваться. Растягиваем по площади экрана.
  24. view_hport[0] = DH;
  25.  
  26. //Обязательно устанавливаем наш поскейленный вид в игровой комнате
  27. room_set_view(rm_game, 0, 1, xview, yview, view_wview[0], view_hview[0], 0, 0, view_wport[0], view_hport[0], 0, 0, 0, 0, -1);
  28.  
  29. //Меняем размеры слоя GUI на размеры вида. Так мы получим относительно нормального размера GUI на всех устройствах.
  30. globalvar GUI_W, GUI_H;
  31. GUI_W = view_wview[0];
  32. GUI_H = view_hview[0];
  33. display_set_gui_size(GUI_W, GUI_H);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement