Câu hỏi về cuộn từ trên xuống / bên!


7

Tôi biết rằng đó chỉ là nền tảng cuộn và người chơi khá nhiều ở giữa. Những gì tôi đang tự hỏi kỹ thuật nào là chính xác hơn khi tôi đang thực hiện một bản đồ cuộn bên lớn (tôi không sử dụng gạch như một số câu hỏi khác mà tôi đã tìm thấy).

sử dụng bản đồ 16000 pixel bản đồ rất lớn và cuộn nó. và tạo một danh sách hình ảnh, có thể có 4 bản đồ 4000 pixel?

Ngoài ra, giả sử tôi muốn có một hộp tại một điểm nhất định trong bản đồ của mình. Ngay bây giờ tôi chỉ đang đếm các pixel mà tôi đang cuộn và một khi tôi nhận được pixel 2000, tôi chèn hộp và cuộn nó với nền. Điều đó có vẻ đúng? hoặc có cách nào tốt hơn để làm tất cả những điều này?

Câu trả lời:


4

Nếu bạn đang sử dụng SpriteBatch:

  • Vẽ mọi thứ ( SpriteBatch.Draw) trong "không gian thế giới" của nó
  • Vượt qua một ma trận dịch SpriteBatch.Beginđể dịch không gian thế giới của bạn đến đúng vị trí (nghĩ về điều này giống như một máy ảnh).
  • Kích thước kết cấu tối đa trong XNA là 2048x2048 trên cấu hình Reach, 4096x4096 cho HiDef ( chi tiết ). Nếu kết cấu nền của bạn lớn hơn, bạn sẽ phải chia nó ra và vẽ nó thành nhiều phần.
  • Bạn có thể muốn xem xét thêm một số loại bỏ nếu bạn gặp vấn đề về hiệu suất.

Bạn nên thực hiện tất cả các tính toán chuyển động của mình và cứ thế trong "không gian thế giới" đó. Vì vậy, hộp đó sẽ có một vị trí của một cái gì đó như new Vector2(2000, 0).

Người chơi của bạn cũng sẽ có một Vector2 position;và có lẽ cũng giống như một Vector2 velocity. Sau đó, bạn sẽ Drawchơi sprite ở vị trí đó. Và cũng sử dụng vị trí đó để tạo ma trận máy ảnh của bạn.

Đối với các thế giới thực sự rộng lớn hoặc cho các động cơ vật lý đòi hỏi độ chính xác, bạn có thể cần phải lộn xộn về việc làm lại không gian thế giới của mình để duy trì độ chính xác ( chi tiết ). Tôi tưởng tượng rằng điều này có thể không áp dụng cho tình huống của bạn.


0

Sử dụng một danh sách hình ảnh. (Thân thiện với bộ nhớ hơn - mặc dù chú ý đến trình thu gom rác)

Đếm pixel có thể tốt hoặc xấu. Phụ thuộc vào sự phức tạp của trò chơi của bạn. Pro: - nó thật đẹp WYSIWYG. - thật đơn giản để hiểu chuyện gì đang xảy ra

Con: - Kích thước bước nhỏ nhất của bạn là một pixel - có thể bạn muốn có thể chính xác hơn với các điều khiển của mình

Gợi ý của tôi: Nếu trò chơi của bạn khá đơn giản, hãy sử dụng pixel. Nếu không thì tính toán mọi thứ trong một không gian liên tục.


tính toán mọi thứ trong một không gian liên tục có vẻ như là một ý tưởng hay ... nếu tôi biết đó là gì.
bitbitbot

1
Không gian liên tục là nơi bạn thực hiện hình học vectơ ;-) Nếu bạn không thoải mái với đại số tuyến tính, hãy ở lại với các pixel (hoặc truy cập khanacademy.org và tìm hiểu nó)
Fabian
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.