1. 程式人生 > >Pygame 筆記總結【持續更新】

Pygame 筆記總結【持續更新】

Pygame

tags:python3學習、邏輯訓練、陶冶情操

pygame 最小遊戲框架

import sys  # 1、引入pygame 和sys 模組
import pygame

pygame.init()  # 2、初始化init() 及設定
screen = pygame.display.set_mode((480, 700))  # 3、設定遊戲視窗大小及標題
pygame.display.set_caption("Hello World!")

# 4、遊戲迴圈,進入遊戲迴圈就以為著遊戲的開始
while True:
    # 5、獲取事件並逐類響應
    for event in
pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() # 解除安裝pygame 所有模組 sys.exit() pygame.display.update() # 6、update 更新螢幕顯示

pygame.display 模組專門用於建立、管理遊戲視窗
pygame.display.set_mode(resolution(0, 0), flags=0, depth=0) 建立遊戲視窗

resolution 指定螢幕的寬和高,預設建立的視窗大小和螢幕大小一致
flgs 引數指定螢幕的附加選項,例如是否全屏等等,預設不需要傳遞
depth 引數表示顏色的位數,預設自動匹配
注:必須使用變數記錄set_mode方法的返回視窗物件,因為:後續所有的影象繪製都基於這個返回結果

wall ball version 1

import sys
import pygame

pygame.init()
size = width, height = 600, 400  # 設定遊戲視窗大小,從右向左分別是序列賦值和元組賦值
speed = [1, 1]  # 設定初始速度
BLACK = 0, 0, 0  # 設定背景顏色為黑色
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Wall Ball")
ball = pygame.image.load("PYG02-ball.gif")  # 載入小球圖片
ballrect = ball.get_rect() # 獲得小球物件的矩形物件 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() ballrect = ballrect.move(speed[0], speed[1]) # 讓小球開始移動 # 邊緣檢測 if ballrect.left < 0 or ballrect.right > width: speed[0] = -speed[0] if ballrect.top < 0 or ballrect.bottom > height: speed[1] = -speed[1] screen.fill(BLACK) # 背景填充 screen.blit(ball, ballrect) # 繪製小球影象到矩形物件上 pygame.display.update()

  使用pygame.image.load(“影象路徑”) 方法載入圖片,返回pygame 使用內部定義的Surface 物件表示載入的影象,物件中 .get_rect() 方法返回一個覆蓋影象的矩形Rect 物件,在遊戲中所有可見的元素都是以矩形區域來展現位置的,Rect 物件有一些重要的屬性,如:top、botton、left、right、width=right-left、height=bottom-top。也可以不用Surface 物件來得到舉行區域,用pygame.Reck 這個類來描述矩形區域,需要四個引數來確定(x, y, width, height),如:rect = pygame.Rect(100, 200, 150, 180),宣告的矩形物件左上角x軸:100、左上角y軸:200、寬:150、高:180。

  使用Rect.move(x, y)方法, 使矩形移動一個偏移量(x, y),即在橫軸方向移動x 畫素,縱軸方向移動y 畫素,xy 為整數。

  使用screen.fill(color)方法,顯示視窗背景填充color 顏色,採用RGB色彩體系,本例由於小球不斷運動,運動後原有位置將預設填充白色,因此需要不斷重新整理背景色。

  使用screen.blit(src, dest)方法,將一個影象繪製在另一個影象上,即將src 繪製到dest位置上,本例是將小球繪製到Rect 物件上。

相關推薦

Pygame 筆記總結持續更新

Pygame tags:python3學習、邏輯訓練、陶冶情操 pygame 最小遊戲框架 import sys # 1、引入pygame 和sys 模組 import pygame pygame.init() # 2、初始化init()

python2 與 python3 不相容問題總結持續更新

1.python3 下報錯:’dict’ object has no attribute ‘iteritems’ python2 下為 .iteritems() python3 下為 .items() a={'1':1,'2':2} a.items() O

部落格筆記整理持續更新...

