中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python如何做出游戲

發布時間:2020-07-13 10:47:02 來源:億速云 閱讀:162 作者:Leah 欄目:編程語言

python如何做出游戲?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

你有沒有想過電腦游戲是怎樣制作出來的?其實它沒有你想象的那樣復雜!

PyGame是一個Python的庫,能夠讓你更容易的寫出一個游戲。它提供的功能包括圖片處理和聲音重放的功能,并且它們能很容易的整合進你的游戲里。去官網點擊這里下載適合你的PyGame安裝包。

我們就拿打飛機來做個例子
1 .創建游戲框架以及游戲背景

 #這個模塊放一些常用的工具和基礎類和精靈類
 #在其他模塊調用
 import pygame
 import random
 #設置游戲屏幕大小 這是一個常量
 SCREEN_RECT = pygame.Rect(0,0,580,700)
 #敵機的定時器事件常量
 CREATE_ENEMY_EVENT = pygame.USEREVENT

 #定制一個精靈類,需要繼承pygame提供的精靈類
 #需要定義的屬性有:
 #image圖片 
 #rect坐標
 #speed速度

 #接下來開始寫敵機方面的內容 產生敵機
 #先定義一個事件常量
 CREATE_ENEMY_EVENT = pygame.USEREVENT
 #我們還可以定義一個事件常量(發射子彈)
 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()
         #精靈移動的速度 包括英雄精靈 背景精靈 敵機精靈 子彈精靈
         self.speed = new_speed

     def update(self):
         #默認垂直方向移動 y軸控制垂直方向
         self.rect.y += self.speed
         #self.rect.x += 1
 #以上是游戲的基礎類,接下來設置背景類
 #明確背景類繼承自游戲的精靈類
 class Background(GameSprite):
     def __init__(self,is_alt = False):
         #is_alt判斷是否為另一張圖像
         #False表示第一張圖像
         #Ture表示另外一張圖像
         #兩張圖像交替循環
         #傳圖片
         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):
         #調用父類方法
         super().update()
         if self.rect.y >= SCREEN_RECT.height:
             self.rect.y = -self.rect.height

2 .創建敵機精靈

class Enemy(GameSprite):
    def __init__(self):

    super().__init__("/home/zhangyuan/images/enemy1.png")
    #隨機速度
    self.speed = random.randint(10, 15)
    #設置敵機的初始位置
    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
    #判斷敵機是否飛出屏幕  如果飛出屏幕將敵機從精靈組刪除
    if self.rect.y >= SCREEN_RECT.height or self.rect.right <=0 or self.rect.bottom <=0:
        self.kill()

3 .創建英雄精靈

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 .碰撞檢測

#第一個參數和第二個參數是要參與碰撞檢測的精靈
#第三個參數為Ture的時候 就是當碰撞的時候被碰撞的精靈從精靈組移除
pygame.sprite.groupcollide( self.enemy_group,self.hero.bullet, True, True)#子彈
#判斷列表時候有內容
    if len(enemies)>0:
        #讓英雄犧牲
        self.hero.kill()
        #結束游戲
        PlaneGame.__game_over()
@staticmethod
def __game_over():
    print("游戲結束")
    #這是pygame提供的卸載模塊功能
    pygame.quit()
    #這是pygame本身提供的退出腳本的功能
    exit()
    #需要先卸載pygame模塊 然后退出腳本

   if __name__ == "__main__":
     game = PlaneGame()
     game.star_game()

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

惠东县| 论坛| 北宁市| 唐河县| 天全县| 岗巴县| 永仁县| 上犹县| 临城县| 南靖县| 兖州市| 吉隆县| 贵港市| 樟树市| 通渭县| 古浪县| 威信县| 盐边县| 广元市| 遂溪县| 资溪县| 神木县| 上高县| 讷河市| 安多县| 朝阳县| 枝江市| 密云县| 柘城县| 太仓市| 天等县| 清远市| 永寿县| 松潘县| 凯里市| 瑞安市| 来凤县| 长丰县| 琼结县| 榆林市| 仁化县|