親自動手實現Python+pygame中國象棋游戲


功能1:實現游戲整體界面顯示

一、創建基本的結構

代碼如下:

import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))

    # 主循環
    while True:
        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

運行效果:

二、顯示背景

1. 添加圖片

點擊如下地址下載素材

https://www.itprojects.cn/58.html

2. 顯示一張圖片

代碼如下

import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))
    # 游戲背景圖片
    background_img = pygame.image.load("images/bg.jpg")

    # 主循環
    while True:
        # 顯示游戲背景
        screen.blit(background_img, (0, 0))

        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

運行效果

3. 通過多張圖片實現整體背景

import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))
    # 游戲背景圖片
    background_img = pygame.image.load("images/bg.jpg")

    # 主循環
    while True:
        # 顯示游戲背景
        screen.blit(background_img, (0, 0))
        screen.blit(background_img, (0, 270))
        screen.blit(background_img, (0, 540))

        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

三、鼠標關閉窗口

import sys
import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))
    # 游戲背景圖片
    background_img = pygame.image.load("images/bg.jpg")

    # 主循環
    while True:
        # 事件檢測(例如點擊了鍵盤、鼠標等)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()  # 退出程序

        # 顯示游戲背景
        screen.blit(background_img, (0, 0))
        screen.blit(background_img, (0, 270))
        screen.blit(background_img, (0, 540))

        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

運行效果

四、顯示棋盤

代碼

import sys
import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))
    # 游戲背景圖片
    background_img = pygame.image.load("images/bg.jpg")
    # 游戲棋盤
    chessboard_img = pygame.image.load("images/bg.png")

    # 主循環
    while True:
        # 事件檢測(例如點擊了鍵盤、鼠標等)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()  # 退出程序

        # 顯示游戲背景
        screen.blit(background_img, (0, 0))
        screen.blit(background_img, (0, 270))
        screen.blit(background_img, (0, 540))

        # 顯示棋盤
        screen.blit(chessboard_img, (50, 50))

        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

運行效果

五、顯示棋子

代碼

import sys
import time
import pygame


def main():
    # 初始化pygame
    pygame.init()
    # 創建用來顯示畫面的對象(理解為相框)
    screen = pygame.display.set_mode((750, 667))
    # 游戲背景圖片
    background_img = pygame.image.load("images/bg.jpg")
    # 游戲棋盤
    chessboard_img = pygame.image.load("images/bg.png")
    # 棋子
    chessboard_map = [
        ["b_c", "b_m", "b_x", "b_s", "b_j", "b_s", "b_x", "b_m", "b_c"],
        ["", "", "", "", "", "", "", "", ""],
        ["", "b_p", "", "", "", "", "", "b_p", ""],
        ["b_z", "", "b_z", "", "b_z", "", "b_z", "", "b_z"],
        ["", "", "", "", "", "", "", "", ""],
        ["", "", "", "", "", "", "", "", ""],
        ["r_z", "", "r_z", "", "r_z", "", "r_z", "", "r_z"],
        ["", "r_p", "", "", "", "", "", "r_p", ""],
        ["", "", "", "", "", "", "", "", ""],
        ["r_c", "r_m", "r_x", "r_s", "r_j", "r_s", "r_x", "r_m", "r_c"],
    ]
    for row, line in enumerate(chessboard_map):
        for col, chess_name in enumerate(line):
            if chess_name:
                # 將創建的棋子添加到屬性map中
                chessboard_map[row][col] = [pygame.image.load("images/" + chess_name + ".png"), (50 + col * 57, 50 + row * 57)]
            else:
                chessboard_map[row][col] = None

    # 主循環
    while True:
        # 事件檢測(例如點擊了鍵盤、鼠標等)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()  # 退出程序

        # 顯示游戲背景
        screen.blit(background_img, (0, 0))
        screen.blit(background_img, (0, 270))
        screen.blit(background_img, (0, 540))

        # 顯示棋盤
        screen.blit(chessboard_img, (50, 50))

        # 顯示棋盤上的所有棋子
        for line_chess in chessboard_map:
            for chess in line_chess:
                if chess:
                    screen.blit(chess[0], chess[1])

        time.sleep(0.1)

        # 顯示screen這個相框的內容(此時在這個相框中的內容像照片、文字等會顯示出來)
        pygame.display.update()


if __name__ == '__main__':
    main()

運行效果

更多步驟

更多步驟請訪問 [https://www.itprojects.cn/web/material/details.html?id=8]
(https://www.itprojects.cn/web/material/details.html?id=8)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM