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