2012-06-22 2 views
0

есть ли возможность в corona sdk написать один код для приложения с патикулярным доступом, и он может работать как на ipad, так и на iphone, без изменения координат объектов и размеров изображений для оба устройства отдельно? Можно ли через дисплей. КонтентHeight и дисплей.contentWidth?Изменение размера изображений в corona sdk для ipad и iphone

+0

извините его iphone в заголовке – 1989

ответ

0

Да, это возможно. Например, если ваше приложение написано для 640х480, вы можете автоматически масштабировать на другие резолюции, говоря его как вы хотите масштабируется в файле config.lua:

application = 
{ 
     content = 
     { 
       width = 640, 
       height = 480, 
       scale = "letterbox" 
     }, 
} 

More info.

+0

Привет, грязь! Спасибо за ответ, но я сомневаюсь. Если я разрабатываю такое же приложение для ipad и iphone4, тогда возможно, что координаты и размеры изображений будут автоматически настроены. Пожалуйста, очистите его. – 1989

+0

[Вот документация Corona по этой теме.] (Http://developer.anscamobile.com/content/configuring-projects#Dynamic_Content_Scaling) Внутри всего этого есть все OpenGL. Если Corona знает размеры вашего приложения, тривиально масштабировать его вверх или вниз до любого разрешения. Флаг «scale» просто указывает, что делать, если соотношение сторон дисплея не соответствует формату вашего приложения. – Mud

2

Грязь была в основном верный. Установив ширину/высоту содержимого, Corona SDK будет автоматически рисовать и масштабировать ваше приложение на экранах iPhone/iPad (+ сетчатка). Лучший способ подумать об этом - это создать приложение на экране 320x480, а затем предоставить изображения для этого размера экрана. Затем вы создаете второй набор изображений для больших экранов. Используя Display.newImageRect() Corona, он загрузит ваши маленькие изображения для iPhone, а затем отобразит более крупные изображения разрешения на дисплеях iPad/Retina.

Посмотрите на эту статью: http://developer.anscamobile.com/forum/2012/03/12/understanding-letterbox-scalling

Ваш config.lua должен выглядеть следующим образом:

application = { 
    content = { 
     width = 320, 
     height = 480, 
     scale = "letterbox", 
     xAlign = "center", 
     yAlign = "center", 

     imageSuffix = { 
      ["@2x"] = 2 
      ["@4x"] = 4 
     }, 
    }, 
} 

При вызове display.contentHeight и display.contentWidth, вы просто читаете эти значения из файл config.lua. Я имею тенденцию использовать некоторые глобальные переменные, если мне нужно делать какие-либо конкретные вычисления позиционирования. Определить это в вашем main.lua:

screenWidth = display.contentWidth - (display.screenOriginX*2) 
screenHeight = display.contentHeight - (display.screenOriginY*2) 
screenTop = display.screenOriginY 
screenRight = display.contentWidth - display.screenOriginX 
screenBottom = display.contentHeight - display.screenOriginY 
screenLeft = display.screenOriginX 
screenCenterX = display.contentWidth/2 
screenCenterY = display.contentHeight/2 

Например:

companyLogo = display.newImageRect("companyLogo.png",64,64) 

Вам понадобится 1 64x64px изображение с именем companyLogo.png. Это будет для < iPhone 4. Затем вам нужно изображение 128x128px с именем [email protected] Corona будет использовать это автоматически на iPhone 4 и iPad. Опять же, на экране iPad 3 будет использоваться другое изображение размером 256x56 с именем [email protected]

Смежные вопросы