Làm thế nào để bạn mã hóa một trò chơi nhảy trong python?

Trò chơi nhảy từ khóa [nhảy] là một trò chơi soạn thảo tốc độ giúp phát triển hơn nữa tốc độ soạn thảo của người chơi

Mục tiêu của Dự án Python trò chơi nhảy bàn phím [hop] là chế tạo một trò chơi nảy trên bảng điều khiển giúp người chơi tăng tốc. Chúng tôi sử dụng các mô-đun pygame, tùy ý và thời gian trong tác vụ này

Trong nhiệm vụ này, người chơi cần nhấn các phím tương tự với các chữ cái hiển thị trên màn hình trò chơi. Nếu người chơi phạm sai lầm trong khi sáng tác, trò chơi sẽ chuyển qua

Điều kiện tiên quyết của dự án

  • Để xây dựng nhiệm vụ trò chơi hop từ khóa, chúng tôi yêu cầu pygame, mô-đun không đều và thời gian cũng như các ý tưởng cơ bản của python
  • Mô-đun Pygame được sử dụng để tạo ứng dụng và trò chơi đa phương tiện
  • Các mô-đun tùy ý được sử dụng để tạo các số không đều
  • Mô-đun thời gian cung cấp tính hữu ích như giữ nguyên trong quá trình thực thi và hơn nữa đánh giá hiệu quả của mã
  • Để cài đặt, chúng ta cần lệnh cài đặt pip trong bảng điều khiển nhắc
pip install pygame
pip install random

Cấu trúc tệp dự án [Trò chơi nhảy bàn phím]

  • Nhập các mô-đun khác nhau như Cài đặt Pygame và Tạo cửa sổ trò chơi
  • Vòng lặp chính
  • Xác định chức năng
  • Khởi tạo cửa sổ

Cách tiếp cận để bắt đầu phát triển trò chơi, được thực hiện qua nhiều giai đoạn

1. Nhập các Mô-đun khác nhau

import pygame
import random
import time

2. Đang khởi tạo cửa sổ yêu cầu

đoạn mã. Điều này về cơ bản cho thấy logic của Khởi tạo cửa sổ bắt buộc [không có nghĩa là để thực thi], một phần của Mã nguồn

import pygame
import random
import time
pygame.init []
WIDTH1 = 855
HEIGHT1 = 650
black= [0,0,0]
gameDisplay = pygame.display.set_mode [ [WIDTH1, HEIGHT1]]   #setting game display size
background = pygame.image.load ['keyback.jpg']
background = pygame.transform.scale [background,  [WIDTH1, HEIGHT1]]  #scale image
font = pygame.font.Font ['comic.ttf', 45]

Giải thích đoạn trích trên

  • để cài đặt pygame pygame. trong đó []
  • để đặt phụ đề của cửa sổ trò chơi pygame. trưng bày. set_caption
  • sử dụng pygame. trưng bày. set_mode để đặt WIDTH1 và HEIGHT1 cho kích thước giới thiệu trò chơi
  • nền tảng trò chơi được thiết lập bởi pygame. hình ảnh. tải, được sử dụng để thiết lập hình ảnh nền tảng
  • pygame. biến đổi. tỷ lệ được sử dụng để chia tỷ lệ hình ảnh theo khía cạnh cần thiết

3. Định nghĩa hàm

đoạn mã. Điều này về cơ bản cho thấy logic của chức năng xác định [không có nghĩa là để thực thi], một phần của Mã nguồn

word_speed11= 0.3
scores = 0
def new_word []:
    global displayword, yourword, x_cor1, y_cor1, text, word_speed1
    x_cor1 = random.randint [300,700]    
    y_cor1 = 255  #y - cor
    word_speed11+ = 0.10
    yourword1= ''
    words = open ["words.txt"].read [].split [', ']
    displayword1= random.choice [words]
new_word []
font_name1 = pygame.font.match_font ['comic.ttf']
def draw_text [display, text, size, x, y]:
    font = pygame.font.Font [font_name1, size]
    text_surface = font.render [text, True, black]
    text_rect = text_surface.get_rect []
    text_rect.midtop =  [x, y]
    gameDisplay.blit [text_surface, text_rect]
def new_word []:
    global displayword, yourword, x_cor1, y_cor1, text, word_speed1
    x_cor1 = random.randint [300, 700]     #randomly choose x - cor between 300 - 700
    y_cor1 = 255  
    word_speed11+ = 0.10
    yourword1= ''
    words = open ["words.txt"].read [].split [', ']
    displayword1= random.choice [words]
new_word []
def game_front_screen []:
    gameDisplay.blit [background,  [0,0]]
    if not game_over1 :
        draw_text [gameDisplay, "GAME OVER!", 95, WIDTH1 / 2, HEIGHT1 / 4]
        draw_text [gameDisplay,"Scores : " + str [scores], 70, WIDTH1 / 2, HEIGHT1 /2]
    else:
        draw_text [gameDisplay, "Press any key to begin!", 54, WIDTH1 / 2, 550]
    pygame.display.flip []
    waiting = True
    while waiting:
        for event in pygame.event.get []:
            if event.type = = pygame.QUIT:
                pygame.quit []
            if event.type = = pygame.KEYUP:
                waiting = False
