Trong bài viết này, bạn sẽ học 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
🧵 Đ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
🛠 Công cụ chúng tôi sẽ sử dụng
Đầu tiên, nếu máy của bạn chưa cài đặt Python, 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 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 của chúng ta. 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 vòng lặp for
cùng với các màu 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 vào] để 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
Ghi chú. đối với trình đọc màn hình hoặc bất kỳ ai quan tâm đến việc lấy mã nguồn đầy đủ 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? . 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
Hãy gọi nó là trò chơi đua xe và nhấp vào tạo
Sau đó, thêm một tệp Python mới có tên là main.py
📂 Cách sử dụng Thư viện rùa
Bây giờ, hãy đi đến tài liệu python về đồ họa rùa. Ở đây bạn sẽ tìm thấy các chi tiết đầy đủ về thư viện này
Hãy cuộn xuống và đi đến phần phương pháp của 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 nhảy vào 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
Nhập thư viện
Vì vậy, hãy nhập Rùa và Màn hình từ mô-đun rùa. Gọi đây là Màn hình trong một biến mới có tên là màn hình. Sau đó, gọi hàm screen.exit title[]
để dừng chương trình khi ta click vào màn hình
🔳 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 đặt chiều rộng thành 800 pixel và chiều cao thành 600 pixel
Đây là kết quả
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 con đường của chúng tôi. gif 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
['road. gif']
Đây là kết quả
🐢 Cách làm việc với đối tượng rùa
Bây giờ, hãy tạo một thể hiện con rùa bằng cách sử dụng phương thức Turtle[]
với hình dạng được gọi là con rùa
Nhưng nó sẽ có vẻ rất 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 đặt x
để di chuyển con rùa theo chiều ngang và y
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
Ở đâ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 vị trí y
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 ta 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 main.py
0
Vì vậy, chỉ mục for
trong main.py
2 và sau đó di chuyển phiên bản rùa hiện tại của chúng tôi trong vòng lặp này. Và tất nhiên, chúng ta phải thay đổi y
thành biến vị trí toàn cầu y
và lấy chỉ mục của chúng theo thứ tự.
Đây là kết quả
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 vị trí y
khác nhau. Hãy thêm một số màu ngẫu nhiên bằng cách sử dụng biến màu chung như chúng ta đã làm cho các vị trí y
. Sau đó sử dụng phương thức main.py
7 với các chỉ mục của chúng
Đây là kết quả - đẹp
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 các phương pháp main.py
8 và main.py
9 để giải quyết những vấn đề này. có một cái nhìn
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? . 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?
Chà, bạn có thể sử dụng phương pháp screen.exit title[]
0 để 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
Đây là kết quả
Nhưng chúng không di chuyển liên tục. Chúng ta có thể làm gì khác ở đây?
Vì vậy, để giải quyết vấn đề này, chúng tôi lấy một biến có tên là is_on và đặt nó thành screen.exit title[]
1. Bây giờ chúng tôi sẽ tiếp 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 vòng lặp screen.exit title[]
2
Bây giờ, chúng ta có cơ hội di chuyển chú rùa của mình liên tục với 30 điểm ảnh trong mỗi bước
Đây là kết quả
Nó đang chuyển động như một chiếc máy bay bởi vì chúng tôi đặt screen.exit title[]
3 thành 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 đó?
Vì vậy, chúng ta có thể lấy một biến toàn cục có tên 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 cá thể rùa mới, chúng ta có thể đưa rùa mới sinh của mình vào danh sách all_turtle toàn cầu này. 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
Bây giờ chúng tôi có tất cả rùa của chúng tôi. Vì vậy, trong khi biến screen.exit title[]
5 của chúng ta đúng, chúng ta có thể nói screen.exit title[]
6. 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ừ biến toàn cục all_turle này và sau đó di chuyển chúng screen.exit title[]
3 x 10 pixel
Hãy xem kết quả cho đến bây giờ
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 ngẫu nhiên mới và đặt nó thành screen.exit title[]
8. Nó sẽ trả về giá trị từ 0 đến 7 ngẫu nhiên. Bạn phải nhập ngẫu nhiên ở trên cùng. Cuối cùng chuyển biến random_pace này sang phương thức screen.exit title[]
0 như screen.bgpic
0
Đây là kết quả
🏁 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 screen.bgpic
1 screen.bgpic
2 > 330, đặt is_on = screen.bgpic
3, nếu không chúng tôi cần tiếp tục thực hiện chương trình của mình
👥 Cách nhắc người dùng tham gia đặt cược của họ
Chúng tôi đã hoàn thành với 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.bgpic
4 và với một trình giữ chỗ 'Nhập cược của bạn'. Chúng tôi cũng sẽ screen.bgpic
5 người dùng "màu con rùa nào" và lưu trữ nó trong một biến toàn cục user_bet
Sau đó, chúng tôi lấy một người chiến thắng biến. Chúng tôi kiểm tra xem screen.bgpic
6 sẽ đến từ màu đầu vào của người dùng. Chúng tôi in Bạn đã thắng, Nếu không, 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
🎐 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?
S0, ở đây trên cùng. Chúng tôi lấy hai biến toàn cầu screen.bgpic
7 và screen.bgpic
8. 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 canvas thay vì in nó trong thiết bị đầu cuối
Để làm điều này, chúng tôi viết screen.bgpic
9 và bỏ qua câu lệnh in cùng với font=FONT và align=ALIGN. Ngược lại, chúng ta cần hiển thị văn bản "Bạn đã mất" với cùng một biến FONT và ALIGN. Hãy xem, đây là lợi ích của việc sử dụng các biến toàn cầu.
Cuối cùng, hãy chạy mã này một lần nữa. Hãy nói rằng rùa đỏ sẽ là người chiến thắng. Nhưng, 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 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à thiết lập màu rùa bằng cách sử dụng phương thức Turtle[]
0
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, đâ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 tweet
mã hóa hạnh phúc
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Full-stack Developer • Tác giả • YouTuber console. log["Lập trình với Shahan"]
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu