Mục lục:

Tạo trò chơi đua xe đầu tiên của bạn: 10 bước
Tạo trò chơi đua xe đầu tiên của bạn: 10 bước

Video: Tạo trò chơi đua xe đầu tiên của bạn: 10 bước

Video: Tạo trò chơi đua xe đầu tiên của bạn: 10 bước
Video: Nấm lùn chạy xe 2024, Tháng bảy
Anonim
Image
Image
Hình ảnh
Hình ảnh

Nếu bạn đã thực hiện một số mã hóa Python và muốn viết một trò chơi mà bạn có thể có trên Pygame Zero.

Trong hướng dẫn này, chúng tôi sẽ viết một trò chơi đua xe đơn giản.

Bước 1: Tổng quan rộng

Mô-đun Pygame bổ sung nhiều chức năng giúp bạn viết trò chơi bằng Python.

Pygame Zero tiến thêm một bước nữa để cho phép bạn bỏ qua quá trình rườm rà để tạo tất cả các vòng lặp trò chơi đó và thiết lập cấu trúc chương trình của bạn.

Pygame Zero là một lựa chọn tuyệt vời cho bất kỳ ai muốn bắt đầu viết trò chơi máy tính trên Raspberry Pi hoặc bất kỳ máy Linux nào.

Có thể bạn sẽ cần:

  • Máy chạy hệ điều hành Linux
  • Trình soạn thảo để viết chương trình python
  • Bàn phím
  • Một số trí tưởng tượng

Các tập tin:

github.com/AhmNouira/-Racing-Game

Bước 2: Điều kiện tiên quyết

Đầu tiên, tôi sẽ sử dụng máy tính xách tay của mình với hệ điều hành Ubuntu 18.04. Sau đó, chúng tôi sẽ chạy trò chơi trên Raspberry Pi ở bước 8.

Trước khi tiếp tục với hướng dẫn này, hãy đảm bảo rằng bạn đã đăng nhập với tư cách là người dùng có đặc quyền sudo.

Cài đặt pip cho Python 3

Bắt đầu bằng cách cập nhật danh sách gói bằng lệnh sau:

cập nhật apt sudo

Sử dụng lệnh sau để cài đặt pip cho Python 3:

sudo apt cài đặt python3-pip

xác minh cài đặt bằng cách kiểm tra phiên bản pip:

pip3 - phiên bản

Cài đặt Pygame Zero

pip3 cài đặt pgzero --user

Điều này cũng sẽ cài đặt Pygame. Các gói Pygame được biên dịch trước

Vì vậy, bước đầu tiên trong hành trình của bạn sẽ là mở Python 3 IDLE hoặc trình chỉnh sửa python yêu thích của bạn.

Bước 3: "Xin chào thế giới" trong Pygame Zero

Theo mặc định, cửa sổ Pygame Zero mở ra ở kích thước rộng 800 pixel x cao 600 pixel. Bạn có thể tùy chỉnh

kích thước cửa sổ của bạn, có hai biến định sẵn mà bạn có thể đặt, nếu bạn bao gồm WIDTH = 700 HIGH = 800.

Pygame zero cung cấp các chức năng được xác định trước để xử lý vòng lặp trò chơi thường hoạt động:

Hàm draw ()

Chúng ta có thể viết hàm này vào chương trình của mình giống như cách chúng ta thường định nghĩa một hàm trong Python.

Pygame Zero tuân theo các quy tắc định dạng tương tự như Python, vì vậy bạn sẽ cần chú ý để thụt lề mã của mình một cách chính xác.

#! / usr / bin / python3 # đặt trình thông dịch

import pgzrun # import pgzero module WIDTH = 700 # width of the window HEIGHT = 800 # height of the window def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # lấp đầy màn hình bằng RGB color screen.draw.text ("Hello World!", (270, 320), # draw "Hello World!" color = (255, 255, 255), fontsize = 40) pgzrun.go ()

Trước hết, bạn cần lưu tệp chương trình của mình và đặt tên cho nó.

Sau đó, mở cửa sổ Terminal, đi tới vị trí tệp của bạn và nhập:

./.py

Bước 4: Vẽ diễn viên của bạn

Vẽ diễn viên của bạn
Vẽ diễn viên của bạn

Bây giờ chúng tôi đã thiết lập sân khấu của mình, chúng tôi có thể tạo Diễn viên của mình, họ là các đối tượng động trong Pygame Zero.

Chúng ta có thể tải một Actor bằng cách gõ vào đầu chương trình:

car = Actor ("xe đua")

Trong Pygame Zero, hình ảnh của chúng ta cần được lưu trữ trong một thư mục có tên là hình ảnh, bên cạnh tệp chương trình của chúng tôi. Vì vậy, Actor của chúng tôi sẽ tìm kiếm một tệp hình ảnh trong thư mục hình ảnh có tên là racecar.png. Nó có thể là tệp GIF hoặc JPG, nhưng chúng tôi khuyên bạn nên sử dụng hình ảnh của bạn là tệp-p.webp

Bạn có thể đặt vị trí của nó trên màn hình bằng cách gõ:

car.pos = 350, 560

Sau đó, trong hàm draw (), chúng ta có thể nhập

car.draw () # vẽ xe đua của chúng ta tại vị trí xác định của nó

Toàn bộ chương trình sẽ như thế này:

#! / usr / bin / python3

import pgzrun WIDTH = 700 # chiều rộng của cửa sổ HEIGHT = 800 # chiều cao của ô cửa sổ = Actor ("racecar") car.pos = 350, 560 def draw (): # pygame zero draw function screen.fill ((128, 128, 128)) # điền vào màn hình bằng car.draw () pgzrun.go ()

Kiểm tra chương trình của bạn để đảm bảo rằng chương trình này đang hoạt động.

Bước 5: Kiểm soát tác nhân

Kiểm soát tác nhân
Kiểm soát tác nhân

Khi chúng ta đã có hình vẽ ô tô trên màn hình, bước tiếp theo là cho phép người chơi di chuyển nó.

Chúng ta có thể làm điều này bằng các phím bấm. Chúng ta có thể đọc trạng thái của các khóa này bên trong một hàm được xác định trước khác được gọi là update ().

Hàm update ()

Chức năng này liên tục được kiểm tra trong khi trò chơi đang chạy.

Chúng ta cần viết một số mã để phát hiện các lần nhấn phím của các phím mũi tên và cũng có thể làm gì đó với nó.

Vì vậy, chúng tôi sẽ thêm chức năng này vào chương trình của chúng tôi

def update ():

if keyboard.left: car.x - = 2 if keyboard.right: car.x + = 2 if keyboard.up: car.y - = 2 if keyboard.down: car.y + = 2

Các dòng mã này sẽ di chuyển xe Actor sang trái, phải, tiến và lùi.

Bước 6: Xây dựng đường đi

Xây dựng đường đua
Xây dựng đường đua

Bây giờ chúng ta có một chiếc xe để chúng ta có thể lái, chúng ta cần một đường đi để nó có thể lái tiếp.

Chúng tôi sẽ xây dựng đường đua của mình ngoài Diễn viên, từng hàng một. Chúng tôi sẽ cần lập một số danh sách để theo dõi các Diễn viên mà chúng tôi tạo.

Chúng tôi cũng sẽ cần thiết lập thêm một số biến cho đường đua.

Sau đó, chúng ta hãy tạo một hàm mới có tên makeTrack (), Hàm sẽ thêm một theo dõi Actor ở bên trái và một bên phải, cả hai đều sử dụng hình ảnh bare-p.webp

trackLeft = # danh sách để lưu trữ các barries bên trái

trackRight = # danh sách lưu trữ barries bên phải trackCount = 0 # đếm số lượng barries trackPosition = 350 trackWidth = 150 # width giữa barries bên trái và bên phải def makeTrack (): # hàm tạo một barrie ở bên trái và bên phải trackCount, trackLeft, trackRight, trackPosition, trackWidth trackLeft.append (Actor ("bare", pos = (trackPosition-trackWidth, 0))) trackRight.append (Actor ("bare", pos = (trackPosition + trackWidth, 0))) trackCount + = 1

Điều tiếp theo mà chúng ta cần làm là di chuyển các phần của đường đi xuống màn hình về phía ô tô.

Hãy viết một hàm mới có tên updateTrack (), Hàm này cập nhật vị trí các khối bản nhạc sẽ xuất hiện. Các mảnh bản nhạc được tạo bởi các số ngẫu nhiên nên mỗi lần chơi là khác nhau.

trackDriction = Sai

