HomeLập trìnhPythonPhát triển trò...

Phát triển trò chơi Python – Cách tạo trò chơi đua rùa với PyCharm


Trong bài viết này, bạn sẽ tìm hiểu cách xây dựng trò chơi đua xe bằng Python bằng thư viện Turtle chỉ trong 39 dòng mã.

Đây là những gì chúng ta sẽ tạo ra:

tổng quan về rùa
Tổng quan dự án trò chơi đua rùa

🧵 Điều kiện tiên quyết

Kiến thức rất cơ bản về lập trình Python sẽ đủ để xem qua hướng dẫn này. Ngoài ra, tôi cho rằng bạn không biết gì về thư viện rùa này. Tôi sẽ dạy bạn mọi thứ từ đầu.

Trước tiên, nếu bạn chưa cài đặt Python trên máy của mình, hãy truy cập python.org để tải xuống phiên bản Python mới nhất và sau đó cài đặt nó ngay.

Để viết chương trình, chúng tôi sẽ sử dụng PyCharm, môi trường phát triển tích hợp (IDE) phổ biến nhất cho Python. Sau khi cài đặt PyCharm trên máy của bạn, bạn đã sẵn sàng xây dựng trò chơi tuyệt vời này từ đầu.

⛳ Mục tiêu dự án

Cụ thể, chúng ta sẽ viết một chương trình di chuyển một đối tượng con rùa theo chiều ngang cho đến khi nó chạm đến vạch đích đã tính toán. Sau đó, chúng tôi sẽ tạo bảy bản sao duy nhất của đối tượng rùa này bằng cách sử dụng một for vòng lặp cùng với màu sắc khác nhau và tốc độ di chuyển ngẫu nhiên.

Chúng tôi cũng sẽ thêm một hình nền (những con đường có làn đường cho rùa đua) để tạo ra thứ gì đó giống như một môi trường đua xe thực sự.

Sau đó, chúng tôi sẽ tính toán các giá trị khác nhau dọc theo trục dọc hoặc trục Y để xác định vị trí bắt đầu của chúng.

Cuối cùng, chúng tôi sẽ nhắc người dùng nhập đặt cược của họ (màu rùa) để nếu màu đặt cược của người dùng khớp với màu của rùa chiến thắng của chúng tôi, chúng tôi sẽ hiển thị Người chiến thắng! trên màn hình. Nếu không, chúng tôi sẽ hiển thị Bạn đã mất! trên màn hình.

Lưu ý: đối với trình đọc màn hình hoặc bất kỳ ai quan tâm đến việc lấy toàn bộ mã nguồn của dự án này, bạn có thể truy cập nó trong Kho lưu trữ GitHub của tôi tại đây.

Vì vậy, bạn đã thoát để xây dựng trò chơi này? Tôi cũng vậy. Hãy bắt đầu nào!

👩‍💻 Cách thiết lập dự án

Mở IDE PyCharm của bạn. Sau đó nhấp vào Dự án mới.

Ảnh chụp màn hình-2022-01-25-185042
tạo một dự án mới

Hãy gọi nó là trò chơi đua xe và bấm vào tạo ra.

2-5
Tên dự án

Sau đó, thêm một tệp Python mới có tên main.py.

📂 Cách sử dụng Thư viện Rùa

Bây giờ, hãy chuyển sang tài liệu về rùa-đồ họa trăn. Ở đây bạn sẽ tìm thấy các chi tiết đầy đủ về thư viện này.

Đọc thêm  Hàm range() trong Python – Được giải thích bằng các ví dụ về mã

Hãy cuộn xuống và đi đến phần phương pháp Rùa. Bạn sẽ thấy các loại phương thức khác nhau mà chúng ta có thể sử dụng cho nhiều mục đích khác nhau. Chúng tôi sẽ sử dụng một vài trong số chúng trong dự án hiện tại của chúng tôi.

Tôi khuyên bạn nên đọc tài liệu này ít nhất một lần trước khi bắt tay vào viết mã. Nhưng đừng lo, tôi sẽ đơn giản hóa nó cho bạn trong khi chúng ta viết chương trình.

3-5
rùa tài liệu

Nhập thư viện

Vì vậy, hãy nhập khẩu Rùa Màn hình từ mô-đun rùa. Gọi Màn hình này trong một biến mới có tên màn hình. Sau đó, gọi cho screen.exitonclick() có chức năng dừng chương trình khi ta click vào màn hình.

4-3

🔳 Cách xác định Canvas trò chơi

Bây giờ, hãy làm việc với đối tượng màn hình để xác định canvas trò chơi của chúng ta. Vì vậy, hãy thiết lập chiều rộng đến 800 pixel và Chiều cao đến 600 pixel.

5-4

Đây là kết quả:

6-1

Cách thêm đồ họa nền

Đã đến lúc tải hình nền cho canvas của chúng ta. Vì vậy, hãy kéo của chúng tôi con đường.gif tập tin vào dự án trò chơi đua xe của chúng tôi. Nhấp vào liên kết này để tải xuống đồ họa.

Hãy thêm hình ảnh này bằng cách sử dụng screen.bgpic(‘đường.gif’).

7-1

Đây là kết quả:

8-1

🐢 Cách làm việc với đối tượng rùa

Bây giờ, hãy tạo một phiên bản rùa bằng cách sử dụng Turtle() phương pháp với hình dạng được gọi là rùa.

Nhưng nó sẽ có vẻ thực sự nhỏ. Vì vậy chúng ta cần xác định shapesize(2).

Cách đặt rùa

Bây giờ chúng ta cần thay đổi vị trí của con rùa ở góc dưới cùng bên trái bằng cách sử dụng goto(x=-350, y=-260).

Vì vậy, ở đây chúng tôi thiết lập x để di chuyển con rùa theo chiều ngang và y cho theo chiều dọc cùng với các giá trị được tính toán đối với canvas của chúng tôi.

9-1
10-1

Ở đây bạn có thể thấy rằng con rùa đã di chuyển đến vị trí mong muốn của chúng tôi. Vì vậy, chúng ta có thể lấy y vị trí trong một biến toàn cầu và thêm các loại giá trị khác nhau để định vị rùa của chúng tôi trên các con đường tương ứng của chúng.

Cách tạo bản sao rùa

Bây giờ, chúng ta phải tạo bảy loại đối tượng rùa khác nhau. Vì lý do này, chúng tôi sẽ sử dụng một for loop.

Cho nên for chỉ mục trong range(0, 7) và sau đó di chuyển cá thể rùa hiện có của chúng ta trong vòng lặp này. Và tất nhiên, chúng ta phải thay đổi y đến toàn cầu của chúng tôi y vị trí biến và nhận được của họ chỉ số theo thứ tự.

11-4

Đây là kết quả:

12-1

Cách xác định màu rùa

Vì vậy, như bạn có thể thấy, chúng tôi có bảy phiên bản rùa được tạo bằng nhau với các phiên bản khác nhau y địa điểm. Hãy thêm một số màu ngẫu nhiên bằng cách sử dụng biến màu toàn cầu như chúng ta đã làm cho y chức vụ. Sau đó sử dụng color(colors[index]) phương pháp với các chỉ số của họ.

13-2

Đây là kết quả – thật đẹp!

14-2

Làm thế nào để loại bỏ các dòng xấu xí

Bạn có thể thấy rằng có một số đường xấu hướng về giữa và hướng di chuyển rất chậm. Vì vậy, chúng ta có thể sử dụng speed('fastest')penup() phương pháp giải các bài toán này. Có một cái nhìn!

Đọc thêm  Giá trị thật và giả trong Python: Giới thiệu chi tiết
15-2

Làm thế nào để di chuyển rùa về phía trước

Bây giờ, chúng ta cần gì nữa? Vâng, bạn đã nhận nó! Chúng ta cần xác định tốc độ ngẫu nhiên cho mỗi con rùa. Nhưng trước khi làm điều đó, làm thế nào chúng ta có thể di chuyển một con rùa về phía trước?

Vâng, bạn có thể sử dụng forward() phương pháp để làm điều này. Giả sử chúng ta cần di chuyển con rùa về phía trước 30 pixel.

17

Đây là kết quả:

18

Nhưng chúng không di chuyển liên tục. Chúng ta có thể làm gì khác ở đây? Hãy suy nghĩ về nó và quay lại để xem các giải pháp của tôi.

Vì vậy, để giải quyết vấn đề này, chúng ta lấy một biến gọi là is_on và đặt nó thành True. Bây giờ chúng tôi sẽ liên tục thực hiện chương trình của mình cho đến khi chúng tôi phá vỡ nó bằng cách sử dụng while vòng.

Giờ đây, chúng ta có cơ hội di chuyển con rùa của mình liên tục về phía trước với 30 pixel trong mỗi bước.

7-2

Đây là kết quả:

9-2

Nó di chuyển giống như một chiếc máy bay bởi vì chúng tôi đặt forward đến 30.

Cách chạy nhiều rùa đồng bộ

Bây giờ chúng ta cần nhắm mục tiêu tất cả các đối tượng rùa, không chỉ một đối tượng duy nhất. Nhưng làm thế nào chúng ta có thể làm điều đó? Hãy suy nghĩ về nó và quay lại để xem giải pháp của tôi.

Vì vậy, chúng ta có thể lấy một biến toàn cục có tên là all_turtle và đặt nó vào một danh sách trống. Bây giờ, trong vòng lặp for, sau khi tạo bảy phiên bản rùa mới, chúng ta có thể append con rùa mới sinh của chúng ta đến toàn cầu này all_turtle danh sách. Bằng cách này, chúng tôi có thể truy cập chúng trong các khối mã khác.

19

Bây giờ chúng tôi có tất cả rùa của chúng tôi. Vì vậy, trong khi chúng tôi is_on biến trong true, chúng ta có thể nói all_turtle.forward(10). Ngoài ra, ở đây chúng ta cần sử dụng vòng lặp for một lần nữa để lấy từng con rùa từ cái này all_turle biến toàn cầu và sau đó di chuyển chúng forward bằng 10 pixel.