Java基礎總結 Java基礎語法總結 包括win10 安裝JDK8,資料型別與變數,運算子,陣列 為什麼需要定義資料型別??? Java面向物件特性總結 封裝,繼承,多型 動態引用儲存——集合&&精確的集合定義——泛型 Java集合又稱容器,可以動態的將物件的引用儲存在容器中。(靈活可擴充

前端頁面重構技巧總結TIP持續更新...

code lock 項目 居中 經驗 ade 布局 baidu round 本文均為項目實戰經驗,要求兼容至IE8,所以以下內容均為兼容代碼,歡迎各位小夥伴批評指教。其實重構頁面是一門學問,看似簡單,卻暗藏很多學問。實際項目中頁面的重構有以下幾點最基本需求: 1.需要使用

持續更新ultraedit工具使用總結

gin 自動 ultra 使用總結 mar 菜單 left style 快捷 常用設置及快捷鍵 設置Ultraedit自動換行: 永久修改:   點擊菜單欄的“高級→配置”,找到“編輯器→自動換行/制表符設置”,選擇“默認為每個文件啟用自動換行”,ok。 臨時修改

持續更新總結經典位運算Tricks

前言 刷了幾個leetcode題,發現位運算的小trick還是挺多的 加上之前面試也被問到有關位運算的問題,這裡總結一些關於位運算的小技巧 這裡提醒一下,位運算的優先順序很低,不清楚的時候一定要加括號;尤其是&、|、^的優先順序比==等比較運算子還低,這個

本人在python自動化測試編寫指令碼時遇到的一些與python程式設計有關的問題 總結記錄一下持續更新

在學校裡學過C語言、C#、Java沒有系統地學習過Python 但是有一些程式設計基礎 所以就直接上手編寫python指令碼了因此,在這個過程中,學習了一段時間後,還是出現了一些和python程式設計有關的疑點和問題,現在在這裡總結記錄一下!1.從.txt檔案中讀取資訊一些網

持續更新TCP/IP筆記

在ESP8266開發上,一定會用到TCP和UDP通訊,看官方SDK原始碼,所有的通訊都是用的lwip協議棧,這個是輕量型的TCP/IP協議棧,這裡做些對應的筆記。我用的是ESP官方的RTOS_SDK,這裡用的freeRTOS,在帶系統基礎上移植的lwip會提供三種API:對應

筆試總結——linux篇持續更新

linux系統中的Load對當前CPU工作量的度量。簡單的說是程序佇列的長度。 Load Average 就是一段時間 (1 分鐘、5分鐘、15分鐘) 內平均 Load 。 通過系統命令"w"檢視當前load average情況 e.g Load:2.5,1.3,1.1表示系統的負載壓力在逐漸減少(錯)原

持續更新Mybatis 學習之異常解決辦法總結

1. Mybatis 報錯資訊如下 org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [D

php實用小技巧持續更新

匹配 一個 png 實用 合並 如果 更新 1-1 字符串 這是本人開始做項目的時候遇到過的問題還有解決方法 1.eval函數   能把字符串轉換成可執行的php代碼,如果字符串不是可執行的php代碼的話,需要在前面加上@,屏蔽notice 2.array_merge函數

大坑持續更新......

sco () input 100% void stat 一個 sta name 挖個大坑,記下死活也調不對的題目 路過的大巨幫忙挑挑錯,感激不盡 2017.6.16 bzoj1858 1858: [Scoi2010]序列操作 Time Limit: 10 Sec

php函數源代碼 C編寫 持續更新

字符串 itl 自動 code strcpy return div 取字符 pau strlen() 獲取字符串長度,成功則返回字符串 string 的長度;如果 string 為空,則返回 0。 #include<stdio.h> #include<s

團隊項目博客匯總持續更新

page wan mil target soft blog slist logs .html 小組名稱:王者榮耀交流協會 組長:高遠博 組員:王超 王磊 袁玥 王玉玲 任思佳

自動化運維系列之Ansible的簡介與安裝持續更新···

zabbix cti 服務 部署安裝 部署 ansible ffffff 執行 gen 自動化運維系列之Ansible的簡介與安裝 自動化運維工具簡介 由於互聯網的快速發展導致產品更新換代的速度逐漸加快,這就導致運維人員的日常工作會大大增加,如果還是按照傳統方式進行維護工

那些我看了第一段不會點'X'的前端資料持續更新

一、HTML CSS篇 用CSS變形建立圓形導航 Bootstrap 3 & 4的區別 二、JavaScript篇 js高階函式map、reduce、filter、sort JavaScript中的call、apply、bind深入

Tensorflow程式設計遇到的問題彙總持續更新

1、在搭建GAN模型時,使用了和Generator相同結構和引數的simpler,用於在固定epoch後生成樣本,便於觀察訓練效果。但是在執行的過程中出現了 ValueError: Variable generator/g_1e1_conv/w already exists, disallowe

前端效能優化集持續更新

前端效能優化可以說很廣泛了: 1,減少HTTP請求次數的優化: 1)使用代理請求,對於使用者頻繁的請求,客戶端先自己快取進入代理物件,代理來決定是否真正進行HTTP請求,而不是每次都觸發請求。 2)快取代理,例如分頁請求,可以將之前的請求資料快取再代理物件中,下次請求時候先過快取代理,有快取就拿快取的資

持續更新 配置csh cshrc

切換csh 從bash切換到csh。 輸入:csh 配置檔案 全域性配置檔案 /etc/csh.cshrc 個人配置檔案 ~/.cshrc或~/.tcshrc 提示符 設定一個漂亮使用的的提示符可以讓工作變得更愉快高效。 以下是一個合理的配置方案:   if

持續更新hexo next主題優化手冊

本文最新更新於: 月小水長的個人部落格 前言 開此貼的原因 前幾天部落格崩了,重新搭建了這個部落格站點。 特開此貼記錄next主題優化過程中遇到的問題,希望對大家有所幫助。 一些說明 前期相關的Hexo安裝、本地/遠端部署教程可百度在此不再贅述。 基於hexo