跳轉到內容

PyGame 指南/準備就緒

來自華夏公益教科書

關於本指南

[編輯 | 編輯原始碼]
Example game screenshot
示例遊戲截圖

本指南涵蓋哪些內容?

首先,本指南涵蓋 Python 語言的基本語法和用法,以防您來自其他語言。如果您已經在 Python 中進行過程式設計,您可以跳過 "Python 快速入門" 部分。

其次,本指南還涵蓋了構建功能性 2D 遊戲所需的 PyGame 基礎知識。"PyGame 快速入門" 快速地介紹了所有基本功能,並提供了示例程式碼。

在掌握 Python 和 PyGame 的基礎知識後,我們將在 "PyGame 菜譜" 中深入構建一些簡單的 2D 遊戲。

最後,有一個 "快速參考" 指南,分別針對 PythonPyGame,之後是 詞彙表,以防您需要回顧本書中使用的任何術語。

先決條件

[編輯 | 編輯原始碼]

我需要具備哪些先前的經驗?如果您之前已經使用面向物件的語言(如 C++、C# 和/或 Java)進行過程式設計,那麼本指南將最適合您。在 "Python 快速入門" 章節中,我將介紹一些 Python 的基礎知識,以便您熟悉其語法,但這並不是一個程式設計入門課程,它不會涵蓋您在之前的課程中會學到的理論和基礎知識。

如果我以前沒有程式設計過怎麼辦?

如果您以前從未參加過程式設計課程,您也許能夠使用本指南開始學習 2D 程式設計,但您會遇到解決問題的難度障礙——但別擔心,網上有很多免費指南可以用來學習!

什麼是 Python 和 PyGame?

[編輯 | 編輯原始碼]
Python Logo
Python 標識

Python 是一種解釋型高階程式語言。在這種情況下,"高階" 指的是更遠離機器程式碼。"高階" 並不意味著它更難——實際上,高階語言通常比 C 等低階語言更容易使用。作為一種語言,Python 可以以面向物件的方式編寫(如果您來自 C++/C#/Java 陣營,應該很熟悉),但也支援其他程式設計正規化——或其他程式碼結構和編寫方式。我更喜歡使用面嚮物件的技術編寫遊戲。

PyGame 是一個可以與 Python 一起使用的庫。庫是預先編寫的程式碼,可以在多個程式中重複使用。這通常包括提供新功能的函式和類。

PyGame 處理以下功能:

  • 載入和繪製圖形
  • 載入和播放聲音
  • 載入字型和繪製文字
  • 檢測鍵盤和滑鼠輸入

此外,PyGame 旨在跨平臺使用,因此您可以在自己的機器上編寫一個遊戲,而您的朋友可以在 Linux、Mac、Windows 甚至移動裝置上執行該遊戲!

設定 Python 和 PyGame

[編輯 | 編輯原始碼]
The PyGame Logo.
PyGame 標識。

下載 PyGame

[編輯 | 編輯原始碼]

PyGame 網站提供了 PyGame 的下載連結,以及入門教程、PyGame 文件,甚至是用 PyGame 製作的遊戲目錄。您建立遊戲後,也可以將您的遊戲放到目錄中!PyGame 網站地址為 pygame.org

對於 Windows,您需要從這裡下載 PyGame 的版本:http://pygame.org/download.shtml

找到 "Windows" 標題並下載標題中包含 "py2.7" 的 PyGame 版本。在撰寫本文時,最新版本為 pygame-1.9.1.win32-py2.7.msi

Python 版本

Python 的版本 2 和版本 3 之間存在很多差異,並且彼此之間並不總是相容。此版本的 PyGame 使用 Python 2.7。

(Windows 指示正在進行中)


(Linux 指示正在進行中)

如果您使用的是 Ubuntu、Linux Mint 或 Debian,則應該能夠透過 Synaptic 包管理器甚至軟體管理器安裝 Python。

搜尋 "pygame",您應該下載 python-pygame 包。它還應該同時安裝 Python 依賴項。


(Mac 指示正在進行中)

對於 Mac,您需要從這裡下載 PyGame 的版本:http://pygame.org/download.shtml

找到 "Macintosh" 標題並下載 py2.7 版本。


下載文字編輯器

[編輯 | 編輯原始碼]

原始碼都是文字,因此您需要一個不錯的文字編輯器來編寫。Windows 預設的記事本是一個很糟糕的程式,因此您應該下載其他工具。

Geany 是一款免費的跨平臺編輯器。您也可以在 Geany 中安裝額外的外掛來自定義它。從以下地址下載:http://www.geany.org/Download/Releases


(文字編輯器說明正在進行中)

測試一下

[編輯 | 編輯原始碼]

讓我們透過一些小的示例程式確保 Python 和 PyGame 能夠正常工作。您可以重新輸入本文件中給出的程式碼,或者從指南庫中下載檔案:bitbucket.org/moosaderllc/rachels-pygame-guide

確保 Python 正常工作

[編輯 | 編輯原始碼]

首先,在您的計算機上建立一個用於 Python 專案的目錄,併為該專案建立一個資料夾(“Testing Python”或其他名稱)。首先,我們將只建立一個 Python 程式,然後我們將建立一個 PyGame 程式。

在 Geany 中,建立一個新檔案,並將其儲存到您的專案目錄中,命名為 simple python.py。確保它具有 .py 副檔名 - 所有 Python 原始檔都必須以它結尾。

Windows 注意!

如果您使用的是 Windows,您的資料夾選項可能設定為預設情況下隱藏副檔名。您可能需要將所有副檔名設定為可見,這樣您就不會感到困惑!

將以下程式碼新增到您的原始檔中

print( "Hello, world!" )
for i in range( 1, 10 ):
  print( i )

如果您使用的是 Geany,您可以透過按 F5 執行 Python 程式。


示例輸出

[編輯 | 編輯原始碼]

執行完成後,Python 程式輸出應該如下所示

Hello, world!
1
2
3
4
5
6
7
8
9


確保 PyGame 正常工作

[編輯 | 編輯原始碼]

接下來,我們將建立一個簡單的 PyGame 測試,以確保我們可以開啟一個視窗。建立一個名為 simple pygame.py 的另一個原始檔。將以下程式碼貼上進去。如果您還不瞭解程式碼,請不要擔心 - 這只是為了確保一切都設定正確!

import pygame, sys
from pygame.locals import *

pygame.init()
timer = pygame.time.Clock()
window = pygame.display.set_mode( ( 300, 300 ) )
pygame.display.set_caption( "Testing out PyGame!" )

# Game loop
while True:
  window.fill( pygame.Color( 50, 200, 255 ) )
  
  # Check input
  for event in pygame.event.get():
    if ( event.type == QUIT ):
      pygame.quit()
      sys.exit()
    
  # Update screen
  pygame.display.update()
  timer.tick( 30 )

執行後,您應該會得到一個帶有淺藍色背景的小視窗。

A small window with a light blue background
帶有淺藍色背景的小視窗

完成操作後,您可以關閉視窗。

如果它沒有工作怎麼辦?!

有時會發生這種情況!如果您在執行程式時遇到問題,您可以執行一些操作來除錯它...

  • 仔細檢查所有文字和符號是否有錯別字 - 這些錯誤很容易出現!還要確保您的大小寫正確,PyThOn 是 CaSe SeNsItIvE 的!
  • 中下載檔案,並嘗試執行它。比較我的程式碼和您的程式碼,看看有什麼不同。
  • 搜尋您收到的錯誤訊息 - 很可能其他人也遇到過同樣的問題!


如何從庫中下載檔案?

您可以在以下連結找到庫:https://bitbucket.org/moosaderllc/rachels-pygame-guide/。在該頁面上,如果您熟悉 Git,可以使用 Clone 按鈕,或者您可以點選 Downloads 找到一個連結,將所有檔案下載到您的計算機上。


下一步是什麼?

幹得好!接下來,我們將介紹 Python 的一些功能,以便您熟悉它的語法!

華夏公益教科書