這篇文章給大家分享的是有關(guān)如何使用python做游戲的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點(diǎn)型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運(yùn)算,有兩個(gè)值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標(biāo)識(shí),內(nèi)部元素用逗號(hào)隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個(gè)無序的、不重復(fù)的數(shù)據(jù)組合。
PyGame是一個(gè)Python的庫,能夠讓你更容易的寫出一個(gè)游戲。它提供的功能包括圖片處理和聲音重放的功能,并且它們能很容易的整合進(jìn)你的游戲里。去官網(wǎng)點(diǎn)擊這里下載適合你的PyGame安裝包。
1 .創(chuàng)建游戲框架以及游戲背景
#這個(gè)模塊放一些常用的工具和基礎(chǔ)類和精靈類
#在其他模塊調(diào)用
import pygame
import random
#設(shè)置游戲屏幕大小 這是一個(gè)常量
SCREEN_RECT = pygame.Rect(0,0,580,700)
#敵機(jī)的定時(shí)器事件常量
CREATE_ENEMY_EVENT = pygame.USEREVENT
#定制一個(gè)精靈類,需要繼承pygame提供的精靈類
#需要定義的屬性有:
#image圖片
#rect坐標(biāo)
#speed速度
#接下來開始寫敵機(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ǔ)類,接下來設(shè)置背景類
#明確背景類繼承自游戲的精靈類
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)用父類方法
super().update()
if self.rect.y >= SCREEN_RECT.height:
self.rect.y = -self.rect.height2 .創(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 .碰撞檢測
#第一個(gè)參數(shù)和第二個(gè)參數(shù)是要參與碰撞檢測的精靈
#第三個(gè)參數(shù)為Ture的時(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)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
當(dāng)前文章:如何使用python做游戲-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://chinadenli.net/article14/ceeede.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、標(biāo)簽優(yōu)化、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、自適應(yīng)網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容