1. 程式人生 > >pygame庫寫遊戲——入門

pygame庫寫遊戲——入門

[用Python和Pygame寫遊戲-從入門到精通(1)](http://eyehere.net/2011/python-pygame-novice-professional-1/)

經過斷斷續續的學習,對python的語法有了一定的認識,並且通過廖雪峰的教程和慕課網上幾個課程的學習,模仿了其中幾個小程式的編寫。但是學習要回到實踐中來,想嘗試著編寫幾個小遊戲,發現需要學習pygame庫,而且脫離教程與模仿教程來編寫是兩種截然不同的體驗。
最終找到這位大神的部落格(包含pygame庫的教學),程式碼的每一行都有中文註釋,非常有助於我這種新手來理解每一行程式碼的含義。
因此準備通過他的部落格系統的學習pygame庫的使用,並且力圖達到可編寫小遊戲的level。
接下來的幾篇部落格可以看做是自己學習中的總結吧。
1、安裝pygame庫——非常簡單,可百度。
2、檢測自己安裝的pygame庫版本:

import pygame
print(pygame.ver)
```我的版本為1.9.3,不過版本號基本沒影響。
3、原博主的編寫的hello world!程式片段註釋非常的詳細,可以去看看。
4、自己嘗試編寫的程式
`background_filename = 'sushiplate.jpg'
mouse_filename = 'fugu.png'

import pygame
from pygame.locals import *

pygame.init()


pygame.mouse.set_visible(False)
pygame.event.set_grab(True)




<div
class="se-preview-section-delimiter"></div> #這裡可以把滑鼠(小魚)上面的滑鼠箭頭隱藏 screen = pygame.display.set_mode((640,480),NOFRAME,32) <div class="se-preview-section-delimiter"></div> #設定無邊框,也可嘗試其他的樣式 mouse_cursor = pygame.display.set_caption('hello world!') background = pygame.image.load
(background_filename).convert() mouse_cursor = pygame.image.load(mouse_filename).convert_alpha() while True: for event in pygame.event.get(): if event.type == KEYDOWN: if event.key == K_SPACE: pygame.quit() #這裡做了比較大的改進,按下空格鍵,退出程式 screen.blit(background,(0,0)) x,y = pygame.mouse.get_pos() x-= mouse_cursor.get_width() /2 y-= mouse_cursor.get_height() /2 #注意這裡get_width()和/2中間有空格,否則會有錯誤 screen.blit(mouse_cursor,(x,y)) pygame.display.update()` ![新的hello world!程式——介面如下:](http://img.blog.csdn.net/20171128202246611?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd2VpeGluXzQwNDk3NzEy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 觀察截圖中被魚替代的滑鼠(顯然還有一個黑色的小滑鼠沒有被完全覆蓋),這裡需要用到 `pygame.mouse.set_visible(False) pygame.event.set_grab(True)` ,但是我還沒學會-_- <div class="se-preview-section-delimiter"></div>

for event in pygame.event.get():
if event.type == QUIT:
#接到推出事件後退出程式
pygame.quit()
“`
這是程式的退出機制,但是原博主用的是exit(),但是在我電腦上無法退出程式(程式無反應),因此改成pygame.quit()。

設定無邊框,也可嘗試其他的樣式

mouse_cursor = pygame.display.set_caption(‘hello world!’)

background = pygame.image.load(background_filename).convert()
mouse_cursor = pygame.image.load(mouse_filename).convert_alpha()
while True:
for event in pygame.event.get():
if event.type == KEYDOWN:
if event.key == K_SPACE:
pygame.quit()
#這裡做了比較大的改進,按下空格鍵,退出程式

screen.blit(background,(0,0))

x,y = pygame.mouse.get_pos()
x-= mouse_cursor.get_width() /2
y-= mouse_cursor.get_height() /2
#注意這裡get_width()和/2中間有空格,否則會有錯誤

screen.blit(mouse_cursor,(x,y))
pygame.display.update()`


新的hello world!程式——介面如下:
觀察截圖中被魚替代的滑鼠(顯然還有一個黑色的小滑鼠沒有被完全覆蓋),這裡需要用到
,但是我還沒學會-_-

for event in pygame.event.get():
if event.type == QUIT:
#接到推出事件後退出程式
pygame.quit()

這是程式的退出機制,但是原博主用的是exit(),但是在我電腦上無法退出程式(程式無反應),因此改成pygame.quit()。