Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan permainan mengelak Tetris berdasarkan Python
Tetris ialah permainan teka-teki klasik, pertama kali dibangunkan oleh Alexei Pajitnov Rusia pada tahun 1984. Dikatakan bahawa inspirasinya datang dari pengalaman zaman kanak-kanaknya dalam membina blok. Permainan ini mula-mula menjadi popular di komputer di Kesatuan Soviet dan kemudian menjadi popular di seluruh dunia. Niat reka bentuk asalnya adalah untuk melatih kelajuan reaksi pemain dan imaginasi spatial melalui permainan ini.
Bagi ramai orang yang lahir pada tahun 1980-an, Tetris adalah kenangan zaman remaja mereka. Pada masa itu, orang tidak mempunyai banyak jenis permainan untuk dipilih sekarang, dan Tetris adalah salah satu permainan yang paling popular. Orang sering berkumpul untuk bermain Tetris di Famicom atau konsol permainan lain, dan menghabiskan berjam-jam bersama-sama. Pengalaman permainan seperti ini bukan sahaja permainan itu sendiri, tetapi juga komunikasi dan interaksi antara orang, yang telah menjadi kenangan berharga bagi ramai orang.
Saya tiada apa-apa nak buat baru-baru ini, jadi saya bermain sedikit permainan mengelak saya harap ia akan membantu dan memberi inspirasi kepada rakan-rakan yang melihatnya. Sudah tentu, hanya fungsi mudah dilaksanakan di sini, dan ia juga memberi ruang kepada rakan lain untuk mengubah suai atau mengembangkan semula.
Mari kita lihat pelaksanaan kod.
import pygame import random # 初始化 Pygame pygame.init() # 设置游戏窗口大小和标题 win_width, win_height = 640, 480 win = pygame.display.set_mode((win_width, win_height)) pygame.display.set_caption("小游戏") # 设置游戏颜色 black = (0, 0, 0) white = (255, 255, 255) red = (255, 0, 0) # 设置关键物属性 man_width, man_height = 50, 100 man_x, man_y = win_width // 2 - man_width // 2, win_height - man_height man_vel = 5 # 设置障碍物属性 obstacle_width, obstacle_height = 50, 50 obstacle_x, obstacle_y = random.randint(0, win_width - obstacle_width), 0 obstacle_vel = 2 # 设置字体和文本 font = pygame.font.SysFont(None, 30) score_text = font.render("得分: 0", True, white) # 初始化分数和帧率 score = 0 fps = 30 clock = pygame.time.Clock() # 游戏循环 game_over = False while not game_over: # 设置帧率 clock.tick(fps) # 检测事件 for event in pygame.event.get(): if event.type == pygame.QUIT: game_over = True # 获取键盘输入 keys = pygame.key.get_pressed() if keys[pygame.K_LEFT] and man_x > 0: man_x -= man_vel if keys[pygame.K_RIGHT] and man_x < win_width - man_width: man_x += man_vel # 移动障碍物 obstacle_y += obstacle_vel # 判断是否碰撞 if obstacle_y > man_y: if man_x < obstacle_x < man_x + man_width or man_x < obstacle_x + obstacle_width < man_x + man_width: game_over = True # 判断障碍物是否移出屏幕 if obstacle_y > win_height: obstacle_x, obstacle_y = random.randint(0, win_width - obstacle_width), 0 score += 1 score_text = font.render("得分: " + str(score), True, white) # 绘制屏幕 win.fill(black) pygame.draw.rect(win, red, (man_x, man_y, man_width, man_height)) pygame.draw.rect(win, white, (obstacle_x, obstacle_y, obstacle_width, obstacle_height)) win.blit(score_text, (10, 10)) pygame.display.update() # 退出 Pygame pygame.quit()
Rendering
Dalam kod sampel ini, kami menggunakan fungsi clock.tick(fps) untuk mengehadkan Permainan kadar bingkai ialah fps, yang mengawal kepantasan permainan berjalan. Dalam gelung permainan, gunakan fungsi pygame.time.Clock().tick(fps) untuk menjeda permainan untuk tempoh masa selepas setiap gelung tamat supaya kadar bingkai permainan tidak terlalu tinggi.
Selain itu, kami juga menggunakan modul fon Pygame untuk memaparkan markah Setiap kali skor dijaringkan, teks skor akan dipaparkan semula dan paparan dikemas kini.
Selepas pengubahsuaian ini, permainan harus berjalan pada kelajuan yang agak stabil Anda boleh melaraskan kadar bingkai mengikut keperluan untuk mengawal kelajuan larian permainan. Anda boleh mengubah suai dan melanjutkan kod mengikut keperluan anda untuk mencapai permainan yang lebih kompleks dan menarik.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan permainan mengelak Tetris berdasarkan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!