xây dựng một trò chơi cho các điện thoại độ phân giải khác nhau


7

Tôi đang bắt đầu một số thử nghiệm để xây dựng một trò chơi trên chương trình Android. Cho đến nay mọi thứ đang hoạt động và có vẻ tốt đẹp.

Tuy nhiên tôi không hiểu làm thế nào để đảm bảo trò chơi của tôi trông chính xác trên tất cả các điện thoại vì tất cả chúng sẽ có tỷ lệ màn hình hơi khác nhau (và thậm chí rất khác nhau trên một số điện thoại kỳ lạ)

Những gì tôi đang làm bây giờ là làm cho một khung nhìn trở nên khó chịu (cũng có thể là ortho) mà tôi đặt để chuyển từ tỷ lệ -ratio sang + (như tôi đã thấy trên nhiều ví dụ) tuy nhiên điều này khiến hình dạng thử nghiệm của tôi bị kéo dài và đôi khi bị cắt cạnh của màn hình.

Tôi đang nghiêng điện thoại của mình sang ngang để thực hiện các bài kiểm tra của mình (hơi cực) nhưng nó vẫn sẽ hiển thị chính xác nếu tôi đã thực hiện đúng.

Tôi có nên thu nhỏ theo tỷ lệ nào đó trước khi vẽ hay không?

Một ví dụ sẽ được đánh giá rất cao.

Tái bút Tôi đang làm một trò chơi 2D.

Câu trả lời:


4

Từ góc độ cấp cao, chỉ có một số tùy chọn, tùy thuộc vào yếu tố quan trọng hơn, duy trì tỷ lệ khung hình nhất quán hoặc đảm bảo rằng không ai nhìn thấy nhiều hơn người khác chỉ vì chúng có màn hình rộng hơn hoặc cao hơn.

Lựa chọn của bạn là:

  1. Cắt những phần không phù hợp.
  2. Kéo dài màn hình cho vừa, có vấn đề bạn đang thấy hình ảnh bị kéo dài.
  3. " Hộp thư " duy trì cả tỷ lệ khung hình và đảm bảo rằng không có người chơi nào nhìn thấy nhiều hơn bất kỳ người chơi nào khác vì kích thước màn hình của họ,

Cảm ơn. Tôi không ngại cắt xén. bạn có thể cho tôi điểm khởi đầu để làm điều này không? (về mặt chiếu lên màn hình)
Jason

@Jason Tôi vẫn còn khá mới đối với nhà phát triển trò chơi và một vài trò chơi tôi đã không phải đối phó với điều này vì vậy tôi không thể đưa ra bất kỳ lời khuyên triển khai hữu ích nào về kết xuất, tuy nhiên ý tưởng chung là bạn có công cụ kết xuất không quan tâm kích thước màn hình là bao nhiêu (tức là thứ mà bạn luôn ở trong chế độ xem "phóng to" trong đó bạn chỉ nhìn thấy một phần của bản đồ) hoặc bạn có kích thước màn hình "gốc" mà bạn ' Dựa trên, sau đó bạn thu nhỏ hoặc phóng to để bạn không có bất kỳ không gian màn hình nào được lấp đầy, duy trì tỷ lệ khung hình và giữ nó ở giữa (đảm bảo không có thông tin quan trọng nào bị cắt)
Davy8

3

3 tùy chọn từ câu trả lời của Davy8 là:

  • Cắt những phần không phù hợp.
  • Kéo dài màn hình cho vừa, có vấn đề bạn đang thấy hình ảnh bị kéo dài.
  • "Hộp thư" duy trì cả tỷ lệ khung hình và đảm bảo rằng không có người chơi nào nhìn thấy nhiều hơn bất kỳ người chơi nào khác vì kích thước màn hình của họ

Tôi sẽ thêm một lựa chọn thứ tư, đó là cách tiếp cận ưa thích của tôi. Đó thực sự là một biến thể của hộp thư; hộp thư truyền thống lấp đầy không gian thêm với màu đen, trong khi phương pháp này lấp đầy không gian thêm với đồ họa bổ sung. Bạn chỉ có thể mở rộng màu nền / hình ảnh và có thể hiển thị thêm logo.

Một cách khác để suy nghĩ về điều đó là tôi luôn cắt màn hình cho mọi màn hình và toàn màn hình được thiết kế có chủ đích lớn hơn tất cả các tỷ lệ hiển thị / khung hình trên thiết bị di động. Do đó, luôn có thêm đồ họa để điền vào khu vực hộp thư.

Ngoài ra, tùy thuộc vào tính chất trò chơi của bạn (ví dụ: thay đổi này có mang lại cho người chơi một lợi thế không công bằng không?) Và về cách thiết kế UI của bạn, bạn thậm chí có thể thay đổi một số yếu tố UI để lấp đầy không gian thêm. Hãy nghĩ về nó giống như một thiết kế trang web trôi chảy, trong đó menu bên phải vẫn ở bên phải cho dù cửa sổ rộng bao nhiêu.


Tùy chọn thứ tư mà bạn đề cập là phương pháp chính xác tôi sử dụng trong các trò chơi của mình. Nó đòi hỏi một chút tính toán để làm cho đúng khi bạn thực hiện đồ họa hoàn hảo pixel "nâng cao" (tức là phóng to khu vực trò chơi ở độ phân giải cao hơn) nhưng khi thực hiện chính xác, nó trông thực sự tốt cho dù độ phân giải và / hoặc tỷ lệ khung hình .
goshki

Tôi thích phương pháp thứ 4 của bạn là tốt. Đối với điện thoại Android, tôi sử dụng các nguyên tắc sau: bigizard.com/blog/31-android-resolutions-definite-answer
Milan Babuškov

0

Tỷ lệ bạn đề cập đến được gọi là 'tỷ lệ khung hình'. Nó thường được tính là 'chiều rộng / chiều cao' (mặc dù nếu bạn sắp xếp chế độ xem khác nhau có thể là 'chiều cao / chiều rộng')

Nhớ bỏ phép chia thành số nổi!

float aspect_ratio = width / (float) height;

HTH


1
Cảm ơn nhưng đây không phải là câu hỏi của tôi Tôi biết tôi có thể có được tỷ lệ khung hình khác nhau bằng cách thực hiện phân chia đó. Câu hỏi của tôi là làm thế nào để tôi sử dụng nó để kết xuất chính xác?
Jason
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.