Rokon tutorial 두번째 섹션에 오신것을 환영합니다.
이번 토튜리얼에서는 Rokon 프로젝트에서 요정을 추가하고, 움직이는 법을 배울것입니다.
자바 프로그래밍과 안드로이드 SDK 에 대해 경험이 있다고 가정합니다.
이클립스를 사용하여 진행하겠지만, 다른 툴을 쓴다고 해도 따라흐는것은 가능합니다.
이전 토튜리얼인 "Hello World"에 이어 진행하며, 그것을 이미 읽었으며, Rokon 프로젝트가 설정되어 있고,
모든 준비가 되었다고 가정합니다.
(마지막에는 토튜리얼의 소스를 다운받으실수 있습니다.)
이클립스를 시작해서 Rokon 프로젝트에 들어갑니다.
이번 토튜리얼에서는 'GameScene' 와'Textures' 클래스를 수정합니다.
몇명의 요정을 추가할것이므로, 또다른 객체를 필요로 합니다. 'Textures' 클래스 내에
'atlas.insert(bob = new Texture("bob.png"))' 를 추가합니다. 다음처름 보이겠죠
package com.rokonexamples.sprite;
import com.stickycoding.rokon.Texture;
import com.stickycoding.rokon.TextureAtlas;
public class Textures {
public static TextureAtlas atlas;
public static Texture background, bob;
public static void load() {
atlas = new TextureAtlas();
atlas.insert(background = new Texture("background.png"));
atlas.insert(bob = new Texture("bob.png"));
atlas.complete();
}
}
import com.stickycoding.rokon.Texture;
import com.stickycoding.rokon.TextureAtlas;
public class Textures {
public static TextureAtlas atlas;
public static Texture background, bob;
public static void load() {
atlas = new TextureAtlas();
atlas.insert(background = new Texture("background.png"));
atlas.insert(bob = new Texture("bob.png"));
atlas.complete();
}
}
그러면, 'GameScene' 클래스를, 다음처럼 변경합니다.
public GameScene() {
super(1, 3);
setBackground(background = new FixedBackground(Textures.background));
// Create the Bob sprites.
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
bob2.setTexture(Textures.bob);
bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
bob3.setTexture(Textures.bob);
// Add the Bob sprites to the first layer.
add(0, bob);
add(0, bob2);
add(0, bob3);
}
첫번째 라인을 'super()' 에서 'super(1,3)' 으로 바꾼것을 주목해야 합니다. 이것은 3개의 요정을 1 계층에
사용하는것을 의미 합니다.
한 장면에 3개의 요정을 추가하도록 합니다. (이름을 밥 이라고 하기로 했어요)
첫번째와 두번째 파라미터는 요정의 x,y 위치를, 3번째와 4번째는 크기를 나타냅니다.
그 크기에 맞게 나타나길 바라지 늘려지는것을 바라지 않습니다.
(하나 이상은 유사한 방식으로 사용할 수 있다는것을 알고 계세요)
그리고, 장면에 위의 것들을 추가합니다.
super(1, 3);
setBackground(background = new FixedBackground(Textures.background));
// Create the Bob sprites.
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
bob2.setTexture(Textures.bob);
bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
bob3.setTexture(Textures.bob);
// Add the Bob sprites to the first layer.
add(0, bob);
add(0, bob2);
add(0, bob3);
}
첫번째 라인을 'super()' 에서 'super(1,3)' 으로 바꾼것을 주목해야 합니다. 이것은 3개의 요정을 1 계층에
사용하는것을 의미 합니다.
한 장면에 3개의 요정을 추가하도록 합니다. (이름을 밥 이라고 하기로 했어요)
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
bob2.setTexture(Textures.bob);
bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
bob3.setTexture(Textures.bob);
bob.setTexture(Textures.bob);
bob2 = new Sprite(100, 180, Textures.bob.getWidth(), Textures.bob.getHeight());
bob2.setTexture(Textures.bob);
bob3 = new Sprite(100, 260, Textures.bob.getWidth(), Textures.bob.getHeight());
bob3.setTexture(Textures.bob);
첫번째와 두번째 파라미터는 요정의 x,y 위치를, 3번째와 4번째는 크기를 나타냅니다.
그 크기에 맞게 나타나길 바라지 늘려지는것을 바라지 않습니다.
(하나 이상은 유사한 방식으로 사용할 수 있다는것을 알고 계세요)
그리고, 장면에 위의 것들을 추가합니다.
add(0, bob);
add(0, bob2);
add(0, bob3);
add(0, bob2);
add(0, bob3);
0은 첫번째 레이어에 추가될 것을 의미합니다.(하나의 레이어만 있으므로 'add(bob)'를 사용할 수 잇습니다.)
여기서 실행하면 Hello World 토튜리얼에서 봤던 고정 이미지에 3개의 요정이 있는것을 볼 수 있습니다.
이제, 이것들을 움직이게 하기 위해서 'onGameLoop()' 함수를 사용 하겠습니다.
모든 프레임에서 한번 불려지며, 여기서 게임 로직을 업데이트 할 수 잇으며, 아래 로직을 'onGameLoop()' 함수에
추가합니다.
public void onReady() {
bob3.moveTo(450, 100, 5000);
}
bob3.moveTo(450, 100, 5000);
}
이게 뭐냐면, 요정들의 포인터를 직접적으로 이동시키는 대신에 시간동안 애니매이션을 보여줍니다.
(이 경우, x 450, y100 로 5000ms/5 초 동안 움직입니다.
네, 바로 이겁니다. 'assets/textures/'에 이미지를 추가하고 실행시킵니다!
만일 모든것들을 정확하게 따라했다면 아래처럼 보일겁니다.
(설정한 이미지에 따라 다르겠죠)
토튜리얼을 따라해 주셔서 감사합니다.
원문은 http://www.rokonandroid.com/tutorials/41-beginner/63-using-sprites 에 있습니다.
반응형
'Program > Android Java' 카테고리의 다른 글
안드로이드 게임 엔진 ROKON - Using Modifiers (0) | 2011.04.15 |
---|---|
안드로이드 게임 엔진 ROKON - Using Touch Input (0) | 2011.04.15 |
안드로이드 게임 엔진 ROKON - Hello World (0) | 2011.04.15 |
[Thread] - AsyncTask (0) | 2011.04.15 |
screenOrientation / Rotation (0) | 2011.04.15 |