Pygame là thư viện phát triển trò chơi của ngôn ngữ lập trình Python hay nói cách khác đó là một “cánh cửa” để giúp người dùng tạo ra những tựa game hấp dẫn. Trong bài viết hôm nay, hãy cùng ICANTECH khám phá hành trình thú vị và thỏa sức sáng tạo với những trò chơi nhập vai với lập trình Pygame nhé!
Pygame là một thư viện của ngôn ngữ lập trình Python và là một tập hợp các mô-đun Python được thiết kế riêng để lập trình trò chơi. Pygame được viết bởi Pete Shinners thay thế cho chương trình PySDL sau khi quá trình phát triển dự án này bị đình trệ. Chính thức phát hành từ năm 2000, Pygame được phát hành theo phần mềm miễn phí GNU Lesser General Public License.
Pygame có thể chạy trên nhiều nền tảng và hệ điều hành khác nhau. Với thư viện pygame trong Python, các nhà phát triển có thể sử dụng công cụ và chức năng mở rộng để tạo ra các trò chơi nhập vai ấn tượng. Bởi vậy, Pygame đang ngày càng phổ biến với nhà phát triển vì tính đơn giản, linh hoạt, dễ sử dụng.
Dưới đây là một số đặc điểm nổi bật của Pygame:
Một chương trình Pygame sẽ bao gồm các phần sau:
Hệ tọa độ trong Pygame bao gồm:
Trong trường hợp muốn đổi màu nền của màn hình Python bạn thực hiện theo hướng dẫn dưới đây:
Để cài đặt thư viện Pygame trong Python bạn thực hiện theo các bước dưới đây:
Việc nắm được các thành phần chính của Pygame sẽ giúp bạn tận dụng và lập trình game với Pygame dễ dàng hơn. Bên cạnh đó, làm quen với mô-đun của Pygame, hoạ tiết, bề mặt, xử lí sự kiện, âm thanh, âm nhạc sẽ giúp bạn nắm được các công cụ cần thiết để lập trình game bằng Pygame Python và tạo ra các trò chơi hấp dẫn.
Dưới đây là các thành phần cấu tạo nên Pygame:
Việc liên tục tìm hiểu và ứng dụng các thành phần trong Pygame giúp nhà phát triển tối ưu được toàn bộ tính năng trong thư viện Pygame và ứng dụng biến những ý tưởng trò chơi thành hiện thực.
Pygame thân thiện với các nhà phát triển ở mọi lứa tuổi khác nhau, kể cả người lớn lẫn trẻ em. Bên cạnh việc phát triển game trên nền tảng này, các nhà phát triển có thể tham khảo các mã nguồn mở miễn phí đến từ các lập trình viên trên toàn thế giới bằng cách truy cập vào Python Package Index (PyPI, kho phần mềm được phát triển bởi những người dùng Python khác).
Tại đây, các nhà phát triển có thể tham khảo trò chơi mẫu, các câu lệnh trong Pygame, code mẫu…. và tiến hành tải xuống và sử dụng cho trò chơi của mình với bằng cách sử dụng tiện ích trong thư viện GUI.
Pygame là một thư viện phát triển trò chơi của ngôn ngữ Python mà các nhà phát triển hoàn toàn có quyền kiểm soát những gì hiển thị trên màn hình và có thể chọn kiểu nhập liệu người dùng ưa thích. Chơi trò chơi do chính mình tạo ra thông qua việc điều khiển phím mũi tên, cần điều khiển chuột. Với những tính năng này, bạn có thể phát triển nhiều loại trò chơi trên Pygame.
Tại Pygame, nhà phát triển có thể tạo trò chơi của mình thông qua mã nguồn mở, phần mềm miễn phí, phần mềm chia sẻ… Bởi vậy, các nhà phát triển không chỉ truy cập vào các chương trình do các lập trình viên khác viết mà còn có thể xuất bản dự án của mình sáng tạo trên Pygame với mục đích thương mại.
Trên thực tế, nhiều trò chơi được tạo ra từ thư viện Pygame đã được sử dụng cho mục đích thương mại và được vinh danh tại các sự kiện trò chơi trên thế giới - những dự án này còn được biết đến với tên gọi là “Sundance”.
Để lập trình trò chơi Rắn săn mồi bằng cách sử dụng Pygame, hãy cùng ICANTECH phân tích trò chơi này như sau:
Với các phân tích như trên, để lập trình trò chơi Rắn săn mồi chúng ta sẽ cần thực hiện các bước như sau:
Ở bước khởi màn hình, chúng ta sẽ lần lượt khai báo các thư viện cần thiết cho trò chơi: pygame, sys và random theo:
Với các phân tích như vậy, chúng ta sẽ sử dụng các hàm trong Pygame theo ảnh dưới đây:
Thực tế con rắn là nhiều hình vuông ghép lại với nhau. Để vẽ các hình vuông trong Pygame, chúng ta sử dụng lệnh vẽ hình chữ nhật pygame.draw.rect() với chiều dài và chiều rộng bằng nhau.
Mỗi hình vuông thể hiện là một khúc của con rắn có kích thước là 10x10 và các khúc của con rắn là 10x10 nên các tọa độ bắt đầu vẽ các khúc của rắn sẽ là bội của 10.
Tiếp theo, ICANTECH sẽ tiến hành khai báo 2 biến toàn cục xác định toạ độ x và tọa độ y bắt đầu của con rắn (đầu rắn) và tiến hành khai báo tiếp biến toàn cục xác định độ dài một khúc (hình vuông) của rắn.
Với các phân tích như vậy, chúng ta sẽ sử dụng các câu lệnh trong Pygame theo ảnh dưới đây:
Để di chuyển rắn, ICANTECH sẽ lần lượt cần tạo ra các sự kiện KEYDOWN của Pygame. Các sự kiện được sử dụng ở đây là K_UP, K_DOWN, K_LEFT và K_RIGHT tương ứng với các mũi tên trên bàn phím di chuyển lên, xuống, trái và phải của rắn.
Như vậy, chúng ta sẽ sử dụng các câu lệnh sau:
Tiếp theo, chúng ta sẽ khai báo hai biến mới là x_head_change và y_head_change để xác định sự thay đổi của đầu rắn.
Ví dụ tọa độ đầu di chuyển sang phải thì tọa độ x tăng 1 lượng là 10 tọa độ y sẽ không thay đổi, di chuyển xuống dưới thì tọa độ x không thay đổi tọa độ y tăng 1 lượng là 10.
Cuối cùng, ICANTECH tiến hành khai báo và cài đặt số lượng khung hình (FPS) trong một giây.
Con mồi sẽ xuất hiện ngẫu nhiên trên màn hình hiển thị trò chơi. Vì mỗi bước đi của con rắn là 10 nên con mồi sẽ xuất hiện ở những vị trí có tọa độ là bội của 10.
Để con mồi xuất hiện ngẫu nhiên chúng ta dùng thư viện random lấy tọa độ x, y. Sau khi lấy được tọa độ x, y tiến hành tính toán làm tròn sao cho tọa độ x, y là bội của 10.
Để tăng độ dài của rắn khi ăn được mồi bạn lần lượt thực hiện khai báo một biến lưu dữ liệu độ dài của con rắn và một danh sách lưu tọa độ các khúc của con rắn.
Tiếp theo, bạn tiến hành khai báo danh sách lưu toạ độ của đầu rắn và lần lượt Xây dựng một hàm để vẽ con rắn lên màn hình game.
Trong trường hợp rắn chạm vào con mồi thì sẽ tạo một con mồi khác ở vị trí mới.
Khi rắn đâm vào biên, chúng ta sẽ thực hiện các bước sau đây:
Khi rắn cắn vào thân hoặc đuôi thì gán biến game_close = True để dừng game lại.
Ở bước cuối cùng, bạn lần lượt xây dựng các hàm trong Pygame và hiển thị điểm số đạt được lên màn hình.
Số điểm mà người chơi đạt được chính là độ dài của rắn. Như vậy, chúng ta sẽ sử dụng các câu lệnh sau:
Như vậy, ICANTECH - nền tảng học lập trình online cùng bạn khám phá thư viện Pygame cũng như các kiến thức, đặc điểm, cấu trúc của lập trình Pygame. Hi vọng với những kiến thức được ICANTECH chia sẻ bạn đã có thể ứng dụng và phát triển những trò chơi của riêng mình tại Pygame. Bắt đầu hành trình chinh phục Pygame ngay hôm nay bạn nhé!
Nguồn ảnh: ICANTECH.