Điều đầu tiên bạn cần làm để tạo trò chơi bằng Pygame là cài đặt nó trên hệ thống của bạn. Để làm điều đó, bạn chỉ cần sử dụng lệnh sau
pip cài đặt pygame
Khi đã xong, chỉ cần nhập Pygame và bắt đầu phát triển trò chơi của bạn. Trước khi tiếp tục, hãy xem các chức năng Pygame đã được sử dụng trong Trò chơi rắn này cùng với mô tả của chúng
Mô tả chức năngtrong đó[]
Khởi tạo tất cả các mô-đun Pygame đã nhập [trả về một bộ dữ liệu cho biết quá trình khởi tạo thành công và thất bại]trưng bày. đặt chế độ[]
Lấy một bộ hoặc một danh sách làm tham số của nó để tạo bề mặt [ưu tiên bộ]cập nhật[]
Cập nhật màn hìnhtừ bỏ[]
set_caption[]
Sẽ đặt văn bản chú thích trên đầu màn hình hiển thịSự kiện. lấy[]
Trả về danh sách tất cả các sự kiệnMặt. lấp đầy[]
Sẽ lấp đầy bề mặt với một màu đồng nhấtthời gian. Cái đồng hồ[]
Giúp theo dõi thời giannét chữ. SysFont[]
Sẽ tạo phông chữ Pygame từ tài nguyên phông chữ Hệ thốngTạo màn hình
Để tạo màn hình bằng Pygame, bạn sẽ cần sử dụng màn hình. hàm set_mode[]. Ngoài ra, bạn sẽ phải sử dụng các phương thức init[] và quit[] để khởi tạo và hủy khởi tạo mọi thứ ở đầu và cuối mã. Phương thức update[] được sử dụng để cập nhật bất kỳ thay đổi nào được thực hiện đối với màn hình. Có một phương pháp khác tôi. e flip[] hoạt động tương tự như hàm update[]. Sự khác biệt là phương thức update[] chỉ cập nhật những thay đổi được thực hiện [tuy nhiên, nếu không có tham số nào được truyền, nó sẽ cập nhật toàn bộ màn hình] nhưng phương thức flip[] sẽ thực hiện lại toàn bộ màn hình
MÃ SỐ
import pygame pygame.init[] dis=pygame.display.set_mode[[400,300]] pygame.display.update[] pygame.quit[] quit[]
ĐẦU RA
Nhưng khi bạn chạy mã này, màn hình sẽ xuất hiện, nhưng nó cũng sẽ đóng lại ngay lập tức. Để khắc phục điều đó, bạn nên tận dụng vòng lặp trò chơi bằng vòng lặp while trước khi tôi thực sự thoát khỏi trò chơi như sau
import pygame pygame.init[] dis=pygame.display.set_mode[[400,300]] pygame.display.update[] pygame.display.set_caption['Snake game by Edureka'] game_over=False while not game_over: for event in pygame.event.get[]: print[event] #prints out all the actions that take place on the screen pygame.quit[] quit[]
Khi bạn chạy mã này, bạn sẽ thấy rằng màn hình mà bạn đã thấy trước đó không thoát và đồng thời, nó trả về tất cả các hành động diễn ra trên đó. Tôi đã làm điều đó bằng cách sử dụng sự kiện. get[] hàm. Ngoài ra, tôi đã đặt tên cho màn hình là “Trò chơi rắn của Edureka” bằng cách sử dụng màn hình. hàm set_caption[]
ĐẦU RA
Cuối cùng nhưng không kém phần quan trọng, bạn sẽ cần hiển thị điểm của người chơi. Để làm điều này, tôi đã tạo một chức năng mới là “Your_score”. Hàm này sẽ hiển thị chiều dài của con rắn trừ đi 1 vì đó là kích thước ban đầu của con rắn
import pygame import time import random pygame.init[] white = [255, 255, 255] yellow = [255, 255, 102] black = [0, 0, 0] red = [213, 50, 80] green = [0, 255, 0] blue = [50, 153, 213] dis_width = 600 dis_height = 400 dis = pygame.display.set_mode[[dis_width, dis_height]] pygame.display.set_caption['Snake Game by Edureka'] clock = pygame.time.Clock[] snake_block = 10 snake_speed = 15 font_style = pygame.font.SysFont["bahnschrift", 25] score_font = pygame.font.SysFont["comicsansms", 35] def Your_score[score]: value = score_font.render["Your Score: " + str[score], True, yellow] dis.blit[value, [0, 0]] def our_snake[snake_block, snake_list]: for x in snake_list: pygame.draw.rect[dis, black, [x[0], x[1], snake_block, snake_block]] def message[msg, color]: mesg = font_style.render[msg, True, color] dis.blit[mesg, [dis_width / 6, dis_height / 3]] def gameLoop[]: game_over = False game_close = False x1 = dis_width / 2 y1 = dis_height / 2 x1_change = 0 y1_change = 0 snake_List = [] Length_of_snake = 1 foodx = round[random.randrange[0, dis_width - snake_block] / 10.0] * 10.0 foody = round[random.randrange[0, dis_height - snake_block] / 10.0] * 10.0 while not game_over: while game_close == True: dis.fill[blue] message["You Lost! Press C-Play Again or Q-Quit", red] Your_score[Length_of_snake - 1] pygame.display.update[] for event in pygame.event.get[]: if event.type == pygame.KEYDOWN: if event.key == pygame.K_q: game_over = True game_close = False if event.key == pygame.K_c: gameLoop[] for event in pygame.event.get[]: if event.type == pygame.QUIT: game_over = True if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: x1_change = -snake_block y1_change = 0 elif event.key == pygame.K_RIGHT: x1_change = snake_block y1_change = 0 elif event.key == pygame.K_UP: y1_change = -snake_block x1_change = 0 elif event.key == pygame.K_DOWN: y1_change = snake_block x1_change = 0 if x1 >= dis_width or x1 < 0 or y1 >= dis_height or y1 < 0: game_close = True x1 += x1_change y1 += y1_change dis.fill[blue] pygame.draw.rect[dis, green, [foodx, foody, snake_block, snake_block]] snake_Head = [] snake_Head.append[x1] snake_Head.append[y1] snake_List.append[snake_Head] if len[snake_List] > Length_of_snake: del snake_List[0] for x in snake_List[:-1]: if x == snake_Head: game_close = True our_snake[snake_block, snake_List] Your_score[Length_of_snake - 1] pygame.display.update[] if x1 == foodx and y1 == foody: foodx = round[random.randrange[0, dis_width - snake_block] / 10.0] * 10.0 foody = round[random.randrange[0, dis_height - snake_block] / 10.0] * 10.0 Length_of_snake += 1 clock.tick[snake_speed] pygame.quit[] quit[] gameLoop[]
ĐẦU RA
Đến đây, chúng ta đã kết thúc bài viết này về Trò chơi rắn trong Python. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong bài viết này. Hãy chắc chắn rằng bạn thực hành càng nhiều càng tốt và hoàn nguyên kinh nghiệm của bạn.
Có một câu hỏi cho chúng tôi?
Để có kiến thức chuyên sâu về bất kỳ công nghệ thịnh hành nào cùng với các ứng dụng khác nhau của nó, bạn có thể đăng ký khóa đào tạo Chứng chỉ Python trực tiếp với sự hỗ trợ 24/7 và quyền truy cập trọn đời.