2

左から右にスクロールしている雲があります。OrthographicCameraを使用しています。雲を左から右ではなく画面に向かって移動させるために、これらの雲をどのように調整すればよいのでしょうか。それでも正投影カメラを使用してそうすることはできますか?どうすればいいですか?

私のコードは次のとおりです。

public void create() {  

        sky = new SkyFlux();

        //getting the height and width for setup purposes
        float w = Gdx.graphics.getWidth();
        float h = Gdx.graphics.getHeight();

        //setting up camera and batch
        camera = new OrthographicCamera(1, h/w);

        //setting up sky
        for(Texture texture:sky.getTexture())
            textures.add(texture);

        //Adding the sky related sprites
        for(Sprite sprite:sky.getSprite())
            skySprites.add(sprite);
}



public void render() {

        //clearing everything out
        Gdx.gl.glClearColor(1, 1, 1, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
        time += Gdx.graphics.getDeltaTime();
        if(time > 1.0f)
            time = 0.0f;

        float speed = 1.0f;

        //Adjusting the speed of the sprites except the first sprite which is the base image.
        for(int i=1;i<skySprites.size();i++) {
            skySprites.get(i).setV(time+speed);
            skySprites.get(i).setV2(time);
            speed = speed+1.0f;
        }

        //setting up
        batch.setProjectionMatrix(camera.combined);

        //begging draw
        batch.begin();

        //items to be drawn
        //TODO: add other items to be drawn here
        for(Sprite sprite:skySprites)
            sprite.draw(batch);


        //ending draw 
        batch.end();
}
4

1 に答える 1

2

正投影は、定義上、深度情報を保存しません。画面に向かってくる雲のように見せることができる唯一の方法は、スプライトのサイズを大きくすることですが、それはお勧めしません。

非正投影を使用し、z軸のみを使用する必要があります。

于 2012-06-17T03:54:21.053 に答える