프로그래밍/Corona SDK2014. 2. 19. 15:21

http://docs.coronalabs.com/guide/graphics/migration_g20.html


Graphics 2.0: Migrating from Graphics 1.0 to 2.0

Graphics 2.0: Graphics 1.0을 2.0으로 업그레이드 하기


Updated: 2013.11.18


Overview

개관


This guide explains the changes required to modify existing Graphics 1.0 code to handle some behavioral changes introduced in Graphics 2.0. By migrating your projects, you'll be able to take advantage of all the new graphics features which are not actively supported in Graphics 1.0 Compatibility Mode.

이 가이드는 이미 만들어진 1.0 코드를 2.0 코드로 변경하기 위해 필요한 작업에 대해 설명한다. 이 변경 작업에 의해 1.0 호환 모드에서 완벽하게 지원되지 않는 새 그래픽 기능들을 제대로 활용할 수 있다.


Guides for the new Graphics 2.0 features are available in Corona University. For a list of tutorials, see the Graphics 2.0 Tutorial Roundup.

Corona University에도 새 2.0 그래픽 기능들에 대한 가이드가 있다. 2.0 그래픽 튜토리얼 라운드업에서 튜토리얼들을 체크해 보기 바란다.


Display Objects

디스플레이 오브젝트


The following are behavioral changes to Graphics 2.0 APIs:

2.0 API에서는 이런 부분들이 바뀌었다. 


Constructors

컨스트럭터


In Graphics 1.0, display object constructors had a top/left parameter. These have been reinterpreted as x and y values that specify the object's center point. The original behavior of interpreting the x and y parameter as top/left is available if using V1 Compatibility Mode. You can see the difference by comparing the HelloWorld_v1 and HelloWorld_v2 samples.

1.0 그래픽에서는 디스클레이 오브젝트가 좌측 상단 위치의 파라미터를 가지고 있었는데 이것이 오브젝트의 중심점을 정의하는 x, y 값으로 바뀌었다. 만약 1.0 호환 모드를 사용한다면 이 x, y 파라미터를 예전처럼 좌측 상단 위치값으로 사용 가능하다. HelloWorld_v1과 HelloWorld_v2 샘플에서 차이점을 비교해 볼 수 있다.


Reference points → Anchor Points


The following methods and properties have been removed:

다음 메소드와 프로퍼티는 없어졌다.


setReferencePoint

xReference

yReference

xOrigin

yOrigin


These have been replaced by anchor points, set via object.anchorX and object.anchorY. Anchors have some behavioral differences ? see Understanding Transforms and Anchors for details.

이것들은 object.anchorX와 object.anchorY로 정해줄 수 있는 앵커 포인트로 대체되었다. 앵커 포인트는 예전의 기준점에 비해서 몇 가지 차이점이 있는데 Understanding Transforms와 Anchors for details을 보고 확인하자.


Note that groups do not have anchor points. All operations are based around the group's fixed origin point.

이제 그룹은 앵커 포인트를 갖지 않게 된다는 것을 주목하라. 그룹에 관한 모든 동작은 origin point가 기준이 되어 동작한다. 


Color Definition

색상 정의


For properties like object:setFillColor() and object:setStrokeColor(), RGBA color settings range between 0.0 and 1.0, not between 0 and 255. In addition, APIs that were available in Graphics 1.0 will adopt the new range by default, unless you enable V1 Compatibility Mode.

object:setFillColor()나 object:setStrokeColor(), RGBA 컬러 세팅과 같은 프로퍼티는 이제 0~255가 아니라 0.0~1.0 사이의 값으로 지정하게 된다. 참고로, 1.0에서 사용할 수 있었던 API들은 v1 호환 모드에서 별도로 지정하지 않아도 새 값을 디폴트로 갖는다.


Also note that object:setTextColor() has been deprecated. You should use object:setFillColor() on text objects instead.

그리고 object:setTextColor()가 없어진 것에 주의하라. 이제는 그 대신 텍스트 오브젝트에 object:setFillColor() 를 사용해야 한다.


Widgets

위젯


This section aims to ease the migration of projects containing widgets.

이 부분에서는 위젯을 포함하는 프로젝트의 업그레이드에 대해 설명한다.


Widget Alignment

위젯 정렬


In Graphics 1.0, all widgets were top-left aligned, except for newPickerWheel().

1.0 그래픽에서, 모든 위젯은 newPickerWheel()를 제외하고는 전부 왼쪽 위 정렬이었다.


In Graphics 2.0, all widgets are center aligned for consistency. The default anchoring for all widgets is 0.5 for both the x and y coordinates.

2.0 그래픽에서, 모든 위젯은 일관성을 위해 가운데 정렬이 되었다. 모든 위젯의 중심점 기본값은 가로/세로 중심을 취하기 위해 0.5가 되었다.


TableView

테이블 뷰


The following changes relate to widget.newTableView():

widget.newTableView()에 관한 변경점


* Widget Positioning

위젯 좌표


In Graphics 2.0, the x and y properties of the table view refer to the center of the widget. This is a change from Graphics 1.0 in which the x and y properties were aligned to the top left.

2.0 그래픽에서는, 테이블 뷰의 x, y 값은 위젯의 중심을 참조하게 된다. 1.0에서는 x, y 값이 왼쪽 위로 정렬되어 있었는데 이제 바뀌었다.


* Row Positioning

열 정렬


In Graphics 2.0, the x and y position of the rows ? when inserting objects into a row via the onRowRender method ? will refer to the center of the row.

2.0 그래픽에서, 열의 x, y값은 onRowRender 메소드로 열에 오브젝트를 넣을 때 중심점을 참조하게 된다.


* Example

예제


The following example shows how your Graphics 1.0 code might look, followed by what it should look like in Graphics 2.0:

다음 예제는 1.0 코드에서 변경하는 방법을 보여준다. 


-- Graphics 1.0

local function onRowRender( event )

    local phase = event.phase

    local row = event.row


    -- We cache the row contentWidth and contentHeight because the row bounds can change as we add children

    -- 열의 contentWidth와 contentHeight를 캐쉬한다. 

    local rowHeight = row.contentHeight

    local rowWidth = row.contentWidth


    local rowTitle = display.newText( row, "Row " .. row.index, 0, 0, nil, 14 )


    -- Left-align the label

    -- 라벨을 왼쪽정렬한다

    rowTitle.x = row.x - ( rowWidth * 0.5 ) + ( rowTitle.contentWidth * 0.5 )


    rowTitle.y = rowHeight * 0.5

    rowTitle:setTextColor( 0 )

end


-- Graphics 2.0 (even in V1 Compatibility Mode)

-- 2.0 그래픽(v1 호환 모드도 포함)

local function onRowRender( event )

    local phase = event.phase

    local row = event.row


    -- We cache the row contentWidth and contentHeight because the row bounds can change as we add children

    -- 열 바꿈은 자식을 넣는 것과 같이 바뀔 수 있기 때문에 contentWidth와 contentHeight를 캐쉬한다

    local rowHeight = row.contentHeight

    local rowWidth = row.contentWidth


    local rowTitle = display.newText( row, "Row " .. row.index, 0, 0, nil, 14 )


    -- Left-align the label

    -- 라벨을 왼쪽 정렬

    rowTitle.x = 0

    rowTitle.anchorX = 0


    rowTitle.y = rowHeight * 0.5

    rowTitle:setFillColor( 0 )

end


Removed Libraries and APIs

없어진 라이브러리와 API들


The following libraries and APIs have been removed in Graphics 2.0 and are not available, even in V1 Compatibility Mode:

다음 라이브러리와 API들은 2.0 그래픽스에서 없어졌으므로 사용 불가능하다(v1 호환 모드 포함).


* sprite library

* 스프라이트 라이브러리

  - The legacy sprite library has been removed. Use display.newSprite() instead.

  - 예전의 스프라이트 라이브러리는 없어졌다. display.newSprite()를 대신 사용하자. 

  - If you rely on the old sprite library, a legacy sprite module is available here.

  - 예전의 스프라이트 라이브러리에 의존하고 있었다면, 여기에서 스프라이트 모듈을 구할 수 있다.

  - Update: Particle Candy has been updated to support Corona Graphics 2.0. If your project uses and older version of Particle Candy, you must download and require() this legacy sprite module.

  - Particle Candy가 코로나 2.0 그래픽스를 지원하도록 업데이트 되었다. 만약 여러분의 프로젝트가 Particle Candy의 구버전을 사용하고 있다면, 반드시 이 스프라이트 모듈을 다운로드해야 한다.


* display.newImageGroup()

Use display.newGroup() instead.

 display.newGroup()를 대신 사용한다.


* setReferencePoint() / xReference / yReference / xOrigin / yOrigin

Use object.anchorX and object.anchorY instead.

 object.anchorX와  object.anchorY를 대신 사용한다.



Deprecated APIs

없어진 API들


* textObject:setTextColor()

Use object:setFillColor() on text objects.

 object:setFillColor()를 텍스트 오브젝트에 사용한다.


* line.width

Use line.strokeWidth instead.

line.strokeWidth를 대신 사용한다.


* line:setColor

Use line:setStrokeColor() instead.

line:setStrokeColor()를 대신 사용한다.


* graphics.newGradient()

Create a table of parameters instead. Please see object:setFillColor() for an example.

파라미터의 테이블을 만들어 대신 사용한다. object:setFillColor()의 예제를 확인하라.



2.0 Graphics Features

그래픽스 2.0의 기능들


To learn about the new Graphics 2.0 features, please read the guides in Corona University or see the Graphics 2.0 Tutorial Roundup.

그래픽스 2,0의 새로운 기능들에 대해서는, Corona University에 있는 가이드를 보거나 그래픽스 2.0 튜토리얼 라운드업을 보자.


Posted by windship