這篇文章給大家分享的是有關(guān)如何使用python做游戲的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括永定網(wǎng)站建設(shè)、永定網(wǎng)站制作、永定網(wǎng)頁(yè)制作以及永定網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,永定網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶(hù)以成都為中心已經(jīng)輻射到永定省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶(hù)的支持與信任!python的數(shù)據(jù)類(lèi)型有哪些?python的數(shù)據(jù)類(lèi)型:1. 數(shù)字類(lèi)型,包括int(整型)、long(長(zhǎng)整型)和float(浮點(diǎn)型)。2.字符串,分別是str類(lèi)型和unicode類(lèi)型。3.布爾型,Python布爾類(lèi)型也是用于邏輯運(yùn)算,有兩個(gè)值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類(lèi)型,集合中可以放任何數(shù)據(jù)類(lèi)型。5. 元組,元組用”()”標(biāo)識(shí),內(nèi)部元素用逗號(hào)隔開(kāi)。6. 字典,字典是一種鍵值對(duì)的集合。7. 集合,集合是一個(gè)無(wú)序的、不重復(fù)的數(shù)據(jù)組合。
PyGame是一個(gè)Python的庫(kù),能夠讓你更容易的寫(xiě)出一個(gè)游戲。它提供的功能包括圖片處理和聲音重放的功能,并且它們能很容易的整合進(jìn)你的游戲里。去官網(wǎng)點(diǎn)擊這里下載適合你的PyGame安裝包。
1 .創(chuàng)建游戲框架以及游戲背景
#這個(gè)模塊放一些常用的工具和基礎(chǔ)類(lèi)和精靈類(lèi) #在其他模塊調(diào)用 import pygame import random #設(shè)置游戲屏幕大小 這是一個(gè)常量 SCREEN_RECT = pygame.Rect(0,0,580,700) #敵機(jī)的定時(shí)器事件常量 CREATE_ENEMY_EVENT = pygame.USEREVENT #定制一個(gè)精靈類(lèi),需要繼承pygame提供的精靈類(lèi) #需要定義的屬性有: #image圖片 #rect坐標(biāo) #speed速度 #接下來(lái)開(kāi)始寫(xiě)敵機(jī)方面的內(nèi)容 產(chǎn)生敵機(jī) #先定義一個(gè)事件常量 CREATE_ENEMY_EVENT = pygame.USEREVENT #我們還可以定義一個(gè)事件常量(發(fā)射子彈) HERO_FIRE_EVENT = pygame.USEREVENT + 1 class GameSprite(pygame.sprite.Sprite): def __init__(self,new_image,new_speed=1): super().__init__() #圖片 self.image = pygame.image.load(new_image) #速度 self.speed = new_speed #位置 獲取圖片的寬和高 get_rect()(0,0,寬,高) self.rect = self.image.get_rect() #精靈移動(dòng)的速度 包括英雄精靈 背景精靈 敵機(jī)精靈 子彈精靈 self.speed = new_speed def update(self): #默認(rèn)垂直方向移動(dòng) y軸控制垂直方向 self.rect.y += self.speed #self.rect.x += 1 #以上是游戲的基礎(chǔ)類(lèi),接下來(lái)設(shè)置背景類(lèi) #明確背景類(lèi)繼承自游戲的精靈類(lèi) class Background(GameSprite): def __init__(self,is_alt = False): #is_alt判斷是否為另一張圖像 #False表示第一張圖像 #Ture表示另外一張圖像 #兩張圖像交替循環(huán) #傳圖片 super().__init__("/home/zhangyuan/下載/beijing.png") if is_alt: #如果是第二張圖片 初始位置為-self.rect.height self.rect.y = -self.rect.height #def __init__(self,new_image): # super().init__(new_image) def update(self): #調(diào)用父類(lèi)方法 super().update() if self.rect.y >= SCREEN_RECT.height: self.rect.y = -self.rect.height
2 .創(chuàng)建敵機(jī)精靈
class Enemy(GameSprite): def __init__(self): super().__init__("/home/zhangyuan/images/enemy1.png") #隨機(jī)速度 self.speed = random.randint(10, 15) #設(shè)置敵機(jī)的初始位置 self.rect.left = SCREEN_RECT.width max_ = SCREEN_RECT.height -self.rect.height self.rect.bottom = random.randint(0, max_) def update(self): panduan = random.randint(0, 1) if panduan == 0: self.rect.y -= self.speed self.rect.x -= self.speed else: self.rect.y += self.speed self.rect.x -= self.speed #判斷敵機(jī)是否飛出屏幕 如果飛出屏幕將敵機(jī)從精靈組刪除 if self.rect.y >= SCREEN_RECT.height or self.rect.right <=0 or self.rect.bottom <=0: self.kill()
3 .創(chuàng)建英雄精靈
class Bullet(GameSprite): def __init__(self): super().__init__("/home/zhangyuan/images/bullet1.png",-5) def update(self): super().update() #判斷是否超出屏幕 如果是 從精靈組刪除 if self.rect.bottom < 0: self.kill()
5 .碰撞檢測(cè)
#第一個(gè)參數(shù)和第二個(gè)參數(shù)是要參與碰撞檢測(cè)的精靈 #第三個(gè)參數(shù)為T(mén)ure的時(shí)候 就是當(dāng)碰撞的時(shí)候被碰撞的精靈從精靈組移除 pygame.sprite.groupcollide( self.enemy_group,self.hero.bullet, True, True)#子彈 #判斷列表時(shí)候有內(nèi)容 if len(enemies)>0: #讓英雄犧牲 self.hero.kill() #結(jié)束游戲 PlaneGame.__game_over() @staticmethod def __game_over(): print("游戲結(jié)束") #這是pygame提供的卸載模塊功能 pygame.quit() #這是pygame本身提供的退出腳本的功能 exit() #需要先卸載pygame模塊 然后退出腳本 if __name__ == "__main__": game = PlaneGame() game.star_game()
感謝各位的閱讀!關(guān)于“如何使用python做游戲”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!