2015-10-07 5 views
0

Я совершенно новый для короны SDK и следующих уроков. Я замечаю, что когда я позиционирую элементы, они не появляются, как в учебниках. Например:Corona SDK - прямоугольник, не появляющийся в ожидаемом месте (система координат)

local testRect = display.newRect(0, 0, 50, 50) 
testRect:setFillColor(0.5,0,0) 

enter image description here

В учебнике это выглядит следующим образом:

enter image description here

Я думаю узловую точку на прямоугольнике будет 0,5, 0,5 и я должны располагать его на 50% вправо и 50% от верхней части левого верхнего угла. Похоже, что в их примере прямоугольник имеет опорную точку 0, 0 и по умолчанию привязан к краю экрана.

Почему существует разница? Я замечаю, что этот учебник использует iphone 4 .. но это должно иметь значение?

ответ

0

Я уверен, что опорные точки, которые они используют, составляют 0,5,0,5.

Я предлагаю вам проверить файл build.settings .. Я попробовал код и получил тот же результат, что они имели ..

enter image description here

снова проверьте ваши build.settings файл

1

Пару лет назад Corona SDK перешел на стандарт Graphics 2.0. Часть этого хода заключалась в том, чтобы отображать все объекты отображения. *, Чтобы вести себя одинаково при их создании. До Graphics 2.0 некоторые объекты значения X и Y означали верхний левый, для других - центр. С Graphics 2.0 все значения X и Y при создании объекта теперь являются центром объекта.

Если у вас есть более старое учебное пособие, оно может предполагать, что x, y сверху слева. В вашем примере вы создаете объект в 0, 0, который является верхним левым углом области содержимого. Поскольку вы находитесь на экране, который шире, чем определенная область содержимого, 0, 0 не всегда находится в верхнем левом углу экрана.

Я предполагаю, что ваш config.lua устанавливает ширину 320 и высоту 480 (всегда отображается так, как если бы устройство находилось в портретном режиме). Но вы используете экран iPhone 5, что означает, что верхний левый угол равен -44, 0. Это объясняет, почему изображение не полностью соответствует левому краю.

+0

Как вы учитываете разные размеры экрана? В идеале вы всегда хотите, чтобы верхний левый угол экрана был 0,0 .. – hamobi

+0

Существует несколько способов атаковать его. У них есть свои плюсы и минусы. Один из способов - рассчитать верхний левый экран, используя display.screenOriginX, чтобы добавить дополнительное пространство (обычно отрицательное число) в ваши местоположения, чтобы добраться до края экрана. См. Https://docs.coronalabs.com/api/library/display/screenOriginX.html. Другие варианты - использовать config.lua, который вычисляет вашу область содержимого, чтобы убедиться, что область содержимого заполняет экран. https://coronalabs.com/blog/2013/09/10/modernizing-the-config-lua/ –