game_over1 = True
game_start1 = True
while True:
    if game_over1:
        if game_start1:
            game_front_screen []
        game_start1 = False
    game_over1 = False

Giải thích đoạn trích trên

  • dung lượng new_word[] sẽ ngẫu nhiên lấy từ từ. txt và hơn nữa giới thiệu hướng x và y của từ
  • draw_text [] dung lượng sẽ hỗ trợ thu hút văn bản ở chế độ xem đơn giản với kiểu và kích thước văn bản nhất định
  • chiến lược get_rect[] trả về một đối tượng rect
  • blit[] dùng để vẽ hình hoặc soạn thảo văn bản trên màn hình tại vị trí định sẵn
  • game_front_screen[] có tác dụng hiển thị màn hình phía trước game và màn hình game over
  • pygame. Sự kiện. get[] sẽ trả lại tất cả sự kiện đã lưu trong dòng sự kiện pygame
  • pygame. trưng bày. flip [] sẽ chỉ làm mới một phần của màn hình nhưng trong trường hợp không có tranh chấp nào vượt qua, nó sẽ làm mới toàn bộ màn hình
  • loại sự kiện tương đương được sử dụng để dừng cửa sổ pygame
  • Sự kiện. Sự cố KEYUP xảy ra khi một phím điều khiển được bóp và chuyển

4. Vòng lặp chính

đoạn mã. Điều này về cơ bản cho thấy logic của giai đoạn vòng lặp chính [không có nghĩa là để thực thi], một phần của Mã nguồn

import pygame
import random
import time
game_over1 = True
game_start1 = True
while True:
    if game_over1:
        if game_start1:
            game_front_screen []
        game_start1 = False
    game_over1 = False
    background = pygame.image.load ['teacher - background.jpg']
    background = pygame.transform.scale [background,  [WIDTH1, HEIGHT1]]
    character = pygame.image.load ['char.jpg']
    character = pygame.transform.scale [character,  [55,55]]
    wood = pygame.image.load ['wood - .png']
    wood = pygame.transform.scale [wood,  [95,55]]
    gameDisplay.blit [background, [0,0]]
    gameDisplay.blit [wood, [x_cor1 - 55, y_cor1+15]]
    gameDisplay.blit [character, [x_cor1 - 100, y_cor1]]
    draw_text [gameDisplay, str [displayword], 45, x_cor1, y_cor1]
    draw_text [gameDisplay, 'Scores:'+str [scores], 45, WIDTH1/2 , 5]
def new_word []:
    global displayword, yourword, x_cor1, y_cor1, text, word_speed1
    x_cor1 = random.randint [300, 700]     #randomly choose x - cor between 300 - 700
    y_cor1 = 255  
    word_speed11+ = 0.10
    yourword1= ''
    words = open ["words.txt"].read [].split [', ']
    displayword1= random.choice [words]
new_word []
    y_cor1 + = word_speed1
   
    for event in pygame.event.get []:
        if event.type = = pygame.QUIT:
            pygame.quit []
            quit []
        elif event.type = = pygame.KEYDOWN:
            yourword1+ = pygame.key.name [event.key]
            if displayword.startswith [yourword]:
                if displayword1= = yourword:
                    scores + = len [displayword]
                    new_word []
            else:
                game_front_screen []
                time.sleep [2]
                pygame.quit []
               
    if y_cor1 < HEIGHT1 - 5:
        pygame.display.update []
    else:
        game_front_screen []

Chức năng logic chính

  • Chúng tôi chăm sóc các dịp quan trọng
  • Di chuyển các phím trên màn hình
  • chúng tôi không cần bất kỳ phím không hợp lệ nào để di chuyển vào màn hình
  • Giả sử hai phím được bóp cùng một lúc
  • tiêu đề tất cả các trong khi

Mã nguồn hợp nhất hoàn chỉnh

#importing modules
import pygame
import random
import time
#initializing window
pygame.init []
WIDTH1 = 855
HEIGHT1 = 650
black= [0,0,0]
gameDisplay = pygame.display.set_mode [ [WIDTH1, HEIGHT1]]
pygame.display.set_caption ['your Keyboard Jumping Game ']
background = pygame.image.load ['keyback.jpg']
background = pygame.transform.scale [background,  [WIDTH1, HEIGHT1]]
font = pygame.font.Font ['comic.ttf', 45]
## function to get words randomly
word_speed11= 0.3
scores = 0
def new_word []:
    global displayword, yourword, x_cor1, y_cor1, text, word_speed1
    x_cor1 = random.randint [300, 700]     #randomly choose x - cor between 300 - 700
    y_cor1 = 255  
    word_speed11+ = 0.10
    yourword1= ''
    words = open ["words.txt"].read [].split [', ']
    displayword1= random.choice [words]
