2012-07-09 48 views
11

`Tôi đang phát triển trò chơi đầu tiên của mình trong Android Adnengine. Đó là trò chơi đua xe từ chế độ xem hàng đầu. Tôi đã sử dụng nền sai và một số xe hơi. Tôi đã thử nghiệm nó trên thiết bị của tôi có chiều rộng và chiều cao nhỏ hơn.Kích thước Sprite trên kích thước màn hình khác Andengine Android

Tôi đặt những chiếc xe với 32 và chiều cao 64 theo chiều rộng, chiều cao của máy ảnh. Nó hoạt động tốt với kích thước màn hình của tôi nhưng kích thước màn hình lớn hơn, giống như Galaxy Tab, có một khoảng trống lớn bị bỏ lại trong game, bởi vì kích cỡ ô tô vẫn giống như tôi phải sử dụng chúng với sức mạnh của hai.

Tôi làm cách nào để sử dụng hình ảnh phù hợp với tất cả kích thước màn hình? Tôi có phải sử dụng các hình ảnh khác nhau theo kích thước hình ảnh với chiều rộng và chiều cao của máy ảnh khác nhau không? Tôi chắc chắn có một giải pháp cho việc này.

Tôi đã sửa đổi tệp kê khai của mình để hỗ trợ kích thước nhỏ, lớn và xlarge.

public Engine onLoadEngine() { 

    final Display display = getWindowManager().getDefaultDisplay(); 
    CAMERA_WIDTH = display.getWidth(); 
    CAMERA_HEIGHT = display.getHeight(); 

    //Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

    mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
    engine = new Engine(new EngineOptions(true, 
      ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
        CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
      true).setNeedsSound(true)); 

    return engine; 
} 
+0

nếu bạn sẽ sử dụng RatioResolutionPolicy khi bạn khởi động động cơ, nó sẽ mất cho bạn – jmroyalty

+0

Tôi chỉ chỉnh sửa Câu hỏi của mình bằng Mã của tôi, bạn có thể giúp tôi nhiều hơn không ??? Tôi "m sử dụng RatioResolutionPolicy. –

Trả lời

14

Điều về việc sử dụng chính sách phân giải tỷ lệ là bạn có thể thiết kế trò chơi của mình với kích thước cụ thể nói 800x480 rất phổ biến cho điện thoại trong những ngày này.

Tôi nghĩ hầu hết mọi người lạc lối đều nghĩ rằng họ cần kéo chiều rộng/chiều cao Hiển thị hiện tại và sử dụng để khởi tạo công cụ.

Điểm chính sách về độ phân giải - như tôi hiểu - bạn đặt kích thước của mình thành giá trị được mã hóa cứng và để chính sách giải quyết tỷ lệ xử lý sự khác biệt giữa thiết bị này với thiết bị tiếp theo.

CAMERA_WIDTH = 800; 
CAMERA_HEIGHT = 480; 

//Toast.makeText(getApplicationContext(), CAMERA_WIDTH, 3); 

mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); 
engine = new Engine(new EngineOptions(true, 
     ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(
       CAMERA_WIDTH, CAMERA_HEIGHT), mCamera).setNeedsMusic(
     true).setNeedsSound(true)); 

Một khi bạn làm những việc như thế này, sau đó bạn chỉ cần phải chắc chắn đồ họa và khoảng cách của bạn trông tốt tại trước lựa chọn chiều rộng/chiều cao của bạn - trong ví dụ này là 800 x 480. Nếu mọi thứ hoạt động và phù hợp và có vẻ tốt , sau đó chính sách độ phân giải tỷ lệ sẽ xử lý mọi thứ khi thiết bị có kích thước màn hình khác nhau.

Ít nhất rằng quan điểm của tôi về cách nó nên làm việc - tôi viết cho 800 x 480 và tất cả mọi thứ có vẻ tốt trên của tôi 7" tablet quá - cấp mà không phải là một căng lớn

+0

Tôi đã thử nghiệm nền có độ phân giải cao cho cảnh trò chơi (1240x840) với máy ảnh 800x480, nền trông bị cắt bớt. Vì vậy, tôi không hiểu nó hoạt động tốt như thế nào –

+0

để xoay nó đi - viết cho độ phân giải cao hơn bằng máy ảnh 1240x840 và để AndEngine đối phó với các thiết bị nhỏ hơn Như tôi đã nói, tôi viết 800x480 nhưng máy tính bảng của tôi chỉ có 1280x800 – jmroyalty

+0

Theo tôi xem, sử dụng máy ảnh có độ phân giải 1024x600. Nó hoạt động tốt với thiết bị có độ phân giải nhỏ và cao. – Siddharth

3

Tìm chiều cao của thiết bị và chiều rộng và sau đó đại số làm cho phần trăm sprite chiều rộng và chiều cao màn hình.

Hy vọng điều đó sẽ hữu ích.

+0

Cho đến nay tôi cũng chỉ tìm thấy giải pháp này. –

0

Theo kinh nghiệm của tôi, tôi nghĩ vậy. cách tốt nhất để tấn công vấn đề này là xử lý hai tỷ lệ màn hình chính (5: 4, 5: 3) phổ biến ở hầu hết các thiết bị.

Bạn chọn độ phân giải cao cho mỗi tỷ lệ và để động cơ giảm kích thước nếu kích thước màn hình thiết bị nhỏ hơn

+0

kích thước máy ảnh phải là kích thước màn hình. –

Các vấn đề liên quan