20-1

Hãy xem kết quả cho đến bây giờ:

21

Cách đặt tốc độ di chuyển ngẫu nhiên

Vì vậy, chúng tôi đã giải quyết vấn đề di chuyển rùa của chúng tôi. Nhưng chúng đang chạy vô tận – không có điểm kết thúc. Ngoài ra tất cả các con rùa đang di chuyển với tốc độ như nhau. Hãy suy nghĩ về vấn đề này và cố gắng tự giải quyết nó.

Vì vậy, hãy lấy một biến mới random_pace và đặt nó thành random.randint(0, 7). Nó sẽ trả về giá trị từ 0 đến 7 một cách ngẫu nhiên. Bạn phải nhập ngẫu nhiên ở trên cùng. Cuối cùng vượt qua điều này random_pace biến thành forward() phương pháp như forward(random_pace).

22

Đây là kết quả:

23

🏁 Cách Đặt Vạch Kết Thúc

Bây giờ, chúng ta cần xác định vạch đích của mình trong canvas này. Để giải quyết vấn đề này, chúng tôi kiểm tra if turtle.xcor() > 330, đặt is_on = Falsenếu không thì chúng ta cần tiếp tục thực hiện chương trình của mình.

Đọc thêm  cách tạo mô-đun và lớp với Python
24

👥 Cách nhắc người dùng tham gia đặt cược của họ

Chúng tôi đã hoàn thành giao diện người dùng. Bây giờ, chúng tôi cần xác định một số logic để cho phép người dùng nhập đặt cược của họ và so sánh đặt cược của họ với kết quả được lập trình của chúng tôi.

Để cho phép người dùng nhập cược của họ, chúng tôi có thể viết screen.textinput và với một trình giữ chỗ ‘Nhập cược của bạn’. Chúng tôi cũng sẽ prompt người dùng “rùa màu gì” và lưu trữ nó trong một biến toàn cầu user_bet.

Sau đó, chúng tôi lấy một biến người chiến thắng. Chúng tôi kiểm tra nếu winner == user_bet sẽ đến từ màu đầu vào của người dùng. chúng tôi in Bạn đã thắngNếu không thì, bạn đã thua với màu của người chiến thắng rùa. Đó là lý do tại sao chúng ta phải sử dụng chuỗi f để truyền biến trong phương thức in.

25

🎐 Cách hiển thị kết quả trên màn hình

Bây giờ, tôi muốn bạn hiển thị văn bản in này trong canvas với màu con rùa phản hồi sau khi chạm vào vạch đích. Làm thế nào bạn có thể thực hiện điều này? Bạn sẽ thấy giải pháp của tôi tiếp theo.

S0, ở đây trong top. Chúng tôi lấy hai biến toàn cầu ALIGN = "right" FONT = ("Courier", 28, "bold"). Chúng tôi sẽ viết để căn chỉnh văn bản ở bên phải, đồng thời đặt họ phông chữ chuyển phát nhanh và cỡ chữ 28, in đậm.

Bây giờ, chúng tôi sẽ sử dụng chúng khi chúng tôi muốn hiển thị cho người dùng kết quả cuộc đua. Vì vậy, khi màu rùa chiến thắng bằng với màu user_bet, chúng tôi phải hiển thị văn bản trong khung vẽ thay vì in nó trong thiết bị đầu cuối.

Để làm điều này, chúng tôi viết turtle.write() và qua câu lệnh in cùng với font=NÉT CHỮ và căn chỉnh =CĂN CHỈNH. Khác, chúng ta cần hiển thị văn bản “Bạn đã thua” với cùng một biến NÉT CHỮ CĂN CHỈNH. Hãy xem, đây là lợi ích của việc sử dụng các biến toàn cầu.

26

Cuối cùng, hãy chạy mã này một lần nữa. Hãy nói rằng con rùa đỏ sẽ là người chiến thắng. Tuy nhiên, như bạn có thể thấy bên dưới – Rất tiếc, chú rùa vàng là người chiến thắng. Vì vậy, bạn có thể thấy phông chữ đậm màu vàng được hiển thị bên cạnh con rùa này. Đây là lý do tại sao chúng tôi sử dụng align=”right” và đặt màu cho con rùa bằng cách sử dụng turtle.pencolor() phương pháp.

tổng quan về rùa
Dự án trò chơi đua rùa

Và bạn đã có nó – chúng tôi đã xây dựng trò chơi đua rùa của mình. Nếu bạn muốn xem hướng dẫn này ở dạng video, thì đây là video hướng dẫn đầy đủ dành cho bạn:

📹 Video hướng dẫn đầy đủ

👏 Kết luận

Vì vậy, chúng tôi đang ở phần cuối của dự án trò chơi đua xe này. Nếu bạn thích bài viết này, vui lòng đăng ký Kênh YouTube của tôi hoặc gửi cho tôi một tiếng riu ríu.

Mã hóa vui vẻ!





Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status