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

功能1:實現遊戲總體界面顯示

1、建立基本的結構

代碼以下:html

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()

運行效果:python

2、顯示背景

1. 添加圖片

點擊以下地址下載素材ui

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

2. 顯示一張圖片

代碼以下code

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()

運行效果htm

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()

3、鼠標關閉窗口

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()

運行效果對象

4、顯示棋盤

代碼blog

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()

運行效果遊戲

5、顯示棋子

代碼事件

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://book.itprojects.cn/01-b29fd8caf9b9ad57558c3a7c84c3de97/index.html

相關文章
相關標籤/搜索