티스토리 뷰

LibGDX에서는 Action를 제공합니다. 그리고 그 Action을 적용시킬 수 있는 Actor들이 있습니다.

그림을 이용한 Actor를 만들 때에 좋은 것이 바로 Image 클래스 입니다.
(조심하십시오. Actor 패키지의 Image 클래스가 있고, 다른 패키지의 Image 클래스가 있습니다.)
http://code.google.com/p/libgdx/source/browse/trunk/gdx/src/com/badlogic/gdx/scenes/scene2d/actors/Image.java?r=2602
오픈소스 라이브러리의 장점을 최대한 활용합시다. 공개되어 있는 소스를 보면 상속관계 등을 손쉽게 이해할 수 있습니다.

Actor에게는 Action을 등록할 수 있습니다.
Image 클래스는 Actor를 상속 받습니다. 따라서 이 Image 클래스에 Action을 하게 할 수 있습니다.
예를 들어 객체의 이동이나 깜빡임 효과, 확대 축소 등이 가능합니다.
또한 이 Action으로 객체가 이동이나 확대 축소 등이 될 때 실제로 객체의 위치가 이동됩니다.
(상당히 중요한 부분입니다. 활용 방법으로는 그림을 클릭했을 때 그림이 특정 위치로 이동하는 등의 방식이 있겠죠.
다른 위치로 이동한 뒤 또 다시 현재 보이는 그림을 클릭하면 그림이 움직이니까요. 그 외에도 많은 활용 방법이 있습니다.)

이 Actor들에게 Action들을 지정하면, 그 Action을 하기 위해서 Actor를 업데이트를 해줘야 합니다.
http://code.google.com/p/libgdx/source/browse/trunk/gdx/src/com/badlogic/gdx/scenes/scene2d/Actor.java?r=1910
Actor클래스를 참고하면 act 함수로 맡은 Action들을 업데이트 합니다.  

Image 클래스를 생성할 때에는 Actor의 이름과 사용할 이미지를 TextureRegion으로 넣습니다.
Actor의 이름은 해당 Actor를 다시 찾을 때 사용하게 되며, TextureRegion은 당연히 Image 클래스의 그림으로 사용하게 됩니다.

TextureRegion region = ...(TextureRegion 생성)...;
Image img = new Image("myImage", region); 


@Override
public void update(float delta)
{
       img.act(delta);


Actor들을 생성해서 그것들을 일일이 update하는 것도 고역입니다.
그것을 방지하기 위해 Stage에 Actor들을 등록할 수 있습니다.

Stage stage = new Stage( 가로크기, 세로크기, true );

Image img = new Image("myImage", region); 

stage.addActor(img); 

@Override

public void update(float delta)
{
      stage.act(delta);


또한 Stage에 등록시켜둔 Actor들은 Stage를 draw할 때 자동으로 그려줍니다.

Stage stage = new Stage( 가로크기, 세로크기, true );

Image img = new Image("myImage", region); 

stage.addActor(img); 

@Override

public void update(float delta)
{
      stage.act(delta);
      stage.draw();



다음 강좌에서는 이것을 활용하여 버튼을 만들어 보겠습니다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday