欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

用python做游戲的細(xì)節(jié)詳解

系統(tǒng) 1615 0

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

大家可以參閱:Python中pygame安裝方法圖文詳解

我們就拿打飛機(jī)來做個(gè)例子

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

    #精靈移動的速度 包括英雄精靈 背景精靈 敵機(jī)精靈 子彈精靈

    self.speed = new_speed

 

  def update(self):

    #默認(rèn)垂直方向移動 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.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 .碰撞檢測

            
#第一個(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()
          


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色版网站 | 五月综合久久 | 国产成人99久久亚洲综合精品 | 亲爱的热爱的电视剧免费观看 | 日韩精品久久久久久久电影99爱 | 最近免费日本视频在线 | 午夜影院黄色 | 浮力影院网站午夜 | av一区二区三区在线观看 | 亚洲精品午夜国产va久久成人 | www.4hu影院 | 久久天堂 | 天天色影 | 国产羞羞视频免费在线观看 | 武松2013| 婷婷精品 | 国产这里只有精品 | 老色鬼久久AV综合亚洲健身 | 精精国产xxxx视频在线 | 日韩天天操 | 亚洲刺激视频 | 青春草在线观看 | 午夜成人免费电影 | 国产午夜三级一区二区三桃花影视 | 成人性视频免费网站 | 五月天婷婷免费观看视频在线 | 性色成人网 | 在线精品日韩 | 蜜芽在线| 精品久久久久久久久久久 | 精品亚洲国产成av人片传媒 | 欧美综合视频 | 亚洲综合色婷婷在线观看 | 欧美怡红院 | 日本无卡码免费一区二区三区 | 国产亚洲精品一品区99热 | 日韩中文视频 | 亚洲美女黄色 | 激情丁香开心久久综合 | 久久精品一区二区三区四区 | 婷婷精品国产一区二区三区日韩 |