new_word []
def game_over1 []:
            my_font1= pygame.font.SysFont ['times new roman', 51]
            game_over1_surface = my_font.render ['Your Scores is : ' + str [Scores], True, red_color]
            game_over1_rect = game_over1_surface.get_rect []
            game_over1_rect.midtop =  [window_x1/2, window_y1/4]
            game_window.blit [game_over1_surface, game_over1_rect]
            pygame.display.flip []
            time.sleep [2]
            pygame.quit []
            quit []
#function drawing text
font_name1 = pygame.font.match_font ['comic.ttf']
def draw_text [display, text, size, x, y]:
    font = pygame.font.Font [font_name1, size]
    text_surface = font.render [text, True, black]
    text_rect = text_surface.get_rect []
    text_rect.midtop =  [x, y]
    gameDisplay.blit [text_surface, text_rect]
def game_front_screen []:
    gameDisplay.blit [background, [0,0]]
    if not game_over1 :
        draw_text [gameDisplay, "GAME OVER!", 95, WIDTH1 / 2, HEIGHT1 / 4]
        draw_text [gameDisplay,"Scores : " + str [scores], 70, WIDTH1 / 2, HEIGHT1 /2]
    else:
        draw_text [gameDisplay, "Press a key to begin!", 54, WIDTH1 / 2, 550]
    pygame.display.flip []
    waiting = True
    while waiting: 
        for event in pygame.event.get []:
            if event.type = = pygame.QUIT:
                pygame.quit []
            if event.type = = pygame.KEYUP:
                waiting = False
#main looping
game_over1 = True
game_start1 = True
while True:
    if game_over1:
        if game_start1:
            game_front_screen []
        game_start1 = False
    game_over1 = False
   
    background = pygame.image.load ['teacher - background.jpg']
    background = pygame.transform.scale [background,  [WIDTH1, HEIGHT1]]
    character = pygame.image.load ['char.jpg']
    character = pygame.transform.scale [character,  [55,55]]
    wood = pygame.image.load ['wood - .png']
    wood = pygame.transform.scale [wood,  [95,55]]
    gameDisplay.blit [background,  [0,0]]
    y_cor1 + = word_speed1
    gameDisplay.blit [wood, [x_cor1 - 55,y_cor1+15]]
    gameDisplay.blit [character, [x_cor1 - 100,y_cor1]]
    draw_text [gameDisplay, str [displayword], 45, x_cor1, y_cor1]
    draw_text [gameDisplay, 'Scores:'+str [scores], 45, WIDTH1/2 , 5]
   
    for event in pygame.event.get []:
        if event.type = = pygame.QUIT:
            pygame.quit []
            quit []
        elif event.type = = pygame.KEYDOWN:
            yourword1+ = pygame.key.name [event.key]
            if displayword.startswith [yourword]:
                if displayword1= = yourword:
                    scores + = len [displayword]
                    new_word []
            else:
                game_front_screen []
                time.sleep [2]
                pygame.quit []
               
    if y_cor1 < HEIGHT1 - 5:
        pygame.display.update []
    else:
        game_front_screen []

Giải trình

Trong vòng tròn nguyên tắc này, giả sử rằng các chữ cái hiển thị trên màn hình trò chơi tương đương với chữ cái bạn đã bóp thì điểm số của bạn sẽ tăng lên và điều này sẽ tiếp tục, tuy nhiên nếu chữ cái bị bóp của bạn không tương đương với chữ cái trên màn hình giới thiệu thì

đầu ra

Ảnh chụp màn hình đầu ra được trình bày dưới đây

Bản tóm tắt

Với cam kết này trong Python, chúng tôi đã thúc đẩy trò chơi một cách hiệu quả. Chúng tôi đã sử dụng thời gian nổi tiếng và các mô-đun tùy ý để cung cấp chương trình của mình. Thực hiện các khả năng khác nhau và sử dụng các vòng kết nối đã giúp chúng tôi hiểu rõ hơn về các nguyên tắc cơ bản của python

Chúng tôi đã thúc đẩy hiệu quả dự án python trò chơi bị trả lại bảng điều khiển. Chúng tôi đã sử dụng pygame nổi tiếng và các mô-đun tùy ý. Chúng tôi đã tìm ra cách tùy ý tạo từ. Dọc theo những dòng này, chúng tôi xây dựng một trò chơi bị trả lại trên bảng điều khiển. Tôi thực sự muốn tin rằng bạn đánh giá cao việc xây dựng nhiệm vụ trò chơi này

Có chức năng nhảy trong Python không?

Câu lệnh nhảy Python [ngắt, tiếp tục và vượt qua] . Jump statements in python are used to alter the flow of a loop like you want to skip a part of a loop or terminate a loop.

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

Tạo trò chơi máy tính của riêng bạn bằng Python là một cách tuyệt vời để học ngôn ngữ này . Để xây dựng trò chơi, bạn sẽ cần sử dụng nhiều kỹ năng lập trình cốt lõi. Các loại kỹ năng mà bạn sẽ thấy trong lập trình thực tế.

Mã của trò chơi Doodle Jump là gì?

Chủ đề và nhân vật

Chủ Đề