SPEED = 4 # đặt tốc độ của trò chơi từ nhập ngẫu nhiên randint # nhập lớp randint từ mô-đun ngẫu nhiên def updateTrack (): global trackCount, trackPosition, trackDirection, trackWidth, SPEED b = 0 while b 32: if trackDirection == False: trackPosition + = 16 if trackDirection == True: trackPosition - = 16 if randint (0, 4) == 1: trackDirection = not trackDirection nếu trackPosition> 700 - trackWidth: trackDirection = True nếu trackPosition < trackWidth: trackDirection = False makeTrack () # tạo một bản nhạc mới ở đầu màn hình

Vui lòng tham khảo tệp zip bên dưới có tên "RaceGameDemo".

Nếu chúng tôi chạy mã của chúng tôi vào lúc này, chúng tôi sẽ thấy một đường mòn đi xuống phía ô tô. Vấn đề duy nhất là chúng tôi có thể di chuyển chiếc xe qua các rào cản đường ray và chúng tôi muốn giữ chiếc xe bên trong chúng với một số phát hiện va chạm.

Bước 7: Tai nạn ô tô

Đụng xe
Đụng xe
Đụng xe
Đụng xe
Đụng xe
Đụng xe

Chúng tôi cần đảm bảo rằng ô tô của chúng tôi không chạm vào Actors trên đường đua.

chúng tôi cũng có thể kiểm tra các xung đột bằng phương thức colliderect () trong hàm updateTrack () của chúng tôi.

Trong trò chơi này, chúng tôi sẽ có ba trạng thái khác nhau đối với trò chơi được lưu trữ trong trò chơi biến đổi của chúng tôi

  • gameStatus == 0 # trò chơi đang chạy
  • gameStatus == 1 # vụ tai nạn xe hơi
  • gameStatus == 2 # trò chơi đã kết thúc

Chúng ta sẽ cần thay đổi hàm draw () và hàm update () để phản hồi với biến gameStatus.

Kết thúc chạm

Tất cả những gì chúng ta cần làm bây giờ là hiển thị thứ gì đó nếu gameStatus được đặt thành 1 hoặc 2, ví dụ: chúng ta sẽ hiển thị màu đỏ

cờ, nếu chiếc xe bị rơi. Chúng tôi có thể làm điều đó với mã dưới đây:

screen.blit ("redflag", (230, 230))

Để xem chiếc xe đã về đích hay chưa, chúng ta nên đếm xem có bao nhiêu đoạn đường đua đã được tạo và sau đó có lẽ khi chúng ta đến 200, hãy đặt gameStatus thành 2. Sau đó, hiển thị cờ ca rô:

screen.blit ("finishflag", (230, 230))

Chúng tôi cũng sẽ hiển thị một số văn bản trong màn hình như điểm số hiện tại của trò chơi.

Hãy xem danh sách mã đầy đủ để xem tất cả điều này phù hợp với nhau như thế nào.

Bước 8: Chạy trò chơi trên Raspberry Pi

Chạy trò chơi trên Raspberry Pi
Chạy trò chơi trên Raspberry Pi
Chạy trò chơi trên Raspberry Pi
Chạy trò chơi trên Raspberry Pi

Trên Raspberry Pi pgzero đã được cài đặt theo mặc định kể từ khi phát hành Raspbian Jessie vào tháng 9 năm 2015.

Chỉ cần cập nhật Raspberry Pi của bạn bằng cách sử dụng lệnh:

sudo apt-get cập nhật

Đi tới vị trí tệp của bạn và nhập vào Terminal.

pgzrun.py

Bước 9: Bạn đã thắng?

Có thắng không?
Có thắng không?

Bạn có thể làm cho trò chơi trở nên dễ dàng hơn hoặc khó hơn bằng cách thay đổi biến trackWidth để làm cho đường đua có chiều rộng khác. Bạn có thể thay đổi giá trị của SPEED để làm cho đường chạy nhanh hơn hoặc chậm hơn.

Bước 10: Kết luận

Pygame Zero là một lựa chọn tuyệt vời cho bất kỳ ai muốn bắt đầu viết game trên máy tính.

Nếu bạn có bất kỳ câu hỏi nào, tất nhiên bạn có thể để lại bình luận. Để xem thêm về các tác phẩm của tôi, vui lòng truy cập kênh của tôi:

myYouTube

myTwitter

myLinkedin

Cảm ơn vì đã đọc hướng dẫn này ^^ và chúc một ngày tốt lành. Hẹn gặp lại sau. Ahmed Nouira.

Đề xuất: