玩家飛機可以移動,可以發射子彈,敵機隨機產生,自由墜落。未新增擊落敵機的功能。主要用來練習類的封裝與繼承。
# -*- 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...