Pygame learn from mooc
私貨:在呼叫函式時,可以
1.import tkinter (不過在使用時還要加字首如tkinter.Tk())
2.import tkinter as tk (這樣的話就可以便於編寫了)
3.from tkinter import Tk(這樣的話只是制定呼叫某一個在tkinter中的函式)
4.from tkinter import * (這樣就可以呼叫該第三方庫中所用的函式)
用使用from呼叫第三方庫後,在對應函式前就不用加庫名了。
<表示式>if<條件>else<表示式>#這樣可以讓程式更加美觀且編寫容易。
一,最小遊戲(基本結構)(2D遊戲)
pygame中必要的遊戲最小格式,其他的都能再次基礎上進行修改。
import pygame,sys ~關鍵
pygame.init() ~
size= width,height = 600,400 ~
speed = [1,1]
BLACK =0,0,0 ~
screen =pygame.display.set_mode(size) ~#設定視窗大小
pygame.display.set_caption('Pyhon壁球') ~設定標題
ball = pygame.image.load('D:/Temp/ok1.gif') ~匯入圖片
ballrect = ball.get_rect() ~
fps = 200
fclock = pygame.time.Clock()
while True: ~
for event in pygame.event.get(): ~#事件效應
if event.type == pygame.QUIT: #利用if等判斷語句設定響應結果 |
sys.exit() #退出程式(sys提供了Python執行時環境變數的操作 |
elif event.type == pygame.KEYDOWN: |
if event.unicode == '': |
print("[KEYDOWN]:","#",event.key,event.mod) | 事件判斷
elif event.type == pygame.MOUSEMOTION: |
print("[MOUSEMMOTION]:",event.pos,event.rel,event.buttons) |
elif event.type == pygame.MOUSEBUTTONUP: |
print("[MOUSEBUTTONUP]:",event.pos,event.button) |
elif event.type == pygame.MOUSEBUTTONDOWN: |
print("[MOUSEBUTTONDOWN]:",event.pos,event.button) |
fclock.tick(fps)
pygame.display.update() ~
二,pygaem中的函式
1:screen.fill(R,G,B)#RGB顏色引數,將screen,利用對應顏色填充
2:screen.blit(src,dest)#將一個圖層繪製到另一個圖層上。
3:Rect物件
該物件包含了很多屬性如top , bottom ,left,right,height,width(前四個是該物件的位置座標(左上為原點),後兩者是該物件的高和長#對於該類物件,再生成時會與圖層最邊緣相切
4:fps=300
fclock=pygame.time.Clock()#建立一個Clock物件來控制時間(這裡指的是update(重新整理)的時間及fps,如果不設定的話,程式將會以電腦當前所能達到的最大速度執行。
fclock.tick(fps)使得程式已設定的時間間隔來執行。
5:pygame.KEYDOWN#pygame對鍵盤敲擊事件的回應
如pygame.K_UP(向上鍵)
pygame.K_DOWN(向下鍵)
event.key == pygame.K_UP#其中判斷的語句,用event.key表示當前事件
6:螢幕尺寸和模式
pygame.display.set_mode(size)設定螢幕相關的模式引數
pygaame.display.Info()生成螢幕相關資訊
pygame.display.set_mode(r=(0,0),flogs=0),r是解析度採用(width,height),flogs用來控制顯示型別[pygame.RESIZABLE視窗大小可調 pygame.NOFRAME 視窗沒有邊界顯示 pygame.FULLSCREEN 視窗滿屏顯示
pygame.display.Info():current_w,當前顯示模式或視窗的畫素寬度 current_h當前顯示模式或視窗的畫素高度
pygame.VIDERESIZE 這是之種視窗大小更改事件,事件發生後,返回event.size元組,包括新視窗的高度(.size[0]或event.w)高度(.size[1]或event.h),返回引數僅在事件發生時有用
7:視窗標題和圖示
pygame.display.set_caption()設定標題資訊
pygame.display.set_icon()設定圖示資訊
pygame.display.get_caption()獲得圖示
pygame.display.set_caption(title,icontitle=None),title是設定視窗標題內容,icontitle設定標題話後的的小標題可選,部分標題沒有。
pygame.display.set_icon(surface) 設定視窗圖示效果,圖示是一個Surface物件,注意在匯入圖片是需要使用(pygame.image.load('絕對地址'))
8:視窗感知和重新整理
pygame.display.get_active()
pygame.display.flip()#重新整理視窗,不過是將整個視窗重新整理(類似於關閉視窗,再開啟這樣一個過程)
pygame.display.update()#也是重新整理視窗,不過只是重新整理視窗內的內容。
9.pygame.Color()
括號中可以使字串,也可以是RGB值
10.事件處理機制(文字太多~圖更直接)