TUT 02: Tạo Image và các chức năng cơ bản

 

Mục tiêu:

Tạo 4 Image(hình ảnh):


  1. Hình ảnh gốc.
  2. Hình ảnh được xoay
  3. Hình ảnh bị giảm kích thước
  4. Hình ảnh sử dụng kết cấu lặp lại (phản chiếu trên các cạnh).
  5. Chi tiết

    • Tạo một sân khấu. Khởi tạo nó trong phương thức Tạo của bạn để đặt nó thành toàn màn hình
    1
    2
    3
    4
    5
    private Stage stage;
    @Override
    public void create () {
      stage = new Stage(new ScreenViewport());
    }
    • Thay đổi Phương thức kết xuất của bạn để thêm vùng hiển thị
    1
    2
    3
    4
    5
    6
    7
    @Override
    public void render () {
      Gdx.gl.glClearColor(1, 1, 1, 1);
      Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
      stage.act();
      stage.draw();
    }
    • Sao chép hình ảnh vào thư mục nội dung trong dự án Android của bạn. Trong bạn Create method load Texture
    1
    Texture texture = new Texture(Gdx.files.internal("image.jpg"));
    • Tạo hình ảnh

    1
    2
    3
    Image image1 = new Image(texture);
    image1.setPosition(Gdx.graphics.getWidth()/3-image1.getWidth()/2,Gdx.graphics.getHeight()*2/3-image1.getHeight()/2);
    stage.addActor(image1);
    • Xoay hình ảnh

    1
    2
    3
    4
    5
    Image image2 = new Image(texture);
    image2.setPosition(Gdx.graphics.getWidth()*2/3-image2.getWidth()/2,Gdx.graphics.getHeight()*2/3-image2.getHeight()/2);
    image2.setOrigin(image2.getWidth()/2,image2.getHeight()/2);
    image2.rotateBy(45);
    stage.addActor(image2);
    • Thay đổi kích thước hình ảnh

    1
    2
    3
    4
    Image image3 = new Image(texture);
    image3.setSize(texture.getWidth()/2,texture.getHeight()/2);
    image3.setPosition(Gdx.graphics.getWidth()/3-image3.getWidth()/2,Gdx.graphics.getHeight()/3-image3.getHeight());
    stage.addActor(image3);
    • Tạo hình ảnh với kết cấu lặp lại

    Quan trọng : nếu bạn định chạy mã của mình trên iOS, hãy đảm bảo rằng bạn sử dụng kết cấu có kích thước là bội số của 64. Trên iOS, nó sẽ không hoạt động nếu không.

    • Thêm “setWrap” vào texture và yêu cầu nó “phản chiếu” các cạnh bằng cách sử dụng “setWrap (Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);”
    • Tạo một TextureRegion với kích thước tương đương với 8 x 4 của kết cấu giả này.
    • Tạo hình ảnh 4 bằng cách sử dụng vùng kết cấu đó
    • Đặt kích thước và vị trí của Image4.
    • Thêm nó vào sân khấu.
    1
    2
    3
    4
    5
    6
    7
    texture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
    TextureRegion textureRegion = new TextureRegion(texture);
    textureRegion.setRegion(0,0,texture.getWidth()*8,texture.getHeight()*4);
    Image image4 = new Image(textureRegion);
    image4.setSize(200,100);
    image4.setPosition(Gdx.graphics.getWidth()*2/3-image4.getWidth()/2,Gdx.graphics.getHeight()/3-image4.getHeight());
    stage.addActor(image4);

    Mã:

    Tải xuống hướng dẫn  và xem mã hỗ trợ bên dưới

    1
    2
    3
    4
    5
    6
    7
    số 8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    public class MyGdxGame extends ApplicationAdapter {
        private Stage stage;
     
        @Override
        public void create () {
            stage = new Stage(new ScreenViewport());
     
            Texture texture = new Texture(Gdx.files.internal("image.jpg"));
     
            Image image1 = new Image(texture);
            image1.setPosition(Gdx.graphics.getWidth()/3-image1.getWidth()/2,Gdx.graphics.getHeight()*2/3-image1.getHeight()/2);
            stage.addActor(image1);
     
            Image image2 = new Image(texture);
            image2.setPosition(Gdx.graphics.getWidth()*2/3-image2.getWidth()/2,Gdx.graphics.getHeight()*2/3-image2.getHeight()/2);
            image2.setOrigin(image2.getWidth()/2,image2.getHeight()/2);
            image2.rotateBy(45);
            stage.addActor(image2);
     
            Image image3 = new Image(texture);
            image3.setSize(texture.getWidth()/2,texture.getHeight()/2);
            image3.setPosition(Gdx.graphics.getWidth()/3-image3.getWidth()/2,Gdx.graphics.getHeight()/3-image3.getHeight());
            stage.addActor(image3);
     
            texture.setWrap(Texture.TextureWrap.MirroredRepeat, Texture.TextureWrap.MirroredRepeat);
            TextureRegion textureRegion = new TextureRegion(texture);
            textureRegion.setRegion(0,0,texture.getWidth()*8,texture.getHeight()*4);
            Image image4 = new Image(textureRegion);
            image4.setSize(200,100);
            image4.setPosition(Gdx.graphics.getWidth()*2/3-image4.getWidth()/2,Gdx.graphics.getHeight()/3-image4.getHeight());
            stage.addActor(image4);
     
        }
     
        @Override
        public void render () {
            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
            stage.act();
            stage.draw();
     
        }
    }

Đăng nhận xét

Mới hơn Cũ hơn