Python飛機大戰

2021-09-07 05:50:25 字數 3596 閱讀 7073

玩家飛機可以移動,可以發射子彈,敵機隨機產生,自由墜落。未新增擊落敵機的功能。主要用來練習類的封裝與繼承。

# -*- coding=utf-8 -*-

import pygame, random

from pygame.

locals

import

*class

base

(object):

def__init__

(self, x, y, screen)

: self.screen = screen

self.x = x

self.y = y

class

player

(base)

:def

__init__

(self)

:super()

.__init__(

210,

600, screen)

self.playername =

"./feiji/hero.gif"

self.player = pygame.image.load(self.playername)

.convert(

) self.bullet_list =

defdisplay

(self)

: self.screen.blit(self.player,

(self.x, self.y)

)for bullet in self.bullet_list:

bullet.display(

) bullet.mov(

)def

move_left

(self)

: self.x -=

10def

move_right

(self)

: self.x +=

10def

move_up

(self)

: self.y -=

10def

move_down

(self)

: self.y +=

10def

shot

(self)

: bullet = bullet(

)class

bullet

(base)

:def

__init__

(self)

:super()

.__init__(player.x+

40, player.y-

20, screen)

self.bulletname =

"./feiji/bullet-3.gif"

self.bullet = pygame.image.load(self.bulletname)

.convert(

)def

display

(self)

: self.screen.blit(self.bullet,

(self.x, self.y)

)def

mov(self)

: self.y -=

10class

enemy

(base)

:def

__init__

(self)

:super()

.__init__(random.randint(1,

10)*40

,0, screen)

self.enemyname =

"./feiji/enemy-1.gif"

self.enemy = pygame.image.load(self.enemyname)

.convert(

) self.enemy_list =

self.i =

0def

mov(self)

: self.y +=

2class

enemyarea

(enemy)

:def

display

(self)

:# 每隔一段時間建立一架敵機

if self.i %

80==0:

new_enemy = enemy(

) self.i +=

1for enemy in self.enemy_list:

self.screen.blit(enemy.enemy,

(enemy.x, enemy.y)

) enemy.mov(

)if __name__ ==

'__main__'

:# 建立乙個視窗,用來顯示內容

screen = pygame.display.set_mode(

(480

,890))

# 建立乙個和視窗大小的,用來充當背景

background = pygame.image.load(

"./feiji/background.png"

).convert(

) player = player(

) enemy = enemy(

) enemy_area = enemyarea(

)while

true

: screen.blit(background,(0

,0))

player.display(

) enemy_area.display(

)# 判斷按鍵

Python 飛機大戰

新建專案 在選中主韙專案的情況下,tab鍵,會自動的出來乙個下級分支 在選中當前分支的情況五,點enter,會出來乙個同級的分支 第一次背景精靈組,呼叫 update方法。結果就是,背景精靈組中的所有背景物件,呼叫自身的update方法 初始化的時候,生成了 兩個背景物件 並且,建立了乙個背景圖精靈...

python飛機大戰總結

似乎半個月沒寫部落格了。持之以恆的勳章都掉了。現在開始補回來。這乙個月學了學py,搭了一套自己的框架。總結下自己學到的吧,還有去tx之前準備自己補上的部分 1.感覺u3d什麼的遊戲引擎,已經幫忙做好遊戲圖層的管理,所以不用很操心,不過pygame感覺真的啥也不幫忙做。so寫了乙個圖層的管理 sort...

python 飛機大戰 background py

地圖 class background object 初始化地圖 def init self,scene,level 載入相同張資源,做交替實現地圖滾動 儲存場景物件 self.main scene scene 輔助移動地圖 self.y1 0 self.y2 self.main scene.siz...