Flashgamedev.ru | Разработка и Монетизация Флэш игр
http://flashgamedev.ru/

Starling полный экран на новых ipad, iphone X, max...
http://flashgamedev.ru/viewtopic.php?f=22&t=33791
Страница 1 из 1

Автор:  OneHalf [ Пт апр 10, 2020 4:22 pm ]
Заголовок сообщения:  Starling полный экран на новых ipad, iphone X, max...

Привет.
Многие пользователи давно жалуются, что игра не использует полный экран, и так как сижу дома на самоизоляции решил попробовать поискать решение.
Есть ли какие то хитрости -как запустить на полном экране? В распоряжении только ipad 2 mini и iphone 5,8 на них игра на полном экране.

использую следующий код для запуска
Код:
private function CreateGame():void
      {

         if (starling == null)
         {
            Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
            
            Starling.multitouchEnabled = true; // useful on mobile devices
            
            myOptions.Height = stage.fullScreenHeight;
            myOptions.Width = stage.fullScreenWidth;
            
            
            var viewPort = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight);
            starling = new Starling(Game, stage, viewPort, null, "auto", "auto");
            starling.stage.stageWidth = myOptions.Width;
            starling.stage.stageHeight = myOptions.Height;

            starling.simulateMultitouch  = true;
            
            //устанавливаем значение антиалиасинга
            starling.antiAliasing = myOptions.AntiAliasing;
            starling.showStats = myOptions.showStats;
            //запускаем рендер и обновление Starling'a

            starling.start();
            stage.addEventListener(ResizeEvent.RESIZE, resizeStage);
         }
      }
      
   
      private function resizeStage(event:Event):void
      {
         var screenWidthHeightRatio:Number = stage.stageWidth / stage.stageHeight;
         var stageRatio:Number = stage.stageWidth / stage.stageHeight;
         var ratioDifference:Number = stageRatio / screenWidthHeightRatio;
         var finalHeight:Number = stage.stageHeight * ratioDifference;

         var viewportRect:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

         if (Starling.current)
         {
            Starling.current.viewPort = viewportRect;
            Starling.current.stage.stageWidth = stage.stageWidth;
            Starling.current.stage.stageHeight = finalHeight;
            
            myOptions.stageHeight = finalHeight;
            myOptions.stageWidth = stage.stageWidth;
         }
      }

Автор:  IVK [ Сб апр 11, 2020 10:08 am ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

возможно нужно что-то прописать в xml дескрипторе?
например, на андроиде для поддержки таких экранов мне помогла такая строка
<meta-data android:name="android.max_aspect" android:value="2.16" />

Автор:  General [ Пн апр 13, 2020 1:14 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

Про полный экран ты имеешь в виду запускать так, чтобы игра отрисовывалась и левее и правее выреза для фронтальной камеры?

Автор:  General [ Пн апр 13, 2020 1:26 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

Ещё посмотри Screen.mainScreen.visibleBounds

Если сверзу есть вырез под камеру, то Screen.mainScreen.visibleBounds.y будет > 0
Поэтому чтобы определить размеры экрана я делаю так
Код:
            if (Screen.mainScreen.visibleBounds.y > 0){
               screenW = Screen.mainScreen.visibleBounds.width// а не stg.fullScreenWidth;
               screenH = Screen.mainScreen.visibleBounds.height// а не stg.fullScreenHeight;               
            }else{
               screenW = stg.fullScreenWidth;
               screenH = stg.fullScreenHeight;               
            }


И вторая особенность - саму функцию определения размеров экрана и создания старлинга запускаю не с самого старта, а через секунду после создания Мейна.

Автор:  OneHalf [ Пн апр 13, 2020 6:41 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

General писал(а):
Про полный экран ты имеешь в виду запускать так, чтобы игра отрисовывалась и левее и правее выреза для фронтальной камеры?

Выпросил скрины устройства вроде без вырезов для камеры.
Попробую стартовать попозже, вдруг поможет...

Вложения:
ev_Y3ahHCjU.jpg
ev_Y3ahHCjU.jpg [ 275.16 KIB | Просмотров: 3628 ]
S2xc70bdrXU.jpg
S2xc70bdrXU.jpg [ 490.27 KIB | Просмотров: 3628 ]

Автор:  OneHalf [ Вт апр 21, 2020 3:08 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

Разобрался

https://forum.starling-framework.org/d/ ... on-problem

нужно просто добавить сплешскрины в нужном разрешении, достаточно landscape если игра только ландскапе

Автор:  General [ Вт апр 21, 2020 11:27 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

Отдельное спасибо за то,что написал решение!

Автор:  OneHalf [ Ср апр 22, 2020 10:21 am ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

Для андроида для тех же целей заиспользовал вот эту библиотеку https://github.com/distriqt/ANE-Applica ... /u.Display она платная 20$

Вложения:
WhatsApp Image 2020-04-22 at 07.13.51.jpeg
WhatsApp Image 2020-04-22 at 07.13.51.jpeg [ 121.99 KIB | Просмотров: 3009 ]

Автор:  paulp [ Ср апр 22, 2020 4:19 pm ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

OneHalf писал(а):
Для андроида для тех же целей заиспользовал вот эту библиотеку https://github.com/distriqt/ANE-Applica ... /u.Display она платная 20$

Что-то ссылка не открывается

Автор:  OneHalf [ Чт апр 23, 2020 10:27 am ]
Заголовок сообщения:  Re: Starling полный экран на новых ipad, iphone X, max...

paulp писал(а):
OneHalf писал(а):
Для андроида для тех же целей заиспользовал вот эту библиотеку https://github.com/distriqt/ANE-Applica ... /u.Display она платная 20$

Что-то ссылка не открывается


https://airnativeextensions.com/extensi ... pplication

в коде 2 строки добавляешь

Цитата:
Application.service.setStage( stage );



Application.service.display.setDisplayMode(
DisplayMode.IMMERSIVE,
LayoutMode.CUTOUT_SHORT_EDGES
);


и <fullScreen>false</fullScreen>

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/