Đối với một trò chơi 2D trên iphone, tôi sẽ sử dụng OpenGL hoặc CoreGraphics tốt hơn?


8

Tôi đang lên kế hoạch phát triển trò chơi iPhone đầu tiên của mình và tôi muốn biết liệu tôi nên sử dụng OpenGL hay CoreGraphics cho trò chơi 2D. Một phác thảo về các lợi ích cũng sẽ hữu ích.

Chỉnh sửa: Đặt cái này cho wiki cộng đồng vì câu trả lời sẽ quá chủ quan

Câu trả lời:


5

Nó phụ thuộc vào những gì bạn đang xây dựng. Bạn thậm chí có thể thoát khỏi việc chỉ sử dụng Core Animation nếu nó không chuyên sâu về đồ họa (hai trò chơi cuối cùng của tôi dựa trên việc tận dụng lợi thế của Core Animation).

Nếu bạn có kế hoạch đẩy nhiều đồ họa, tôi rất muốn giới thiệu Cocos2D cho trò chơi 2D của bạn. Nó dựa trên OpenGL ES và cho đến nay tôi thực sự thích nó. Các đường cong học tập đã tương đối trơn tru.

  • Tích hợp Box2D hoặc Chipmunk .
  • Quản lý cảnh
  • Khá nhiều hiệu ứng được tích hợp sẵn (ngay cả đối với các hiệu ứng chuyển tiếp)
  • Hệ thống hạt
  • Máy chủ Điểm cao (CocosLive) miễn phí cho bạn sử dụng
  • Hỗ trợ kết xuất văn bản

Và nhiều hơn nữa. Tôi sẽ tải xuống và chơi với một số mẫu mà họ đã đưa vào đó là phần lớn chức năng của nó.


1
+1 cho cocos2d. Đó là một lựa chọn rất tốt. Nhiều trò chơi sử dụng ngay bây giờ: cocos2d-iphone.org/games
Colin Gislason

1

Theo kinh nghiệm của tôi, hầu hết các trò chơi 2D trên iPhone đều được viết bằng OpenGL ES. Bản demo trò chơi 2D của họ cũng được viết bằng OpenGL. Tôi sẽ đi với OpenGL, nếu chỉ vì bạn có nhiều khả năng tìm thấy nhiều tài nguyên hơn cho các vấn đề liên quan đến trò chơi trong OGL thay vì CoreGraphics.

Ngoài ra còn có một số tính năng cấp hệ điều hành giúp làm việc trong OpenGL ít đau đớn hơn trên một số nền tảng khác. Ví dụ: bạn có thể sử dụng lớp NSString để kết xuất với bối cảnh OpenGL và nhận được hỗ trợ Unicode đầy đủ, năng động, ngay lập tức.


1

Tóm lại, họ tập trung vào các mục đích khác nhau.

CoreGraphics: Kết hợp và đồ họa vector. Nếu bạn chỉ cần những thứ đó, CoreGraphics là một lựa chọn tốt.

CoreAnimation: Animate các lớp của các đối tượng 2D.

OpenGL nằm dưới hai cái đó (và cả CoreImage / CoreVideo nữa). Nhờ có trình độ thấp hơn, nó mang lại cho bạn mức độ kiểm soát lớn hơn. Và đòi hỏi bạn phải làm nhiều việc hơn khi thực hiện mọi thứ.

Vì vậy, thực sự, nó phụ thuộc vào những gì bạn cần làm. Và ngay khi bạn đang xem xét chuyển trò chơi đó sang các nền tảng khác, OpenGL trông hấp dẫn hơn nhiều, vì nó được hỗ trợ khá nhiều ở mọi nơi.

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.