Tôi dường như không thể tìm thấy câu trả lời cho câu hỏi này ở bất kỳ đâu. Tôi nhận ra rằng bạn phải sử dụng pyOpenGL hoặc một cái gì đó tương tự để làm công cụ openGL, nhưng tôi đã tự hỏi nếu nó có thể làm đồ họa 3d rất cơ bản mà không có bất kỳ phụ thuộc khác.PyGame có làm 3d không?
Trả lời
Không, Pygame là trình bao bọc cho SDL, là một api 2D. Pygame không cung cấp bất kỳ khả năng 3D nào và có lẽ sẽ không bao giờ xảy ra.
Thư viện 3D cho Python bao gồm Panda3D và DirectPython, mặc dù chúng có thể khá phức tạp để sử dụng, đặc biệt là sau này.
Vâng, nếu bạn có thể làm 2ngày bạn luôn có thể làm 3d. Tất cả 3d thực sự là nghiêng 2 chiều bề mặt cho ấn tượng bạn đang nhìn vào một cái gì đó với chiều sâu. Câu hỏi thực sự là nó có thể làm tốt, và thậm chí bạn có muốn. Sau khi duyệt tài liệu pyGame một lúc, có vẻ như nó chỉ là một trình bao bọc SDL. SDL không dành cho lập trình 3D, vì vậy câu trả lời cho câu hỏi thực sự là, Không, và tôi thậm chí sẽ không thử.
Tôi đã thử. Trong thực tế, tôi đã viết một mô phỏng toàn bộ OpenGL trong C++ trước đây. Thật khó chịu và việc học một API 3D thực sự là một ý tưởng tốt hơn cho đến khi bạn biết mình đang làm gì với công nghệ 3D. – imallett
Python Đậu nành có thể hiển thị đồ họa 3D trên bề mặt pygame.
Bạn có thể làm trò chơi giả 3d (như "Doom") với chỉ pygame:
http://code.google.com/p/gh0stenstein/
và nếu bạn duyệt các trang web pygame.org bạn có thể tìm thêm "3d" trò chơi thực hiện với trăn và pygame.
Tuy nhiên, nếu bạn thực sự muốn tham gia lập trình 3D, bạn nên xem xét OpenGl, Máy xay sinh tố hoặc bất kỳ thư viện 3d thực khác nào.
Nếu bạn muốn chức năng chiếu 3D và tất cả các thứ mà bạn sẽ phải sử dụng một API 3D nhưng nếu bạn muốn làm một cái nhìn 3D cơ bản tôi khuyên bạn nên Peter Website hướng dẫn: http://www.petercollingridge.co.uk/pygame-3d-graphics-tutorial
Pygame không bao giờ được ban đầu có nghĩa để làm 3d, nhưng có một cách bạn có thể làm 3d với bất kỳ thư viện đồ họa 2d nào. Tất cả những gì bạn cần là chức năng sau, chuyển đổi điểm 3d thành 2d, cho phép bạn tạo ra bất kỳ hình dạng 3d nào bằng cách vẽ các đường thẳng trên màn hình.
def convert_to_2d(point=[0,0,0]):
return [point[0]*(point[2]*.3),point[1]*(point[2]*.3)]
Điều này được gọi là giả 3d hoặc 2.5d. Điều này có thể được thực hiện, nhưng có thể chậm và cực kỳ khó làm, do đó bạn nên sử dụng thư viện dành cho 3d.
Điều gì sai về điều này? Pygame không làm 3d. PyOpenGL làm 3d. Đọc lại câu hỏi của anh ấy. – Kylotan
Có, tôi hiện đang viết một trò chơi 3D. Và tôi thậm chí không sử dụng OpenGL. Tôi đang sử dụng một phương pháp giống như một Horst JENS được đăng. – Cnorwood7641