Thực hành tốt nhất cho hệ tọa độ bản đồ


20

Có bất kỳ quy ước và / hoặc phương pháp nổi tiếng nhất xung quanh hệ thống tọa độ trong bản đồ trò chơi không? Là nguồn gốc thường được định vị ở trung tâm của bản đồ? Hay nó sống ở một góc và bản đồ được xây dựng trong một quãng tám của không gian 3D?


Hừm, bạn đã gắn thẻ tilemap và câu trả lời hàng đầu đang nói về mối quan tâm của tilemap, nhưng bạn cũng đề cập đến 3D và octant có lẽ là lý do tại sao câu trả lời thứ hai nói về độ chính xác của float. Hình học 3D thường không được lưu trữ trong một lưới vì vậy nguồn gốc là tùy ý hơn và tôi chưa bao giờ nghe về các vấn đề chính xác nổi trong bản đồ lưới 2D. Có lẽ một số làm rõ hoặc hợp nhất là theo thứ tự
StarWeaver

Octant đã được chỉnh sửa. Tôi đề cập đến 3D vì hầu hết các khung tôi đã thấy có một số loại trục Z. Bản đồ trò chơi có thể bằng phẳng và ở dạng 2D nhưng máy ảnh được đặt dọc theo trục thứ ba.
TaylorE

Câu trả lời:


37

Hầu hết các trò chơi đặt nguồn gốc bản đồ trong một góc. Lý do chính cho điều này là các tilemaps thường được lưu trữ bên trong các mảng hai chiều và hầu hết các ngôn ngữ lập trình không cho phép các chỉ mục mảng âm. Có rất nhiều cuộc thảo luận về góc nên là nguồn gốc, nhưng tôi không xem xét bất kỳ đối số đặc biệt mạnh mẽ. Cuối cùng, đó chỉ là sở thích cá nhân. Tôi khuyên bạn chỉ nên sử dụng cùng một góc mà API đồ họa của bạn đang sử dụng để giảm thiểu đau đầu.

Ngoại lệ thường là các trò chơi cho phép các bản đồ phát triển vô hạn theo mọi hướng. Điều đó không hoạt động đúng mà không có chỉ mục tiêu cực, vì vậy một mảng 2d đơn giản là không cần thiết. Bạn sẽ cần lưu trữ dữ liệu bản đồ của mình theo cấu trúc dữ liệu phức tạp hơn. Trong tình huống này, thường có ý nghĩa nhất để đặt nguồn gốc ở vị trí bắt đầu.


12

Về lý thuyết, vị trí của nguồn gốc không thành vấn đề. Tất cả các phép toán bạn thực hiện khi bản đồ được hiển thị hoặc khi các đối tượng di chuyển trên bản đồ đều hoạt động tốt bất kể nguồn gốc thực sự ở đâu.

Tuy nhiên, trong thực tế, có một lý do tại sao bạn có thể muốn làm cho tâm của bản đồ là gốc - và đó là độ chính xác hạn chế của các giá trị dấu phẩy động.

Với các số dấu phẩy động bạn càng nhận được từ 0, độ chính xác càng thấp trong các chữ số nhỏ hơn.

Trong khi làm việc với một trò chơi thế giới mở có bản đồ rất rộng, chúng tôi thực sự đã gặp phải vấn đề trong đó vật lý và những thứ khác sẽ bắt đầu bị phá vỡ khi bạn càng rời xa nguồn gốc.

Cách khắc phục là thực hiện một số mánh khóe trong đó nguồn gốc luôn ở gần người chơi, bằng cách dịch chuyển mọi thứ một cách thông minh (người chơi, gạch bản đồ, máy ảnh, v.v.) xung quanh để không đi quá xa gốc.


1

Nó không thực sự quan trọng. Những gì một số người thay đổi trong hệ tọa độ của họ thường là trục y. Thay vì có (0,0) ở phía trên bên trái, họ thích có nó ở phía dưới bên trái để vật lý dễ dàng hơn.


Vật lý dễ dàng hơn như thế nào nếu nguồn gốc của hệ tọa độ nằm ở phía dưới bên trái?
Tyyppi_77

3
Tôi đoán câu cuối cùng thiếu một từ: gỡ lỗi . Nó trực quan hơn nếu mặt đất bằng không và mọi thứ đi lên từ đó, hơn là nếu 'trần' bằng 0 và mọi thứ đều được đo lường.
Vaillancourt
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.