2017-09-22 14 views
1

私は現在、ボタンを押すことでメインゲームに切り替えることのできるシンプルなメニューを練習し、コーディングしています。メニューから3D FPS設定に切り替えるにはどうすればよいですか? (libGDX)

メインゲームは、libGDXが3D環境を作成するために使用するすべての機能を使用して3Dで行われます。メニューはステージを使用して作成されます。私はMenuとRender/FirstPersonのクラスを別々に作成して、彼ら自身で作業していることを確認しました。

package com.mygdx.game; 

import com.badlogic.gdx.ApplicationAdapter; 
import com.badlogic.gdx.Gdx; 
import com.badlogic.gdx.graphics.GL20; 
import com.mygdx.game.FPSSystem; 
import com.mygdx.game.RenderingSystem; 

public class MainCoreLoop extends ApplicationAdapter { 

    public MenuSystem menuSystem; 
    public RenderingSystem renderingSystem; 
    public FPSSystem fpsSystem; 

    public boolean isGameOn; 

    @Override 
    public void create() { 
     renderingSystem = new RenderingSystem(); 
     fpsSystem = new FPSSystem(); 
     menuSystem = new MenuSystem(); 

     renderingSystem.create(); 
     fpsSystem.create(); 
     menuSystem.create(); 
    } 


    @Override 
    public void render() { 
     isGameOn = true; 

     if (MenuSystem.isMenuClosed == true) { 
      isGameOn = true; 
     } 

     else if(isGameOn == false) { 
      Gdx.gl.glClearColor(0, 255, 0, 0); 
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 


      menuSystem.render(); 
     } 

     if(isGameOn == true) { 
      Gdx.gl.glClearColor(255, 0, 0, 0); 
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT|GL20.GL_DEPTH_BUFFER_BIT); 

      fpsSystem.render(); 
      renderingSystem.render(); 


      } 

    } 

    @Override 
    public void dispose() { 
     menuSystem.dispose(); 
     fpsSystem.dispose(); 
     renderingSystem.dispose(); 

    } 

} 

私はロジックとコードがlibGDXが付属していますFirstPersonCameraControllerクラスから借用した入力を、コントロールのレンダリングを処理RenderingSystemクラス、別のクラスを初期化しFirstPersonSystemクラス、FPSCameraControllerクラスを、持っています。

私はこれらのクラスを一緒にテストすることができました。十分に機能するisGameOnというブール値を使用しました。テストとリファクタリングをしばらくしてから、入力を除いてすべてを動作させることができました。 「新しいゲーム」を押しても3Dボックスが完全にレンダリングされますが、入力が機能しません。ブール値をtrueに変更すると、ボックスはレンダリングされますが、まだ入力はありません。

コードは独立しているようですが、それらをまとめようとすると少し厄介です。

これはコードオーダーの問題かもしれないと思っていますが、私はかなり困惑しています。私はlibGDXを初めて使っています。私は本当にJavaで真剣に少しでも真剣に取り組んできました。コードの私の基本は、私がこれを理解するのを止めているかもしれません。

コードの残りの部分はgithubのHere

上で侮辱\任意のヘルプ\洞察力をいただければ幸いです。ありがとう!

答えて

0

I answered one problemGameScreen LibGdxのクラスを使用して、より良い切り替えを行い、状況に役立つ可能性があります。

スニペットが来るGame/Screen tutorialは、マウス、キーボード、およびタッチイベントのためにGdx.input.メソッドを使用します。

残りは、そこからかなり簡単です。

+1

それは働いた。どうもありがとう!私の友人はとても感謝しています。これは私が中止したところです。 https://github.com/winnieTheWind/Simple3DGameTestAndMenu – winnieTheWind

関連する問題