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

溫馨提示×

溫馨提示×

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

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

如何使用python做游戲

發布時間:2021-04-27 11:19:48 來源:億速云 閱讀:121 作者:小新 欄目:開發技術

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

python的數據類型有哪些?

python的數據類型:1. 數字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型。5. 元組,元組用”()”標識,內部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數據組合。

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()

感謝各位的閱讀!關于“如何使用python做游戲”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

彩票| 平安县| 巴里| 芦溪县| 华坪县| 云浮市| 太仆寺旗| 朔州市| 阜新| 栖霞市| 佛教| 海安县| 岗巴县| 肇州县| 南部县| 井陉县| 桃江县| 北川| 临清市| 普宁市| 南雄市| 兴仁县| 临城县| 阿图什市| 房产| 名山县| 四会市| 寿光市| 天等县| 达拉特旗| 舒兰市| 清镇市| 抚州市| 中卫市| 淄博市| 新疆| 楚雄市| 阿荣旗| 泸西县| 双江| 辽阳县|