libGDX의 기본 7 이벤트
입력 이벤트는
터치, 클릭, 키보드 등의 입력에 따라 호출되는 구조다.이렇게 쓰는 것은 어려울 것 같지만 구조는 매우 간단하다.
Scene 2D에서 다양한 액터에서 이벤트 청취자를 설정할 수 있습니다.마침 겹치는 부분도 우선도가 높아서 액터는 그 활동을 받아들인다.
이벤트 등록에 사용되는 방법은 단 하나
이벤트를 등록하는 방법은 Actor#addListener()
뿐입니다.
이미 몇 개의 이벤트 청중을 준비했지만, 여기서 가장 간단한 클릭 이벤트를 실시해 보자.
출처
package test.libgdx;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
public class MainListener7 implements ApplicationListener{
TextureAtlas atlas;
Stage stage;
@Override
public void create() {
FileHandle fh = Gdx.files.internal("atlas/data.txt");
atlas = new TextureAtlas(fh);
stage = new Stage();
Gdx.input.setInputProcessor(stage);//ここがポイント1
{
TextureAtlas.AtlasRegion region = atlas.findRegion("001");
Image image = new Image(region);
image.setPosition(0, 0);
ClickListener listener = new ClickListener(){//ここがポイント2
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("001がクリックされた!");
}
};
image.addListener(listener);//ここがポイント3
stage.addActor(image);
}
{
TextureAtlas.AtlasRegion region = atlas.findRegion("002");
Image image = new Image(region);
image.setPosition(50, 50);
ClickListener listener = new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("002がクリックされた!");
}
};
image.addListener(listener);
stage.addActor(image);
}
}
@Override
public void resize(int w, int h) {
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0, 0, 0, 1);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
//起動部分
public static void main(String[] args) {
new LwjglApplication(new MainListener7());
}
}
간단하게 설명하자면, 리뷰의'Point 1'부분 선언은 각종 입력 이벤트를 Scene 2D로 처리한다.이곳이 없었다면 행사가 벌어져도 행사 청취자들에게 제대로 날아갈 수 없었을 것이다.
'포인트 2'로 청중을 만든다.이러한 내부 클래스는 GUI 클래스에서 자주 사용됩니다.
시 3에 Actor에 청취자를 등록합니다.이번에는 Image이지만, Image 이외의 액터도 가능합니다.
실행!
클릭하거나 만질 때 겹치는 부분은 위의 그림을 우선선택합니다(002).
공백이 어디로 갔는지 미묘하게 알기 어려웠기 때문이다.활동 범위가 어디까지인지 알 수 없는 Actor 크기입니다.
클릭 판단 간단
따라서 각 Image 인스턴스의 초기화에 다음 행을 추가합니다.포지션 설정 뒤에 놓으세요.
image.setDebug(true);
또한 이 기능을 사용하려면 버전이 비교적 새것이어야 하기 때문에 구버전을 사용하는 사람은 버전을 높여 주십시오.
Gradle을 사용할 때 버전을 1.4.1로 설정하지 않으면 다음과 같은 측면에서 얻을 수 있습니다.바꿔.
http://libgdx.badlogicgames.com/releases/
실행 후 아래와 같다.
이러면 판정 좋은데.겹치는 부분은 윗사람이 먼저 클릭하도록 한다.
여기에 회전과 확대, 축소를 더하다
회전하고 확대해서 축소하면 어떻게 되나요?다음 코드만 002 이미지에 추가한 다음 실행합니다.
image.setRotation(-45);
image.setScale(0.75f);
분계선을 중점적으로 클릭하세요.잘 회전하면 확대, 축소된 사이즈로 계산된다는 것을 알 수 있다.
키보드를 사용하려면 InputListener를 Stage로 설정하고 키업과 키다운을 이용한 활동이 좋다.
이전 글에서 그림을 그리고 터치하는 이벤트를 실행합니다.모험과 RPG는 이미 할 수 있어.
Reference
이 문제에 관하여(libGDX의 기본 7 이벤트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinsan68k/items/ef8aeec2a1f7724ec429
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이벤트를 등록하는 방법은
Actor#addListener()
뿐입니다.이미 몇 개의 이벤트 청중을 준비했지만, 여기서 가장 간단한 클릭 이벤트를 실시해 보자.
출처
package test.libgdx;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
public class MainListener7 implements ApplicationListener{
TextureAtlas atlas;
Stage stage;
@Override
public void create() {
FileHandle fh = Gdx.files.internal("atlas/data.txt");
atlas = new TextureAtlas(fh);
stage = new Stage();
Gdx.input.setInputProcessor(stage);//ここがポイント1
{
TextureAtlas.AtlasRegion region = atlas.findRegion("001");
Image image = new Image(region);
image.setPosition(0, 0);
ClickListener listener = new ClickListener(){//ここがポイント2
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("001がクリックされた!");
}
};
image.addListener(listener);//ここがポイント3
stage.addActor(image);
}
{
TextureAtlas.AtlasRegion region = atlas.findRegion("002");
Image image = new Image(region);
image.setPosition(50, 50);
ClickListener listener = new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("002がクリックされた!");
}
};
image.addListener(listener);
stage.addActor(image);
}
}
@Override
public void resize(int w, int h) {
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0, 0, 0, 1);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
//起動部分
public static void main(String[] args) {
new LwjglApplication(new MainListener7());
}
}
간단하게 설명하자면, 리뷰의'Point 1'부분 선언은 각종 입력 이벤트를 Scene 2D로 처리한다.이곳이 없었다면 행사가 벌어져도 행사 청취자들에게 제대로 날아갈 수 없었을 것이다.
'포인트 2'로 청중을 만든다.이러한 내부 클래스는 GUI 클래스에서 자주 사용됩니다.
시 3에 Actor에 청취자를 등록합니다.이번에는 Image이지만, Image 이외의 액터도 가능합니다.
실행!
클릭하거나 만질 때 겹치는 부분은 위의 그림을 우선선택합니다(002).
공백이 어디로 갔는지 미묘하게 알기 어려웠기 때문이다.활동 범위가 어디까지인지 알 수 없는 Actor 크기입니다.
클릭 판단 간단
따라서 각 Image 인스턴스의 초기화에 다음 행을 추가합니다.포지션 설정 뒤에 놓으세요.
image.setDebug(true);
또한 이 기능을 사용하려면 버전이 비교적 새것이어야 하기 때문에 구버전을 사용하는 사람은 버전을 높여 주십시오.
Gradle을 사용할 때 버전을 1.4.1로 설정하지 않으면 다음과 같은 측면에서 얻을 수 있습니다.바꿔.
http://libgdx.badlogicgames.com/releases/
실행 후 아래와 같다.
이러면 판정 좋은데.겹치는 부분은 윗사람이 먼저 클릭하도록 한다.
여기에 회전과 확대, 축소를 더하다
회전하고 확대해서 축소하면 어떻게 되나요?다음 코드만 002 이미지에 추가한 다음 실행합니다.
image.setRotation(-45);
image.setScale(0.75f);
분계선을 중점적으로 클릭하세요.잘 회전하면 확대, 축소된 사이즈로 계산된다는 것을 알 수 있다.
키보드를 사용하려면 InputListener를 Stage로 설정하고 키업과 키다운을 이용한 활동이 좋다.
이전 글에서 그림을 그리고 터치하는 이벤트를 실행합니다.모험과 RPG는 이미 할 수 있어.
Reference
이 문제에 관하여(libGDX의 기본 7 이벤트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinsan68k/items/ef8aeec2a1f7724ec429
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
package test.libgdx;
import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.lwjgl.LwjglApplication;
import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
public class MainListener7 implements ApplicationListener{
TextureAtlas atlas;
Stage stage;
@Override
public void create() {
FileHandle fh = Gdx.files.internal("atlas/data.txt");
atlas = new TextureAtlas(fh);
stage = new Stage();
Gdx.input.setInputProcessor(stage);//ここがポイント1
{
TextureAtlas.AtlasRegion region = atlas.findRegion("001");
Image image = new Image(region);
image.setPosition(0, 0);
ClickListener listener = new ClickListener(){//ここがポイント2
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("001がクリックされた!");
}
};
image.addListener(listener);//ここがポイント3
stage.addActor(image);
}
{
TextureAtlas.AtlasRegion region = atlas.findRegion("002");
Image image = new Image(region);
image.setPosition(50, 50);
ClickListener listener = new ClickListener(){
@Override
public void clicked(InputEvent event, float x, float y) {
System.out.println("002がクリックされた!");
}
};
image.addListener(listener);
stage.addActor(image);
}
}
@Override
public void resize(int w, int h) {
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
Gdx.gl.glClearColor(0, 0, 0, 1);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
@Override
public void pause() {
}
@Override
public void resume() {
}
@Override
public void dispose() {
}
//起動部分
public static void main(String[] args) {
new LwjglApplication(new MainListener7());
}
}
클릭하거나 만질 때 겹치는 부분은 위의 그림을 우선선택합니다(002).
공백이 어디로 갔는지 미묘하게 알기 어려웠기 때문이다.활동 범위가 어디까지인지 알 수 없는 Actor 크기입니다.
클릭 판단 간단
따라서 각 Image 인스턴스의 초기화에 다음 행을 추가합니다.포지션 설정 뒤에 놓으세요.
image.setDebug(true);
또한 이 기능을 사용하려면 버전이 비교적 새것이어야 하기 때문에 구버전을 사용하는 사람은 버전을 높여 주십시오.
Gradle을 사용할 때 버전을 1.4.1로 설정하지 않으면 다음과 같은 측면에서 얻을 수 있습니다.바꿔.
http://libgdx.badlogicgames.com/releases/
실행 후 아래와 같다.
이러면 판정 좋은데.겹치는 부분은 윗사람이 먼저 클릭하도록 한다.
여기에 회전과 확대, 축소를 더하다
회전하고 확대해서 축소하면 어떻게 되나요?다음 코드만 002 이미지에 추가한 다음 실행합니다.
image.setRotation(-45);
image.setScale(0.75f);
분계선을 중점적으로 클릭하세요.잘 회전하면 확대, 축소된 사이즈로 계산된다는 것을 알 수 있다.
키보드를 사용하려면 InputListener를 Stage로 설정하고 키업과 키다운을 이용한 활동이 좋다.
이전 글에서 그림을 그리고 터치하는 이벤트를 실행합니다.모험과 RPG는 이미 할 수 있어.
Reference
이 문제에 관하여(libGDX의 기본 7 이벤트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/shinsan68k/items/ef8aeec2a1f7724ec429
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
image.setDebug(true);
회전하고 확대해서 축소하면 어떻게 되나요?다음 코드만 002 이미지에 추가한 다음 실행합니다.
image.setRotation(-45);
image.setScale(0.75f);
분계선을 중점적으로 클릭하세요.잘 회전하면 확대, 축소된 사이즈로 계산된다는 것을 알 수 있다.
키보드를 사용하려면 InputListener를 Stage로 설정하고 키업과 키다운을 이용한 활동이 좋다.
이전 글에서 그림을 그리고 터치하는 이벤트를 실행합니다.모험과 RPG는 이미 할 수 있어.
Reference
이 문제에 관하여(libGDX의 기본 7 이벤트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shinsan68k/items/ef8aeec2a1f7724ec429텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)