2017-10-02 3 views
0

내 Android 응용 프로그램에서 libgdx 게임으로 '로그인'/ '로그인'한 후 일부 자격증 명 데이터를 전달하고 싶습니다.어떻게하면 게임에서 libgdx 게임을 제대로 시작하고 데이터를 전달할 수 있습니까?

전나무 당신에게 묻고 싶습니다. 의도를 사용하여 게임을 시작하는 것이 좋은 습관입니까?

나는 (예를 들어) .LoginActivity로 manifest.xml 파일에 내 시작 활동을 선언 한 다음 사용자 후 어떤 행동을 한

- 안드로이드면 다음 코드를 사용하여 게임을 시작 :

private void initializeListeners(){ 

     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(getBaseContext(), AndroidLauncher.class); 
       startActivity(intent); 
      } 
     }); 
    } 

이 거기를 몇 가지 모범 사례 어떻게 내 게임을 활동에서 시작합니까?

또 다른 질문은 - 안드로이드의 능동성을 libgdx 게임에 어떻게 전달합니까?

이 링크에서 몇 가지 제안 사항을 보았습니다 : https://github.com/libgdx/libgdx/wiki/Interfacing-with-platform-specific-code.

나는 Swarm 프레임 워크를 아직 사용하지 않고 있으며 (아마도) 나 자신의 인터페이스를 사용하여 데이터를 게임에 전달하려고합니다.

나는 다음 인터페이스 선언 :

public interface DataPasser { 
    void passData(String userName); 
} 

를 그리고 게임의 핵심 부품 내부의 화면 구현 내부를 구현, 다음과 같이 매끄러운 :

@Override 
    public void passData(String userName) { 
     font.draw(batch, userName, 0, 450); 
    } 

난 그냥 전달되는 데이터의 문자열을 그립니다.

주요 문제는 - 내 안드로이드 부품 내부에서이 메소드를 호출해야 할 때입니까?

나는 Intent를 부르며 의도가있는 데이터가 전달되지 않고 게임이 시작됩니다. 그래서 내가 묻는 이유입니다. 게임을 시작하는 가장 좋은 방법은 무엇입니까?

데이터를 전달하고 게임을 시작하려면 어떻게해야합니까? 제안하십시오.

답변

1

코드가 많지 않으므로 일반적인 팁이 많이 있습니다.

핵심 모듈에서 생성자를 원하는 인수 (LibGDX 게임 자체, 프로젝트 생성기를 사용한다고 가정)와 함께 추가합니다.

두 개의 문자열 (사용자 이름과 암호)을 가져 오는 생성자를 추가합니다.

의도를 사용하여 한 활동의 ​​데이터를 게임 활동으로 전달하고 게임 활동이 문자열을 게임 생성자에게 보냅니다.

+0

기본적으로 ST 링을 게임 자체 (아마도 코어 모듈에 있음)로 전달할 수 있습니다. 인터페이스 나 클래스를 사용할 필요가 없습니다. 데이터를 직접 보내고 관련없는 ov를 그릴 수 있습니다. – Zoe

+0

제안에 감사드립니다. 나는 첫번째 것을 tryed했고 그것은 나를 도왔다.그러나 생성자 또는 일부 set 메서드를 사용하여 대상 클래스 (사용자 이름을 그리는 화면 구현)로 데이터를 모두 전달해야하기 때문에 여전히보기에는 약간 못 생겼습니다. 그러나 나는 libgdx에서 새로운 기능을하고 있습니다. 아마도 부모 클래스의 StpriteBatch 객체를 사용하여 하위 클래스에서 무언가를 그릴 때가 잘못되었습니다. – Andrew

+0

IMO는 인터페이스와 클래스를 다루는 것보다 클래스에 직접 데이터를 전달하는 것이 더 쉬워 보입니다. 여전히 생성자, 코어 모듈에서 생성자라고 부르는 모든 프로젝트를 사용할 수 있습니다. – Zoe

0

여기서 안드로이드 활동을 작성하고 생성자에 userName을 전달하십시오.

class AndroidLauncher : AndroidApplication() { 

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState); 
AndroidApplicationConfiguration config = AndroidApplicationConfiguration() 
    //pass your name here 
    mainClass = ApplicationCore("username"); 
    initialize(mainClass, config); 
} 

/* 
* all stuff code 
*/ 
} 

이것은 핵심 메인 클래스입니다.

public class ApplicationCore extends ApplicationAdapter { 
public String userName; 

public ApplicationCore(String userName) { 
    this.userName=userName; 
// use this username whenever you want. 
} 

@Override 
public void create() { 
    initGame(); 
} 

private void initGame() { 
    //write code for initialize 
} 

@Override 
public void render() { 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
    //render functionalities 
} 

@Override 
public void dispose() { 
    batch.dispose(); 
} 

@Override 
public void resume() { 
    super.resume(); 

} 

@Override 
public void pause() { 
    super.pause(); 
} 
}