1. 程式人生 > >用Python和Pygame寫遊戲-從入門到精通(Sprite篇)

用Python和Pygame寫遊戲-從入門到精通(Sprite篇)

本文轉載自:http://eyehere.net/2011/python-pygame-novice-professional-sprite/

這又是Pygame教程系列的一個——OVA篇,類似於py2exe篇一樣,額外寫的,也許不是pygame遊戲開發必須的東西,但是知道了絕對大有裨益。因此友情大放送~

看pygame模組介紹的時候,細心的人會發現有一個pygame.sprite模組,而在講動畫的時候,雖然引入了精靈這個概念,卻沒有使用這個模組。在官方文件上也說了,這個模組是輕量級的,在遊戲開發中也未必要使用。講解動畫的時候為了避免太多新東西,直接把一個surface畫來畫去,難道沒有人覺得不和諧麼:)我們這次試著使用Sprite把動畫變的更簡單一些(不過這裡沒有使用GameObjects,兩者結合更健康~)。

“sprite”,中文翻譯“精靈”,在遊戲動畫一般是指一個獨立運動的畫面元素,在pygame中,就可以是一個帶有影象(Surface)和大小位置(Rect)的物件。 精靈特別適合用在OO語言中,比如Python。

pygame.sprite.Sprite是pygame精靈的基類,一般來說,你總是需要寫一個自己的精靈類繼承一下它然後加入自己的程式碼。舉個例子:

Python
12345678910111213141516171819202122232425262728293031323334353637383940importcStringIO,
base64importpygamefrompygame.localsimport*classBall(pygame.sprite.Sprite):def__init__(self,color,initial_position):pygame.sprite.Sprite.__init__(self)ball_file=cStringIO.StringIO(base64.decodestring("""iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAYAAADE6YVjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABBJJREFUeNqsVj2PG1UUvfPp8XictXfHa+9mlyJCNEQRWiToqACJAgGC
LqJNlQZR0IFEj8RPSJkGGooUpEWJkGhR0tAAElI2tsfjjxnPjIdz7oyDF2wSUK72yN43793z7rkfY8N2HFmbbVliGIYiyzIpy1Isy3oHeMswzLOyXJ2tVit9VhTFAxz5Cfge+A7IZIcZmySObQudwIE0veanraB1w/O8l5x6D9eXy6UkSaJYLBa6BvsNuAV8uY3sCQlvX4LANM0Xw/Dgdhj2Xm02m+K6LqPRPXmeS5qmMp/PZTabyXQ6lclkosS1/QJcB+5vkthrAkoAuc4uHx//0B8MvCAIxG/5jEg0kpIkmcwXicTxBIhlHWEURXoedgW4B3wIfHuBJM9yMQ3j5PTk5N7g6MjtdrrS3e9Ku90GUUvc2hkdMYJx5IvnNRC19UReRlRLR/sGeB34UUkMJBcJlcHg6K4SdDvS7/el1+tJp7MnQdCWRqMhDGWZLmWCCFog9rBmGBYc50rOKON4uqkSC+IQSC3moeX7N09PX/i4AwLkAoQDxeFhHziU8CCUzt6e+EFLc2QaJi4mFQHykQLZMpME+WJF1sabdYA7Nq4jQbv9OZPs+75cgkSMYH9/X6PhJ9dpTLjruFLkBRyjACBd1BoLzzY8T3O0IRntJvCZDXsTTnq262CzrzmgRHu4+QEIQhAxNzRWU1mTxfjOwvBIAOlIYNnWtja5bqM33mN/sBEdx9bNPOQ1PWlqZJdAFKoMrEI6R+9gj6t7cUl1zjKnjFvsfaybr1Uqlv94ypXSKCud+aefpezs7O3LL9s4c5U65gCrhGDDpUkqyWIuU1STweNlJRe7nAlmA+ZaVbnmiD4KFNEWC+3VqjB5YImDdMA+YKONx2OVgxefojRL8CzmCxkOhxLhWYy+mGIvz6RKmv096X91PErP4Byazapbs3vZB45bVQqTzBzQkjQBQSTnjx7JcDTCRSLkKNY9SbKACsttHKZdrIqHILnGCNhoDU0qG83U5mNUVTOKShRPYo3m8fAcnT/S/3mWFy2KrXKNOFbuI+Rr1FvLsB731Ho2m2pU7I1Sx8pSHTLaESIZjob6nfso2w77mSR3IMsNzh4mmLOIBAkO6fjAgESdV1MYiV4kiUZHRDjD3E0Qza580D+rjsUdAQEj4fRl8wUkqBttPeo5RlJIuB71jIASc8D+i4W8IoX8CviC5cuI+JlgpLsgcF1ng6RQyaoX1oWX1i67DTxe9w+9/EHW9VOrngCWZfNFpmvVWOfUzZ/mfG0HwHBz4ZV1kz8nvLuL+YPnRPDJ00J8A/j9fzrnW+sjeUbjbP8amDyj86z+tXL5PwzOC4njj4K3gavA8cazczYacLd+p/+6y8mfAgwAsRuLfp/zVLMAAAAASUVORK5CYII="""))self.image=pygame.image.load(ball_file,'file').convert_alpha()self.rect=self.image.fill(color,None,BLEND_ADD)self.rect.topleft=initial_position

相關推薦

PythonPygame遊戲-入門精通Sprite

本文轉載自:http://eyehere.net/2011/python-pygame-novice-professional-sprite/ 這又是Pygame教程系列的一個——OVA篇,類似於py2exe篇一樣,額外寫的,也許不是pygame遊戲開發必須

PythonPygame遊戲-入門精通8Move

1、Move background_image_filename = 'sushiplate.jpg' sprite_image_filename = 'fugu.png' import pygame from pygame.locals import * from s

PythonPygame遊戲-入門精通py2exe

本文轉載自:http://eyehere.net/2011/python-pygame-novice-professional-py2exe/ 這次不是直接講解下去,而是談一下如何把我們寫的遊戲做成一個exe檔案,這樣一來,使用者不需要安裝python就可以

PythonPygame遊戲-入門精通6學習筆記

雖然是基礎,這裡還是要羅嗦一下,之前說的RBG影象,在遊戲中我們往往使用RGBA影象,這個A是alpha,也就是表示透明度的部分,值也是0~255,0代表完全透明,255是完全不透明,而像100這樣的數字,代表部分透明。你可以使用多種軟體建立含有Alpha通道的圖片,具體的網

PythonPygame遊戲-入門精通22

辛苦啦~ 這次是我們系統的pygame理論學習的最後一章了,把這次的音樂播放講完了,pygame的基礎知識就全部OK了。不過作為完整的教程,只有理論講解太過枯燥了,我隨後還會加一個或更多的實踐篇系列,看需要可能也會追加真3D等額外的內容。 就像上次所說的,py

PythonPygame遊戲第1課

千萬 from 我們 win get() 適合 音頻 idt 產品 Pygame的歷史 ?? Pygame是一個利用SDL庫的寫就的遊戲庫,SDL呢,全名Simple DirectMedia Layer,是一位叫做Sam Lantinga的大牛寫的,據說他為了讓Loki(致

Pygame 教程:《 Python Pygame 遊戲

http://www.ztnews.net/yst/mrys/a2015091418498663.html http://www.ztnews.net/yst/mrys/a2015091418498675.html http://www.ztnews.net/yst/mry

python pyqt5俄羅斯方塊遊戲

# 俄羅斯方塊遊戲效果展示本章我們要製作一個俄羅斯方塊遊戲。## Tetris> 譯註:稱呼:方塊是由四個小方格組成的俄羅斯方塊遊戲是世界上最流行的遊戲之一。是由一名叫Alexey Pajitnov的俄羅斯程式設計師在1985年製作的,從那時起,這個遊戲就風靡了各個遊戲

Python OpenCV 檢測圖片上的條形碼轉載

  原文地址:http://python.jobbole.com/80448/ 假設我們要檢測下圖中的條形碼: 圖1:包含條形碼的示例圖片 現在讓我們開始寫點程式碼,新建一個檔案,命名為detect_barcode.py,開啟並編碼: Python 1&nbs

數據庫入門精通安裝

軟件 大連 主配置文件 eve 為我 入門到精通 bold 數據模型 system 一、數據庫介紹 了解數據庫之前我們先來了解幾個概念,什麽是數據,什麽是數據庫,什麽是數據庫管理系統,什麽是數據庫系統? 數據(Data): 描述事物的符號記錄稱為數據,描述事物的符號既

Jenkins 入門精通安裝

安裝方法有很多,本人也嘗試了rpm安裝,可能操作什麼問題吧,安裝過程不是那麼一帆風順,各種問題。 然後面和碼雲對接也沒對接上,可能配置沒配置哈,所有乾脆就重新安裝下,下載了個最新的 war包,然後直接對到tomcat  的  webapps 目錄下,將報名改成ROOT.wa

MMO遊戲伺服器零開發架構

MMO遊戲伺服器屬於大型多人線上遊戲伺服器,負載,穩定,效率(包括反饋延遲和開發效率)是這種伺服器基本要求。 本人從10年入行至今一直從事MMO遊戲的研發和架構設計工作,對此類伺服器有一些理解和見解。下面分享給想了解遊戲伺服器開發的朋友們。這些是本人這些年來對MMO伺服器架

vue+webpack 入門精通基礎

所謂工欲善其事必先利其器,眾所周知vue+webpack的開發需要本地安裝node環境(有還不知道的就先去知道知道再來看本博的文章吧)。一、nodejs下載,安裝和配置本地環境,就自己百度一下,網上有很

換了個地方,來北京工作,面試了4家python爬蟲,一些這四家記得的筆試題1

1、請簡要說明檢視的作用 資料庫檢視,隱藏資料複雜性;有利於使用者對於資料庫中某些列資料的訪問 使使用者查詢變得簡單 2、列舉您使用過的python網路爬蟲所用到的網路資料包(最熟悉的在前):  requests,urllib2,urllib 3、列舉您使用過的python

百度地圖api入門介紹js

顯示 .com cnblogs androi web 入門介紹 步驟 api 地圖api 最近因為用到了百度地圖的api,感覺還有點用記錄一下,一方面充實一下自己,第二也希望有用到的同學可以參考一下;因為之前用過android baidu api 所以再用web

STAR主管招商遊戲設計的三個終極問題如何設計遊戲才會好玩理論

主管 招商 玩家 大戶首選 遊戲應該是所有表達媒介中最為復雜的,直擊人性又包含社會、市場、交互等諸多因素。不長的發展歷史中,鮮有科學而有效的研究成果,大量充斥的皆是所謂經驗之談,通常只適用於某類用戶或是某種遊戲。   作為遊戲設計理論的重度愛好者、創業4年,擔任過各類遊戲的研發一線制作人,我一

新濠環主管招商遊戲設計的三個終極問題如何設計遊戲才會好玩理論

主管 招商 玩家 大戶首選 遊戲應該是所有表達媒介中最為復雜的,直擊人性又包含社會、市場、交互等諸多因素。不長的發展歷史中,鮮有科學而有效的研究成果,大量充斥的皆是所謂經驗之談,通常只適用於某類用戶或是某種遊戲。   作為遊戲設計理論的重度愛好者、創業4年,擔任過各類遊戲的研發一線制作人,我一

[ Python ] 基本數據類型及屬性

獲取 string ast 轉換 分割字符串 upper not found 不可 inf 1. 基本數據類型 (1) 數字 - int (2) 字符串 - str (3) 布爾值 - bool 2. int 類型中重要的方法

springBoot快速入門教程第一

Springboot是什麼? 1、springboot是在spring的基礎上進一步封裝,讓以前繁雜的配置全部簡化,從而快速構建專案。 2、對主流框架無配置整合,提高開發效率。 3、內建tomcat無需先部署在執行 4、與雲端計算天然整合 快速搭建一個簡單的springboot

Python高階程式設計——裝飾器Decorator詳解(絕對是我見過最詳細的的教程,沒有之一哦)

一、先從一種情況開始看起 1、裝飾器decorator的由來 裝飾器的定義很是抽象,我們來看一個小例子。 先定義一個簡單的函式: def myfunc:     print('我是函式myfunc') myfunc() #呼叫函式 然後呢,我想看看