2013-01-21 21 views

Trả lời

13

tôi đã làm được một số tiền hợp lý của nghiên cứu về "Trò chơi trong C#" điều, vì vậy tôi nghĩ tôi sẽ gửi nó cho người khác:

XNA là một cách dễ dàng để thực hiện một C# game. Bạn có thể đăng một trò chơi XNA mới trên Windows Store và nó sẽ hoạt động tốt.

Tuy nhiên, bạn không thể tạo trò chơi Windows Phone 8 hoặc Windows 8 bằng XNA. (Bạn chỉ có thể nhắm mục tiêu phiên bản 7.1 của Windows Phone.) Các API mới cho các hệ điều hành này không được hỗ trợ trong XNA.

Tuy nhiên, cả Windows Phone 8 và Windows 8 sẽ chạy các ứng dụng XNA. Các ứng dụng đó không thể nhắm mục tiêu bất kỳ tính năng nào dành riêng cho Windows 8 hoặc Windows 8 Phone.

Vì vậy, để tổng hợp. Phiên bản hiện tại của XNA (4.0) hỗ trợ API cũ hơn để nói chuyện với Windows và Windows Phone. Họ vẫn có thể chạy trên Windows 8, nhưng bạn không thể sử dụng các công cụ mới hơn.

Microsoft không có đề nghị tạo trò chơi trong C# cho API Windows 8 và Windows Phone 8 mới.

Tuy nhiên, nếu bạn không nhớ sử dụng các dự án mã nguồn mở có một số điều bạn có thể làm gì để viết một trò chơi trong C# có thể sử dụng các phiên bản mới hơn của Windows 8 và Windows Phone 8 API:

MONOGAME

Nếu bạn muốn sử dụng api của XNA để tạo trò chơi cho các API Windows 8 mới, bạn có thể sử dụng MonoGame (đây là những gì tôi sử dụng). Nó là một api mã nguồn mở thực hiện các API XNA nhưng có bổ trợ cho IOS, Android và Windows 8. Đây là một lựa chọn nền tảng thực sự tốt. Đồ họa 3D gần đây đã được MonoGame hỗ trợ (ví dụ: Infinite Flight, Armed). (Lưu ý:. Tôi không liên kết với MonoGame dưới mọi hình thức)

SHARP DX (DirectX)

Nếu bạn muốn có một cách Microsoft hỗ trợ để thực hiện một trò chơi mà mục tiêu API Windows 8 đặt cược tốt nhất của bạn là DirectX. Nhưng Direct X là một API C++. Nó cũng thực sự rất khó.

Nếu bạn muốn tạo trò chơi 2D (như Plants vs Zombies hoặc Angry Birds) thì Direct X là quá mức cần thiết. Bạn tốt hơn rất nhiều so với tuyến MonoGame. Tôi đã dành vài ngày đào bới các hướng dẫn và làm việc rất chăm chỉ để hiểu Direct X. Đến cuối thời gian đó tôi đã được thưởng bằng khả năng vẽ một hình tam giác trên màn hình. (Khoảng thời gian tương tự như vậy mà vòng lặp trò chơi của tôi đang diễn ra và các sprites di chuyển xung quanh trong MonoGame.)

Vì vậy, tôi lặp lại, nếu bạn chưa biết DirectX và bạn đang tạo một ứng dụng 2D, đừng đi xuống DirectX/Đường SharpDX.

Tuyến đường DirectX 2D bị cản trở thêm bởi Windows Phone 8 không hỗ trợ Direct2D. DirectX có một tập con gọi là Direct2D để dựng hình 2D. Tuy nhiên, tập hợp con này không được hỗ trợ trên Windows Phone 8. "thay thế" (hiện tại) là bộ công cụ Direct X.

Nếu bạn vẫn đang ở trên đường Direct X, thì bạn có thể viết nó bằng C# bằng SharpDX. Nó là một trình bao bọc C# cho DirectX hoạt động rất tốt (mặc dù tôi không biết nó có hỗ trợ bộ công cụ Direct X) hay không.


TÓM TẮT

Các ngắn của nó (đối với tôi) là Microsoft không cập nhật API của họ cho sự phát triển C# trò chơi để hỗ trợ các công cụ mới trong Windows 8 và Windows Phone 8. Nhưng MonoGame phép bạn sử dụng API XNA để thực hiện điều đó. Nó cũng cho phép bạn viết các trò chơi nền tảng chéo, vì vậy tốt hơn hết. (Bạn nhận được chuyển đến iOS và Android cho "Miễn phí".)

Trò chơi của tôi đang được tiến hành tốt trong MonoGame mà không có vấn đề gì cho đến nay!

+0

"Tuy nhiên, bạn không thể tạo trò chơi Windows Phone 8 hoặc Windows 8 bằng XNA. (Bạn chỉ có thể nhắm mục tiêu phiên bản 7.1 của Windows Phone.) API mới cho các hệ điều hành này không được hỗ trợ trong XNA. Tuy nhiên, cả hai Windows Phone 8 và Windows 8 sẽ chạy các ứng dụng XNA được tạo bằng các API cũ hơn. " khó hiểu - bạn có thể làm rõ và/hoặc cung cấp các liên kết giải thích điều này chi tiết hơn không? Với tôi nó đọc như "Windows 8/Phone8 không chạy XNA nhưng họ chạy XNA bằng cách sử dụng API cũ" - API cũ này là gì? XNA 3.0? 4.0? Họ đã phát hành một cái gì đó mới hơn 4.0? – SpartanDonut

+0

@ToddersLegrande - Tôi đã cập nhật bài đăng để làm rõ. XNA 4.0 bây giờ là "Cũ". Đó là bởi vì nó không hỗ trợ API để tương tác với các hệ điều hành hiện tại của Microsoft. Tuy nhiên, XNA vẫn có thể chạy, không sử dụng bất kỳ tính năng mới nào đi kèm với các hệ điều hành mới hơn. – Vaccano

+1

Tôi không nghĩ rằng bạn có thể chạy các ứng dụng XNA trên Windows RT trừ khi bạn thực sự sử dụng MonoGame thay vì XNA. Một tùy chọn khác có thể sử dụng Unity3D. –

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