Làm game với Python

Đ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ăng

trong đó[]

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ình

từ bỏ[]

Được sử dụng để hủy khởi tạo mọi thứ

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ện

Mặt. lấp đầy[]

Sẽ lấp đầy bề mặt với một màu đồng nhất

thời gian. Cái đồng hồ[]

Giúp theo dõi thời gian

nét chữ. SysFont[]

Sẽ tạo phông chữ Pygame từ tài nguyên phông chữ Hệ thống

Tạ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

Hiển thị Điểm

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.  

Bạn có thể tạo trò chơi bằng Python không?

Do đó, Python cũng là một ngôn ngữ lý tưởng để bạn bắt đầu cuộc phiêu lưu tạo trò chơi , bất kể bạn đã thông thạo ngôn ngữ này hay chưa. . Do cú pháp thân thiện với người mới của Python, các nhà phát triển có thể tập trung vào những điều cơ bản của lập trình trò chơi, chứ không phải sự phức tạp của chính ngôn ngữ này.

Python có thể tạo trò chơi 3D không?

Có thể xây dựng một trò chơi 3D phức tạp chỉ bằng Python không? . Python không có hiệu suất cần thiết. Nó có thể hữu ích như một ngôn ngữ kịch bản nếu nó được tích hợp vào một công cụ, nhưng ngay cả khi đó LUA vẫn là một lựa chọn tốt hơn. Not really. Python just doesn't have the performance necessary. It can be useful as a scripting language if it were integrated into an engine, but even then LUA is a better choice.

Chủ Đề