怎么用python做游戲_如何用python做游戲


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

圖片來源:http://www.walajiao.com/

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

我們就拿打飛機來做個例子(推薦學習:Python視頻教程)

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

過程大體就是這樣,Pygame還可以做許多游戲,只有專研過后才知道其中的手游代理樂趣
————————————————


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM