반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리

FAQ Wednesday: Display Objects

2012. 10. 26. 05:55 | Posted by 솔웅


반응형
Posted on . Written by


또 다시 FAQ 시간이 돌아왔습니다. 오늘은 display objects 와 관련해서 자주 질문 되는 내용을 다루겠습니다.


1. Why is my iOS App file larger with Daily Builds compared to building with the release build (894)?


build 900 부터  iOS “developer” builds 시 PNGCRUSH 가 더이상 발생하지 않습니다. build 시간을 절약하기 위해서 만들었는데 그렇다고 해서 PNG 이미지가 압축되지 않는건 아닙니다. AdHoc or Distribution build 시에는 아직 PNGCRUSH 부분이 변경되지 않았습니다.


2. How can I load images that are larger than the device’s screen size, without it scaling down the image?


display.newImag는 디바이스의 해상도에 맞춰서 이미지 크기를 표시할 겁니다. automatic scaling을 사용하지 않으시려면 “isFullResolution” flag을 true로 하시면 됩니다.


-- display.newImage( [parentGroup,] filename [,baseDirectory] [,left,top] [,isFullResolution])
local image = display.newImage( "myImage.png", 0, 0, true )

display.newImageRect로는 로드될 떄 자동으로 이미지를 scale down 하지는 않습니다. 이 API는 반드시 이미지의 width 와 height 을 지정해 줘야합니다. 이렇게 높이와 너비를 지정하는것도 디바이스의 스크린 크기보다 더 큰 이미지를 로드하는 방법중 하나입니다.


디바이스는 로드할 수 있는 maximum 해상도가 있습니다. 대개 2048 x 2048 입니다. 이점 유의하세요.





3. If I put code like display.newRect(0, 0, 80, 40), at coordinates 0,0, my rectangle will appear cropped at top-left of the mobile screen.


newRect 가 생성됐을 때 TopLeft reference로 생성되기 때문에 로드될 때 object 가 잘리지 않을 겁니다. 그러니까 0,0 이면 화면의 top left 에 사각형의 top left 코너가 맞게 나올 겁니다. 아마 status bar 를 보이도록 하셨으면 잘려보일 수도 있습니다. 이럴 땐 아래처럼 status bar를 없애시면 됩니다.


display.setStatusBar(display.HiddenStatusBar)


대부분의 display objects 들은 TopLeft reference point를 사용합니다. object 가 생성된 이후에 그 reference point를 Center reference 로 바꿉니다. 아래는 화면의 중앙에 사각형을 놓는 방법 중 하나입니다.


local rect = display.newRect( 0, 0, 80, 40 )
rect.x = display.contentCenterX
rect.y = display.contentCenterY


아래처럼 하면 정확하게 사각형이 중앙에 위치하지 않고 사각형의 TopLeft 가 화면 중앙에 위치할 겁니다.


local rect = display.newRect( display.contentCenterX, display.contentCenterY, 80, 40 )

display object를 생성할 때 TopLeft reference 를 사용하면 다음과 같은 object들을 제외하고는 모두 적용됩니다. display.newCircle and The display.newGroup. display.newCircle는 center reference로 생성됩니다. display.newGroup은 처음 생성되면 empty 인 상태이고 어떤 object가 그룹 내에 속하게 되면 TopLeft reference 를 사용하게 됩니다.


4. setReferencePoint is not working when I use display.topLeftCenterReferencePoint. What’s wrong?


setReferencePoint에 대한 파라미터의 spell 이 정확한지 보세요. 대소문자도 맞아야 합니다. 그렇지 않으면 제대로 작동되지 않을 겁니다. Top Left Center reference point로 세팅하기 위한 정확한 값은 display.TopLeftCenterReferecePoint (with a capital “T”) 입니다. 불행히도 spell 이 틀렸더라도 API는 warning 이나 에러메세지를 보여주지 않습니다. 이와 관련해서는 저희들 수정할 목록에 이 부분이 포함되 있다는 것을 알려 드립니다.


local image = display.newImage( "myImage.png", 0, 0 )
image:setReferencePoint( display.TopCenterReferencePoint )
image.x = 20
image.y = 100



That’s it for today’s questions. I hope you enjoyed it and even learned a few things.

여기까지가 오늘의 질문과 답변입니다. 감사합니다.




반응형