Pygame
===

### Pygame簡介
`pygame`是一個Python的套件,主要用來創建 2D 遊戲和多媒體應用程式。它提供了一系列的功能,使開發者能夠輕鬆地處理圖形、音效、動畫以及使用者互動等方面。
## 建立開發環境
1. 確定使否已安裝Python
```shell=
python --version
```
2. 開啟要建立環境的路徑
```shell=
cd <路徑位置>
```
3. 輸入下方指令建立一個新的環境
```shell=
python -m venv <環境名稱>
```
4. 進入虛擬環境路徑並啟動
```shell=
cd <路徑位置>\Scripts
// 切換玩路徑後再執行
activate.bat
```
5. 切換完成後輸入下面指令安裝套件
```shell=
pip install pygame
```
:::success
這樣就完成環境設定了:exclamation:
:::
## 基本Pygame指令
### 基本範例程式碼
下面是官方提供的基本的範例程式碼,包括最基本的pygame需要的東西.後面會依序介紹他們的功能
```python=
# Example file showing a basic pygame "game loop"
import pygame
# pygame setup
pygame.init()
screen = pygame.display.set_mode((1280, 720))
clock = pygame.time.Clock()
running = True
while running:
# poll for events
# pygame.QUIT event means the user clicked X to close your window
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# fill the screen with a color to wipe away anything from last frame
screen.fill("purple")
# RENDER YOUR GAME HERE
# flip() the display to put your work on screen
pygame.display.flip()
clock.tick(60) # limits FPS to 60
pygame.quit()
```
### 初始化pygame物件
```python
pygame.init()
```
### 顯示視窗
1. 設定顯示視窗物件(指定視窗的高度與寬度, flag是用來設定顯示模式的例如全螢幕等等)
```python
screen = pygame.display.set_mode((width, height), flags=0)
```
2. 設定視窗標題
```python
pygame.display.set_caption("遊戲標題")
```
3. 顯示更新畫面(可以選擇是否只更新哪個區塊,如未設定則整個畫面更新)
```python
pygame.display.update(rectangle=None)
```
4. 獲取畫面資訊(解析度,顯示方式等)
```python
info = pygame.display.Info()
```
5. 切換螢幕顯示方式(全螢幕🔁視窗)
```python
pygame.display.toggle_fullscreen()
```
6. 設定視窗的icon
```python
icon = pygame.image.load('icon.png')
pygame.display.set_icon(icon)
```
### 設定畫布
`Surface`是Pygame中一個非常重要的物件,它代表了所有可顯示的畫面、圖像或介面元素。幾乎所有在Pygame中的圖形繪製,都是在`Surface`上進行的。
1. 創建Surface
```python=
# 創建一個 800x600 的空白 Surface
surface = pygame.Surface((800, 600))
```
2. 繪製圖形和顏色
```python
surface.fill((255, 0, 0)) # 填充紅色
pygame.draw.rect(surface, (0, 255, 0), (50, 50, 200, 100)) # 繪製綠色矩形
```
3. Surface圖像
```python
image = pygame.image.load('image.png')
surface.blit(image, (0, 0)) # 將圖像繪製到surface上
```
4. 複製Surface
```python
new_surface = surface.copy() # 複製 Surface
```
5. 旋轉Surface
```python
rotated_surface = pygame.transform.rotate(surface, 90) # 旋轉 Surface
```
6. 透明度
```python
surface.set_alpha(128) # 設定透明度(範圍:0-255,0為完全透明)
```
7. 繪製Surface到視窗中
```python
screen = pygame.display.set_mode((800, 600))
screen.blit(surface, (0, 0)) # 將 surface 繪製到螢幕
pygame.display.update() # 更新螢幕顯示
```
:::success
:thumbsup: 前面說明完了最基本的語法,有了這些語法我們可以開始製作簡易的動畫了
:::
### 基本動畫
### 基本控制事件(滑鼠鍵盤)
### 角色控制(Sprite)
### 簡易小遊戲