Rokon tutorial 세번째 섹션에 오신것을 환영합니다.
이번 토튜리얼에서는 Rokon 프로젝트에서 터치 인풋을 사용하는 법을 배울것입니다.
자바 프로그래밍과 안드로이드 SDK 에 대해 경험이 있다고 가정합니다.
이클립스를 사용하여 진행하겠지만, 다른 툴을 쓴다고 해도 따라흐는것은 가능합니다.
이전 토튜리얼인 "Using Sprites"에 이어 진행하며, 그것을 이미 읽었으며, Rokon 프로젝트가 설정되어 있고,
모든 준비가 되었다고 가정합니다.
(마지막에는 토튜리얼의 소스를 다운받으실수 있습니다.)
이클립스를 시작해서 Rokon 프로젝트에 들어갑니다.
이번 토튜리얼에서는 'GameScene' 클래스를 수정합니다.
"Using Sprites" 토튜리얼에서 3명의 요정을 가지게 되엇습니다. 하지만 여기서는 하나만 필요 합니다.
2개를 지우고 계속합니다. 그래서 'GameScene' 생성자는 다음과 같습니다.
public GameScene() {
super(1, 1);
setBackground(background = new FixedBackground(Textures.background));
// Create the Bob sprite.
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
// Add the Bob sprite to the first layer.
add(0, bob);
}
super(1, 1);
setBackground(background = new FixedBackground(Textures.background));
// Create the Bob sprite.
bob = new Sprite(100, 220, Textures.bob.getWidth(), Textures.bob.getHeight());
bob.setTexture(Textures.bob);
// Add the Bob sprite to the first layer.
add(0, bob);
}
이제 3개의 새로운 함수를 추가합니다.
@Override
public void onTouchDown(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// This is called when you press down on the screen.
}
@Override
public void onTouchMove(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// This is called when you move your finger over the screen. (ie pretty much every frame if your holding your finger down)
// Here we'll just make Bob follow your finger.
bob.x = x - (Textures.bob.getWidth() / 2);
bob.y = y - (Textures.bob.getHeight() / 2);
}
@Override
public void onTouchUp(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// And this is called when you stop pressing.
}
public void onTouchDown(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// This is called when you press down on the screen.
}
@Override
public void onTouchMove(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// This is called when you move your finger over the screen. (ie pretty much every frame if your holding your finger down)
// Here we'll just make Bob follow your finger.
bob.x = x - (Textures.bob.getWidth() / 2);
bob.y = y - (Textures.bob.getHeight() / 2);
}
@Override
public void onTouchUp(float x, float y, MotionEvent event, int pointerCount, int pointerId) {
// And this is called when you stop pressing.
}
(여기서 하나의 함수만 사용합니다. 학습을 위해서 3개의 함수가 추가되었습니다.)
첫번째와 두번째 파라미터는 눌려진 x와 y의 위치를 나타내며, 세번째는 안드로이드에서 보내어진 이벤트가 정확히
그 이벤트인지 확인할수 있으며, 이때 마지막 두개는 안드로이드 2.1 이상에서 사용되어 집니다.
'pointerCount' 는 사용자가 일반적으로 누른 상태의 손가락의 측정값이며, 'pointerId'는 이런 이벤트의 일종입니다.
이때 'ontouchMove()'는 밥의 위치를 당신이 누른 위치로 설정하게 됩니다.
(width/2 와 height/2는 가운데를 만들기 위해서 저렇게 합니다.)
네, 바로 이렇습니다. 실행시켜서 손가락을 이리저리 움직여 보세요. 밥은 따라올것입니다.
모든것들을 정확하게 따라했다면, 아래처럼 보이게 될 것입니다.
(이미지에 따라 다르겠지만요)
세번째 토튜리얼을 읽어 주셔서 감사합니다.
원문 : http://www.rokonandroid.com/tutorials/41-beginner/65-using-touch-input
출처 : http://artbrain.co.kr/
반응형
'Program > Android Java' 카테고리의 다른 글
안드로이드 게임 만들기 (3) | 2011.04.15 |
---|---|
안드로이드 게임 엔진 ROKON - Using Modifiers (0) | 2011.04.15 |
안드로이드 게임 엔진 ROKON - Using Sprites (0) | 2011.04.15 |
안드로이드 게임 엔진 ROKON - Hello World (0) | 2011.04.15 |
[Thread] - AsyncTask (0) | 2011.04.15 |