2009-02-28 22 views
22

Trong một thời gian tôi đã nghĩ đến việc cố gắng làm một cổng của một trong những trò chơi PC cổ điển yêu thích của tôi, The Ur-Quan Masters (aka Star Control 2) cho iPhone. UQM sử dụng SDL cho tất cả các đồ họa, âm thanh, đầu vào và các thứ đồ chơi khác của nó và dường như có một cổng SDL cho iPhone nhưng nó không trông rất chín chắn vào thời điểm này.SDL dành cho iPhone trưởng thành như thế nào?

Có ai đặt cổng SDL iPhone thông qua các bước của nó không? Làm thế nào nó hoạt động tốt? Tôi có thể trông đợi những loại vấn đề nào khi thực hiện dự án này, vốn đã là mã nền tảng chéo cho iPhone?

Nếu SDL không phải là một lựa chọn, bất kỳ ai cũng có thể đề xuất một khung thay thế để xem xét việc thu hẹp khoảng cách giữa SDL và các thư viện gốc như OpenGL ES và Core Audio? Hoặc là mã hóa cho những khuôn khổ lựa chọn tốt nhất?

Chỉnh sửa để thêm: Đây là liên kết đến forum thread trên diễn đàn UQM về cách thực hiện cổng iPhone.

+0

Tôi chỉ đang suy nghĩ cùng một điều (rằng cần có một phiên bản iPhone của Starcon) - nhưng đã bị treo lên trên cố gắng tìm ra cách kiểm soát cận chiến có thể có thể hoạt động. Dù sao trong đôi giày của bạn tôi chỉ cần mã thẳng vào OpenGL, nhưng tôi đã không đủ kinh nghiệm iPhone để trả lời với thẩm quyền. – Crashworks

+1

Hãy xem chuỗi diễn đàn mà tôi đã liên kết đến, có một số thảo luận về các lược đồ kiểm soát có thể có. –

+0

Lưu ý cho người khác là "SDL" là Lớp DirectMedia đơn giản: [http://www.libsdl.org/](http://www.libsdl.org/) –

Trả lời

21

CẬP NHẬT
Câu trả lời này thực sự lỗi thời, vì vậy bạn có thể ngừng bỏ phiếu!

Tôi không còn sử dụng SDL để phát triển iPhone vì nó không phù hợp với mô hình iPhone. ví dụ. SDL nhấn mạnh vào việc sở hữu main(), hệ thống phụ âm thanh không biết về AudioSessions, rất khó để xem các thay đổi định hướng xem, v.v. Thật tuyệt khi thấy một khuôn mặt quen thuộc nhưng cuối cùng SDL đã giới thiệu nhiều vấn đề hơn là giải quyết.

2009 answer
Phiên bản svn hoạt động tốt cho tôi.

Tôi gặp sự cố và đó là sự cố trong số atexit(SDL_Quit).

Vì vậy, tôi đã vô hiệu hóa dọn dẹp.

Thêm tên thư viện không hợp lý, nhưng bạn có thể thay đổi điều đó.

Phần khó nhất đối với tôi là chuyển mã SDL của tôi sang SDL-1.3 và chuyển mã OpenGL của tôi sang OpenGLES.

OpenGLES hoạt động như bạn mong đợi, công cụ gia tốc hiển thị dưới dạng cần điều khiển 3 trục, và âm thanh chắc chắn.

Tôi cung cấp iPhone SDL 4.5 trong số 5 sao có thể.

+0

Tin tuyệt vời, cảm ơn! –

+0

Tôi đã đọc ở nơi khác rằng cổng SDL không xử lý tốt các SDK mới hơn. Bạn đang sử dụng phiên bản hệ điều hành nào? –

+1

Cập nhật: Tôi đã sử dụng 2,2 vào thời điểm đó và cuối cùng đã phải thay thế SDL bởi vì nó không xử lý tốt các SDK âm thanh cũ, và nó không thực sự "phù hợp" với mô hình iPhone. Nó vẫn là một đoạn đường nối tuyệt vời cho người mới bắt đầu sử dụng iPhone. Tôi nên cập nhật câu trả lời của mình. –

2

Cổng iPhone hoạt động như mong đợi và có một chút cảm giác khó hiểu với nó. Như đã phân phối, không dễ dàng tích hợp với SDK, điều này có thể được chấp nhận đối với một số trò chơi, nhưng tôi nghĩ hầu hết người dùng mong đợi nhiều trò chơi hơn hôm nay, như kết nối mạng xã hội.

May mắn thay với một chút nỗ lực, bạn có thể sử dụng hầu hết SDK iPhone với SDL.

Xem hướng dẫn của tôi tại đây, Bridging the Gap.

và blog trên Simple DirectMedia Layer Forums.

SDL có xu hướng làm hỏng các sự kiện liên lạc trong các lần xem bảng, nhưng bạn có thể khắc phục điều đó bằng cách chạy bằng cfrunloop riêng biệt.

Hiệu suất gần giống với vanilla đơn giản OpenGL.

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