Làm thế nào để tạo địa hình trò chơi 2D?


8

Tháng trước, tôi đã thử nghiệm rất nhiều trong việc phát triển trò chơi bằng cách sử dụng cocos2d cho iPhone, đặc biệt là về việc di chuyển và sửa đổi các họa tiết. Tuy nhiên, đỉnh và đa giác vẫn là công cụ mới đối với tôi.

Tôi đã phát triển một thuật toán tạo ra một tập hợp các điểm. Bây giờ tôi muốn sử dụng chúng để tạo địa hình 2D của mình. Đây là cách nó trông giống như khi tôi kết nối các điểm trong java, để bạn có thể có được ý tưởng

Biểu đồ đường của các chấm được kết nối

Các điểm được kết nối với các đường. Tuy nhiên, một địa hình trò chơi thực sự là một hình dạng được tô màu hoặc có một kết cấu chồng chéo, phải không? Ví dụ:

Một hình ảnh về địa hình trong trò chơi trông khá đẹp

Làm thế nào tôi có thể sử dụng điểm của tôi để tạo ra một địa hình như vậy?

Những gì tôi đã cố gắng cho đến nay là tôi đã tạo ra một mảng và điền nó với điểm của tôi. Tôi truyền mảng này cho phương thức này

void ccDrawPoly ( const CGPoint *  vertices,
    NSUInteger  numOfVertices,
    BOOL  closePolygon   
)   

vẽ một poligon đưa ra một con trỏ tới các tọa độ CGPoint và số đỉnh được đo bằng điểm. Đa giác có thể được đóng hoặc mở

Điều này thực sự vẽ một hình dạng đơn giản. Nhưng từ bức tranh màu xanh, có vẻ như không có một hình mà nhiều hình.

Hãy chia sẻ cho bạn kiến ​​thức về cách tạo địa hình trò chơi 2d.

Cập nhật ngày 03 tháng 6 năm 2011

Dựa trên hai câu trả lời hay, tôi có kết quả như sau

nhập mô tả hình ảnh ở đây

Câu trả lời:


5

Giải pháp dễ dàng / ngây thơ chỉ đơn giản là lấy các điểm hiện có của bạn và cho mỗi điểm có một điểm tương ứng ở cùng vị trí Y nhưng tắt màn hình. Từ đó, tạo đa giác của bạn bằng cách lấy, giả sử, cặp 0, 1, 1 và cặp 0 và chuyển nó sang phương thức DrawPoly của bạn. Sau đó tiếp tục với (cặp 1, 2, 2, cặp 1), v.v.


Y đại diện cho chiều cao. Tôi không hiểu làm thế nào nó có thể giống Y nhưng tắt màn hình cùng một lúc. Tôi có nghĩa là X ra khỏi màn hình ...? Tôi không hiểu ý bạn.
Mất trong OWL

1
Thay Y bằng X rồi. Họ chỉ là những điểm thẳng xuống.
Tetrad

Các dòng trong hình ảnh cập nhật của bạn nên được chỉ thẳng xuống. Không lan tỏa.
Tetrad

Tuyệt, hiểu rồi Xem cập nhật của tôi :)
Mất trong OWL

4

Tôi sẽ lặp qua mảng của bạn hai điểm cùng một lúc, ngoại suy hai điểm nữa (bằng cách sử dụng giá trị X cho mỗi điểm và tạo giá trị Y 0) để đưa ra hình dưới cùng của bạn. Truyền bốn điểm đó vào ccDrawPoly () và lặp lại cho đến khi bạn hết các giá trị mảng.

vì vậy, nếu bạn có nói:

P1 = (0, 25)
P2 = (5, 30)
P3 = (10, 20)
P4 = (15, 25)
for the first shape, you pass in P1, P2, (0, 0), and (5, 0)
second shape is P2, P3, (5, 0), (10, 0)
third shape is P3, P4, (10, 0), (15, 0)
etc...
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.