2012-02-21 7 views
6

Tôi mới và tôi mới bắt đầu hành trình với libgdx. Tôi muốn biết làm thế nào tôi có thể làm image.png ở độ phân giải 960x640 làm nền trong trò chơi của mình? Điều này là khả thi? Thx cho lời khuyên và Nhẫn. Có lẽ bạn hava một hướng dẫn đơn giản? Đây là lớp kết xuất của tôi:libgdx và ứng dụng android. Hình ảnh làm nền

public void render() { 

    texture = new Texture(Gdx.files.internal("E:/background.png")); 

    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT); 
    batch.begin(); 
    batch.draw(texture, 0, 0); 
    batch.end(); 
} 

Câu hỏi thứ hai. Tôi cần phải chèn hai hình ảnh hoạt động, phương tiện hoạt động khi tôi nhấp vào hình ảnh đó, hình ảnh tiếp theo hiển thị cho tôi trên màn hình. Tôi muốn thực hiện hành động khi tôi nhấp vào hình ảnh đó.

Trả lời

7

Trong phương thức create() của bạn, tạo một Texture mới tham chiếu image.png của bạn, và sau đó sử dụng SpriteBatch hiện tại của bạn để render nó trong vòng render(). Ngay sau khi bạn gọi GL.clear(), hãy truy cập batch.draw (backgroundTexture, 0. 0) và đảm bảo rằng bạn đang ở chế độ OrthographicProjection cho máy ảnh của mình.

+0

tôi nhận được lỗi: chiều rộng và chiều cao Texture phải quyền hạn của hai: 960x640 – edi233

+15

Bạn có thể khắc phục điều này bằng cách ghi đè sức mạnh của 2 kiểm tra trong lớp Texture. Ở đầu phương thức create() chính của bạn, hãy thêm vào đây: 'Texture.setEnforcePotImages (false);' – Shinzul

+2

^Hiệu ứng đó có hiệu quả hay khả năng tương thích không? –

0

đầu tiên bạn phải thiết lập cổng xem làm điều này trong tạo phương pháp của bạn

'phao scrw = 960; float scrh = 640;

camera = new OrthographicCamera(); 
    camera.viewportHeight = scrh; 
    camera.viewportWidth = scrw; 

    camera.position.set(camera.viewportWidth * .5f, 
      camera.viewportHeight * .5f, 0f); 
    camera.update();` 

tạo ra một kết cấu

texture = new Texture("data/background.png");

đặt kết cấu này trong sprite như thế này

sprite=new sprite(texture);

và sau đó thiết lập kích thước như thế này

sprite.setsize(960,640);

và vẽ nó trong các phương pháp làm cho bạn giữa batch.begin và batch.end

sprite.draw(batch);