2012-04-09 21 views
6

công cụ trò chơi cũ chỉ định màu đầu tiên của bảng màu của hình ảnh dưới dạng màu trong suốt. có cách nào để thực hiện tương tự với libGDX không?libGDX: xử lý màu đầu tiên trong bảng màu như màu trong suốt

tôi đã cố gắng tải hình ảnh và thay thế màu đầu tiên của palete bằng 0x00000000. tuy nhiên vì các điểm ảnh mờ hoặc trong suốt, tôi không cần các giá trị alpha nên tôi có thể tiết kiệm rất nhiều bộ nhớ bằng cách sử dụng RGB888 thay vì RGBA8888. tôi xem qua tài liệu gdx và opengl cho các tùy chọn trộn khác và tìm thấy Gdx.gl20.glBlendColor và hàm setBlendFunction của SpriteBatch. nhưng chúng chỉ thay đổi các giá trị được sử dụng trong các phương trình hoà trộn.

cảm ơn trước :)

+0

Tôi không biết một cách để làm điều đó, và tôi không thực sự chắc chắn lý do tại sao bạn cần phải. Tôi nghĩ rằng hầu hết các bề mặt đồ họa là 32-bit, vì vậy ngay cả khi bạn tải hình ảnh 24-bit, nó sẽ chỉ được chuyển đổi. Nó có lẽ là tốt nhất để chỉ sử dụng RGBA8888 trừ khi bạn đang _actually_ hết bộ nhớ. –

Trả lời

3

để vẽ một textureRegion minh bạch sử dụng thường xuyên như thế này:

Color c = batch.getColor(); 
    batch.setColor(1, 1, 1, alpha); 
    batch.draw(....); 
    batch.setColor(c);