生活随笔
收集整理的這篇文章主要介紹了
python 飞机大战小游戏
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
飛機大戰小游戲,這里需要下載pygame模塊
這是需要的素材,需要的自取:
上代碼:
import time
import pygame
from pygame.locals
import *
import sys
import random
class Player
():def __init__
(self,screen
):self.screen
=screenself.x
=150self.y
=500self.img
=pygame.image.load
(r
"feiji/hero1.png")self.BulletList
=[]self.moveLeftState
=0self.moveRightState
=0def display
(self
):self.screen.blit
(self.img,
(self.x,self.y
)) for b in self.BulletList:b.display
()b.move
()if b.y
<0:self.BulletList.remove
(b
)def move
(self
):
if self.moveLeftState
==1 and self.x
>-55:self.x-
=5if self.moveRightState
==1 and self.x
<250:self.x
+=5def fire
(self
):
b=PlayerBullet
(self.screen,self.x,self.y
)self.BulletList.append
(b
)class PlayerBullet
():def __init__
(self,screen,x,y
):self.screen
=screenself.x
=x+35self.y
=y-35self.img
=pygame.image.load
(r
"feiji/bullet.png")def display
(self
):self.screen.blit
(self.img,
(self.x,self.y
)) def move
(self
):self.y-
=20class Emeny
():def __init__
(self,screen
):self.screen
=screenself.x
=0self.y
=0self.img
=pygame.image.load
(r
"feiji/enemy0.png")self.BulletList
=[]self.moveState
=1def display
(self
):self.screen.blit
(self.img,
(self.x,self.y
))for b in self.BulletList:b.display
()b.move
()if b.y
>=600:self.BulletList.remove
(b
) def move
(self
):
if self.moveState
==1:self.x
+=5elif self.moveState
==0:self.x-
=5if self.x
<-30:self.moveState
=1elif self.x
>285:self.moveState
=0def fire
(self
):
b=EmenyBullet
(self.screen,self.x,self.y
)self.BulletList.append
(b
)class EmenyBullet
():def __init__
(self,screen,x,y
):self.screen
=screenself.x
=x+23self.y
=y+35self.img
=pygame.image.load
(r
"feiji/bullet2.png")def display
(self
):self.screen.blit
(self.img,
(self.x,self.y
)) def move
(self
):self.y
+=20def key_control
(player
):
for event in pygame.event.get
():
if event.type
==QUIT:print
("正在退出.....")sys.exit
(0) elif event.type
==KEYDOWN:
if event.key
==K_LEFT:print
("玩家向左!")player.moveLeftState
=1if event.key
==K_RIGHT:print
("玩家向右!")player.moveRightState
=1if event.key
==K_SPACE: print
("玩家開火!")player.fire
()elif event.type
==KEYUP:
if event.key
==K_LEFT: print
("停止向左...")player.moveLeftState
=0if event.key
==K_RIGHT: print
("停止向右...")player.moveRightState
=0class main
():
screen=pygame.display.set_mode
((300,600))background=pygame.image.load
(r
"feiji/background.png")player=Player
(screen
)emeny=Emeny
(screen
)while 1==1:screen.blit
(background,
(0,0))player.display
()emeny.display
()emeny.move
()player.move
()r=random.randint
(1,15)if r==8:emeny.fire
()key_control
(player
)pygame.display.update
()time.sleep
(0.05)if __name__
== '__main__':main
()
總結
以上是生活随笔為你收集整理的python 飞机大战小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。