2016-07-08 3 views
0

Scene2d를 기반으로 한 매우 작은 Libgdx 프로젝트를 시작했습니다. 나는 LGDX의 마지막 버전을 쓰러 뜨렸다. 나는 몇 가지 정보를 찾지 만 명확한 정보는 찾지 않으려 고 노력했다. 문제는 내가 죽음의 블랙 스크린을 얻는다는 것입니다. 아무 일도 일어나지 않습니다. 로그를 사용하여 코드를 따라했으며, 결과가없는 내 Actor의 Draw 메서드에 도착해야합니다.Libgdx Actor Scened2d Draw 메서드로 아무 것도 그리지 않습니다.

감사합니다. 화면에서 확장

public class ActorBall extends Actor implements Disposable { 
private Texture ballTexture; 
private TextureRegion ballTextureRegion; 

public ActorBall() { 
    bolaTexture = new Texture("redball.png"); 

    ballTextureRegion = new TextureRegion(ballTexture, 300,300); 
    setSize(300,300); 
} 

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


@Override 
public void draw(Batch batch, float parentAlpha) { 
    Color col = getColor(); 
    batch.setColor(col.r,col.g, col.b,col.a * parentAlpha); 
    Gdx.app.log("App","where are you"); 
    batch.draw(ballTextureRegion,getX(),getY(),getOriginX(), 
    getOriginY(),getWidth(), getHeight(), getScaleX(), getScaleY(),getRotation()); 
} 

@Override 
public void act(float delta) { 
    super.act(delta); 
} 
} 

내 화면 클래스 :

public class scene extends scenebase { 

private final OrthographicCamera camera; 
private MyGdxGame game ; 
private Stage stage; // los Stages son inputprocessors 
private ActorBall ball; 

public scene(MyGdxGame game) { 
    super(game); 
    this.game = game; 


    camera = new OrthographicCamera(); 
    camera.setToOrtho(false, 800, 480); 

    stage = new Stage(new ScreenViewport()); 
    ball = new ActorBall(); 
    ball.setPosition(0,0); 
    stage.addActor(ball); 
} 

@Override 
public void render(float delta) { 
    // super.render(delta); 
    Gdx.gl.glClearColor(0,0,0.0f,1); 
    Gdx.gl.glClear (GL20.GL_COLOR_BUFFER_BIT); 

    camera.update(); 
    // game.batch.setProjectionMatrix(camera.combined); 

    stage.draw(); 
    stage.act(); 
} 

@Override 
public void resize(int width, int height) { 
    stage.getViewport().update (width,height); 

} 
} 

그리고 내 주요 게임 마지막이 먼저 모든 렌더링 후 화면을 취소한다 무엇

public class MyGdxGame extends Game { 


private AssetManager manager; 
private scene screenscene; 

@Override 
public void create() { 
    manager = new AssetManager(); 
    manager.load("redball.png", Texture.class); 
    manager.finishLoading(); 


    // Enter the loading screen to load the assets. 
    screenscene = new scene(this); 
    setScreen(screenscene); 
} 

@Override 
public void render() { 
    super.render(); // This is very important!!!!!!!! 
    Gdx.gl.glClearColor(0, 0, 0.1f, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

} 


public AssetManager getManager() { 
    return this.manager; 
} 
} 

답변

3
@Override 
public void render() { 
    super.render(); // This is very important!!!!!!!! 
    Gdx.gl.glClearColor(0, 0, 0.1f, 1); 
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 
} 

. 먼저 지우고 렌더링해야합니다.

+0

내게 수치 스럽네, 네 말이 맞아, 고마워! – daniel

관련 문제