Libgdx এ টেক্সচার পুনরাবৃত্তি করুন


12

পুনরাবৃত্তি জমিন দিয়ে অঞ্চল কীভাবে পূরণ করবেন? এখন আমি পরবর্তী পদ্ধতি ব্যবহার করছি:

spriteBatch.begin();

final int tWidth = texture.getWidth();
final int tHeight = texture.getHeight();

for (int i = 0; i < regionWidth / tWidth; i++) {
    for (int k = 0; k < regionHeight / tHeight; k++) {
        spriteBatch.draw(texture, i*tWidth, k);
    }
}

spriteBatch.end();

এটা খুব সুস্পষ্ট। সম্ভবত পদ্ধতিতে কোন বিল্ট আছে?

উত্তর:



3

আপনি আপনার টেক্সচারে "সেটট্র্যাপ" ব্যবহার করতে পারেন এবং সেই টেক্সচারের উপর ভিত্তি করে টেক্সচারআজিগশন তৈরি করতে পারেন। একটি 3x3 মিররযুক্ত চিত্র (বা axb আকার) তৈরি করতে

Texture imgTexture = new Texture(Gdx.files.internal("badlogic.jpg"));
imgTexture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
TextureRegion imgTextureRegion = new TextureRegion(imgTexture);
imgTextureRegion.setRegion(0,0,imgTexture.getWidth()*3,imgTexture.getHeight()*3);

গুরুত্বপূর্ণ: এটি বের করতে আমার কিছুটা সময় লেগেছে, তবে মিরর করাতে আপনার টেক্সচারটি অবশ্যই দুটি আকারের শক্তি হতে হবে। এটি iOS এ নয় অ্যান্ড্রয়েডে কাজ করছে এবং আপনি কোনও বার্তা পান না - এটি কালো হিসাবে দেখানো হয়েছিল। সুতরাং এটি অবশ্যই 4x4 বা 8x8, 16x16 .. 256x256 বা 512x512 হতে হবে ..

আপনাকে এটি দেবে: এখানে চিত্র বর্ণনা লিখুন

নীচে আপনি একটি স্টেজ এবং চিত্র অভিনেতা (দৃশ্য 2 ডি) ব্যবহার করে সেই চিত্রটি তৈরি করেছে এমন নমুনা কোডটি দেখতে পাবেন

public class GameScreen implements Screen {

    MyGdxGame game;
    private Stage stage;

    public GameScreen(MyGdxGame aGame){
        stage = new Stage(new ScreenViewport());
        game = aGame;
        Texture imgTexture = new Texture(Gdx.files.internal("badlogic.jpg"));
        imgTexture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
        TextureRegion imgTextureRegion = new TextureRegion(imgTexture);
        imgTextureRegion.setRegion(0,0,imgTexture.getWidth()*3,imgTexture.getHeight()*3);

        TextureRegionDrawable imgTextureRegionDrawable = new TextureRegionDrawable(imgTextureRegion);
        Image img = new Image();
        img.setDrawable(imgTextureRegionDrawable);
        img.setSize(imgTexture.getWidth()*3,imgTexture.getHeight()*3);
        stage.addActor(img);
    }

    @Override
    public void show() {

    }

    @Override
    public void render(float delta) {
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        stage.act(delta);
        stage.draw();
    }

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

    @Override
    public void pause() {

    }

    @Override
    public void resume() {

    }

    @Override
    public void hide() {

    }

    @Override
    public void dispose() {
        stage.dispose();
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.