Hướng dẫn can you create 2d games in python? - bạn có thể tạo trò chơi 2d trong python không?
Python là một ngôn ngữ xuất sắc cho những người học lập trình và hoàn hảo cho bất cứ ai muốn "hoàn thành công việc" và không dành hàng đống thời gian cho mã Boilerplate. Arcade là một thư viện Python để tạo các trò chơi video 2D dễ bắt đầu sử dụng và rất có khả năng khi bạn có được kinh nghiệm. Trong bài viết này, tôi sẽ giải thích cách bắt đầu sử dụng Python và Arcade để lập trình trò chơi video. Show Tôi bắt đầu phát triển trên arcade sau khi dạy sinh viên sử dụng thư viện pygame. Tôi đã dạy trực tiếp bằng cách sử dụng pygame trong gần 10 năm và tôi đã phát triển ProgramarCadeGames.com để dạy trực tuyến. Pygame là tuyệt vời, nhưng cuối cùng tôi cảm thấy như mình đang lãng phí thời gian để phải trả tiền cho những lỗi không bao giờ được sửa chữa. Tôi lo lắng về việc dạy những thứ như vòng lặp sự kiện, đó không còn là cách chúng ta viết mã. Tôi đã có cả một phần trong đó tôi giải thích lý do tại sao các tọa độ y bị đảo ngược. Bởi vì pygame hiếm khi được cập nhật và nó dựa trên thư viện SDL 1 cũ, thay vì một cái gì đó hiện đại hơn như OpenGL, tôi đã không hy vọng cho tương lai. Tôi muốn một thư viện dễ sử dụng hơn, mạnh mẽ hơn và sử dụng một số tính năng mới của Python 3, như trang trí và kiểu dáng. Arcade là nó. Và đây là cách bắt đầu. Cài đặtArcade, giống như nhiều gói khác, có sẵn thông qua PYPI, điều đó có nghĩa là bạn có thể cài đặt arcade bằng lệnh 4 (hoặc lệnh pipenv). Nếu bạn đã cài đặt Python, bạn có thể chỉ cần mở dấu nhắc lệnh trên Windows và gõ:Hoặc trên loại macOS và Linux: Để biết thêm hướng dẫn cài đặt chi tiết, bạn có thể tham khảo tài liệu cài đặt arcade. Vẽ đơn giảnBạn có thể mở một cửa sổ và tạo các bản vẽ đơn giản chỉ bằng một vài dòng mã. Hãy tạo một ví dụ vẽ một khuôn mặt cười như hình dưới đây: Hình ảnh bởi: Kịch bản bên dưới cho thấy cách bạn có thể sử dụng các lệnh vẽ của Arcade để thực hiện việc này. Lưu ý rằng bạn không cần biết cách sử dụng các lớp hoặc thậm chí xác định các chức năng. Lập trình với phản hồi trực quan nhanh là tuyệt vời cho bất cứ ai muốn bắt đầu học lập trình.
Sử dụng các chức năngTất nhiên, viết mã trong bối cảnh toàn cầu không phải là hình thức tốt. Rất may cải thiện chương trình của bạn bằng cách sử dụng các chức năng là dễ dàng. Ở đây chúng ta có thể thấy một ví dụ về một cây thông vẽ tại một vị trí cụ thể (x, y) bằng cách sử dụng hàm:
Ví dụ đầy đủ, xem bản vẽ với các chức năng. Lập trình viên có kinh nghiệm hơn sẽ biết rằng các chương trình đồ họa hiện đại lần đầu tiên tải thông tin vẽ lên card đồ họa, và sau đó yêu cầu card đồ họa vẽ sau đó dưới dạng một lô. Arcade cũng hỗ trợ điều này. Vẽ 10.000 hình chữ nhật riêng lẻ mất khoảng 0,800 giây. Vẽ chúng như một lô mất ít hơn 0,001 giây. Lớp cửa sổCác chương trình lớn hơn thường sẽ xuất phát từ lớp cửa sổ, hoặc sử dụng các bộ trang trí. Điều này cho phép một lập trình viên viết mã để xử lý bản vẽ, cập nhật và xử lý đầu vào từ người dùng. Một mẫu để bắt đầu một chương trình dựa trên ____ 15 dưới đây.
Lớp 5 có một số phương pháp mà các chương trình của bạn có thể ghi đè để cung cấp chức năng cho chương trình. Dưới đây là một số trong những cái được sử dụng phổ biến nhất:
SpritesSprites là một cách dễ dàng để tạo ra một đối tượng bitmap 2D trong arcade. Arcade có các phương pháp giúp dễ dàng rút ra, di chuyển và làm động các sprites. Bạn cũng có thể dễ dàng sử dụng Sprites để phát hiện sự va chạm giữa các đối tượng. Tạo một spriteViệc tạo ra một thể hiện của lớp sprite của Arcade từ một đồ họa rất dễ dàng. Một lập trình viên chỉ cần tên tệp của một hình ảnh để dựa trên cơ sở và tùy chọn một số để mở rộng hình ảnh lên hoặc xuống. Ví dụ:
Mã này sẽ tạo một sprite bằng cách sử dụng hình ảnh được lưu trữ trong 5. Hình ảnh sẽ được thu nhỏ xuống 20% chiều cao và chiều rộng ban đầu của nó. Danh sách spriteSprites thường được tổ chức thành danh sách. Những danh sách này làm cho nó dễ dàng hơn để quản lý các sprites. Sprites trong danh sách sẽ sử dụng OpenGL để vẽ các sprites dưới dạng một nhóm. Mã bên dưới thiết lập một trò chơi với người chơi và một loạt các đồng xu để người chơi thu thập. Chúng tôi sử dụng hai danh sách, một cho người chơi và một cho các đồng tiền.
Chúng ta có thể dễ dàng vẽ tất cả các đồng tiền trong danh sách tiền xu:
Phát hiện va chạm spriteHàm 6 cho phép chúng tôi xem liệu một sprite có chạy vào một sprite khác trong danh sách không. Chúng ta có thể sử dụng điều này để xem tất cả các đồng tiền mà người chơi sprite tiếp xúc. Sử dụng một vòng lặp 7 đơn giản, chúng ta có thể loại bỏ đồng tiền khỏi trò chơi và tăng điểm số của chúng tôi.
Để biết ví dụ đầy đủ, xem colle_coins.py. Vật lý trò chơiNhiều trò chơi bao gồm một số loại vật lý. Đơn giản nhất là các chương trình từ trên xuống ngăn người chơi đi qua các bức tường. Các nền tảng thêm sự phức tạp hơn với trọng lực và các nền tảng di chuyển. Một số trò chơi sử dụng động cơ vật lý 2D đầy đủ với khối lượng, ma sát, lò xo, v.v. Trò chơi từ trên xuốngĐối với các trò chơi dựa trên từ trên xuống đơn giản, một chương trình arcade cần một danh sách các bức tường mà người chơi (hoặc bất cứ điều gì khác) không thể di chuyển qua. Tôi thường gọi đây là 8. Sau đó, một công cụ vật lý được tạo trong mã thiết lập của lớp 5 với:
0 được cung cấp một vectơ chuyển động với hai thuộc tính của nó 1 và 2. Một ví dụ đơn giản về việc làm điều này là để người chơi di chuyển với bàn phím. Ví dụ: đây có thể là trong đứa trẻ tùy chỉnh của lớp 5:0 Mặc dù mã đó đặt tốc độ của người chơi, nhưng nó không di chuyển người chơi. Trong phương thức 8 của lớp 5, gọi6 sẽ di chuyển người chơi, nhưng không phải thông qua các bức tường.1 Để biết ví dụ đầy đủ, hãy xem sprite_move_walls.py. Nền tảngDi chuyển đến một nền tảng xem bên là khá dễ dàng. Một lập trình viên chỉ cần chuyển động cơ vật lý sang 7 và thêm hằng số trọng lực.2 Bạn có thể sử dụng một chương trình như lát gạch để đặt gạch/khối tạo nên cấp độ của bạn. Ví dụ, xem sprite_tiled_map.py. Đối với vật lý 2D đầy đủ, bạn có thể tích hợp thư viện Pymunk. Tìm hiểu bằng ví dụMột trong những cách tốt nhất để học là ví dụ. Thư viện Arcade có một danh sách dài các chương trình ví dụ mà một người có thể vẽ để tạo trò chơi. Những ví dụ này cho thấy một khái niệm trò chơi mà sinh viên đã yêu cầu trong các lớp học của tôi hoặc trực tuyến trong những năm qua. Chạy bất kỳ bản demo nào là dễ dàng khi arcade đã được cài đặt. Mỗi mẫu có một nhận xét khi bắt đầu chương trình với lệnh bạn có thể nhập trên dòng lệnh để chạy mẫu, ví dụ: 3Bản tóm tắtArcade cho phép bạn bắt đầu lập trình đồ họa và trò chơi với mã dễ hiểu. Nhiều lập trình viên mới đã tạo ra những trò chơi tuyệt vời không lâu sau khi bắt đầu. Hãy thử một lần! Để tìm hiểu thêm, hãy tham dự cuộc nói chuyện của Paul Vincent Craven, tạo trò chơi 2D dễ dàng với Arcade, tại Pycon Cleveland 2018. Pygame có thể tạo ra trò chơi 2D không?Pygame là một thư viện Python có thể được sử dụng đặc biệt để thiết kế và xây dựng các trò chơi.Pygame chỉ hỗ trợ các trò chơi 2D được xây dựng bằng cách sử dụng các sprites khác nhau.Pygame supports only 2d games that are built using different sprites.
Python có phù hợp để làm trò chơi không?Python ít được sử dụng rộng rãi trong thế giới phát triển trò chơi, nhưng đó là điểm khởi đầu tốt cho các nhà phát triển mới.Nếu bạn bắt đầu học Python, bạn có thể nhanh chóng nhảy vào thư viện phát triển trò chơi Pygame.Pygame là một thư viện Python miễn phí được thiết kế dành riêng cho việc tạo trò chơi.it's a good starting point for new developers. If you start learning Python, you can jump quickly into the game development library PyGame. PyGame is a free Python library designed specifically for game creation.
Python có thể chạy trò chơi 3D không?Python không nhất thiết là xấu cho các trò chơi 3D, nhưng việc phát triển toàn bộ động cơ trò chơi trong Python có thể ảnh hưởng đến hiệu suất, vì đó là ngôn ngữ được giải thích, điều đó có nghĩa là nó phải được dịch một cách nhanh chóng, trước khi thực hiện mã, có thể làm chậm mọi thứmột chút., but developing a whole game engine in Python might affect performance, since it is an interpreted language, which means it has to be translated on the fly, before the execution of code, which can slow down things a little bit. |