2009-08-06 44 views
5

Bạn thường nghe thấy rằng C++ thích hợp hơn với Objective-C cho trò chơi, đặc biệt là trong môi trường hạn chế tài nguyên như iPhone. (Tôi biết bạn vẫn cần một số Objective-C để bắt đầu nói chuyện với các dịch vụ iPhone.) Tuy nhiên, công cụ trò chơi 2D của sự lựa chọn những ngày này dường như là Cocos2d, đó là Objective-C.Sử dụng công cụ trò chơi Objective-C trong trò chơi iPhone C++?

Tôi hiểu rằng những gì Apple gọi là "Objective-C++" cho phép bạn kết hợp các lớp C++ và Objective-C trong một tệp, nhưng bạn không thể trộn và kết hợp các cấu trúc của ngôn ngữ trong cùng một lớp hoặc hàm.

Vì vậy, có hợp lý/có thể sử dụng Cocos2d cho trò chơi C++ không? Bạn có phải viết rất nhiều "keo" mã? Tôi muốn tránh một số việc nâng hạng nặng mà một phương pháp tiếp cận trực tiếp OpenGL-ES sẽ yêu cầu.

Trả lời

3

Tôi hiện đang tạo mẫu trò chơi với Cocos2. Tôi đang viết logic trò chơi trong C++ với Chipmunk và sau đó sử dụng Cocos để triển khai lớp xem. Bạn thực sự có thể kết hợp C++ và Objective-C một cách tự do trong cùng một lớp, hàm và dòng mã. Tôi chắc rằng có giới hạn, như bạn có thể không trộn lẫn cú pháp định nghĩa phương thức Objective-C và C++ trong giao diện lớp (tôi thực sự không nghĩ là thử), nhưng với hầu hết các mục đích thực tế bạn có thể trộn tự do.

Nếu bạn chỉ nhắm mục tiêu đến iPhone thì tôi sẽ không quá lo lắng về việc viết mọi thứ trong Objective-C. Như những người khác đã đề cập, nếu bất cứ điều gì thực sự là một nút cổ chai hiệu suất bạn chỉ có thể hồ sơ và tối ưu hóa nó. Tôi đang viết cốt lõi trò chơi của mình trong C++ vì tôi có thể muốn triển khai trên các nền tảng khác và trong trường hợp đó Mục tiêu-C sẽ trở thành trách nhiệm pháp lý.

+1

Cảm ơn. Xem xét hiệu suất sang một bên, tôi muốn sử dụng C++ như một vấn đề về sở thích cá nhân. Có vẻ như tôi có thể làm điều này và vẫn sử dụng Cocos2D. – Buggieboy

7

Bạn không cần phải viết bất kỳ mã keo nào vì Objective-C++ cho phép bạn kết hợp mã C++ và Objective-C khá tự do. Tuy nhiên, tôi khuyên bạn nên viết nó trong Objective-C và sau đó lược tả nếu bạn cần tối ưu hóa nó và viết lại những phần đó trong C hoặc C++ thay vì bắt đầu với C++. Mục tiêu-C không phải là một ngôn ngữ chậm và không có lý do để đưa vào tất cả các nỗ lực thêm để sử dụng C++ khi nó có thể đủ nhanh.

Các vấn đề liên quan