基本功能包括:
- 玩家飞机显示
- 玩家发射子弹
- 敌机显示
- 敌机发射子弹
# -*- coding: utf-8 -*-
"""
Created on Mon Feb 24 08:09:08 2020
@author: Administrator
"""
import pygame,sys,time,random
from pygame.locals import *
class PlayerPlane(object):
def __init__(self,screen):
#飞机子弹
self.bullet = []
#设置速度
self.speed = 5
#设置飞机名字
self.name = "player"
#飞机zhaop
planeImage = "Resources/hero.png"
self.image = pygame.image.load(planeImage).convert()
#设置默认坐标
self.x = 200
self.y = 520
#窗口属性
self.chuangkou = screen
def draw(self):
self.chuangkou.blit(self.image,(self.x,self.y))
for temp in self.bullet:
temp.draw()
def planeHandle(self,keyValue):
if keyValue == "right":
self.x+= 10
print("right")
elif keyValue == "left":
self.x -= 10
print("left")
elif keyValue == "space":
print("space")
self.bullet.append(Bullet("player",self.x+32,self.y-15,self.chuangkou))
class Bullet(object):
def __init__(self,name,x,y,screen):
#子弹照片
#子弹位置
self.x = x
self.y = y
#子弹的名称
self.name = name
if self.name == "player":
bulletImage = "Resources/bullet-1.png"
self.image = pygame.image.load(bulletImage).convert()
elif self.name == "enemy":
bulletImage = "Resources/bullet-3.png"
self.image = pygame.image.load(bulletImage).convert()
self.chuangkou = screen
def draw(self):
if self.name == "enemy":
self.y += 4
elif self.name == "player":
self.y -= 3
self.chuangkou.blit(self.image,(self.x,self.y))
class EnemyPlane(object):
def __init__(self,screen):
#飞机子弹
self.bullet = []
#设置速度
self.speed = 5
#设置飞机名字
self.name = "enemy"
#飞机zhaop
planeImage = "Resources/enemy-2.png"
self.image = pygame.image.load(planeImage).convert()
#设置默认坐标
self.x = 20
self.y = 20
#窗口属性
self.chuangkou = screen
self.fangxiang = "向右"
self.bullet = []
def draw(self):
self.chuangkou.blit(self.image,(self.x,self.y))
for temp in self.bullet:
temp.draw()
def move(self):
if self.fangxiang =="向右":
self.x +=2
elif self.fangxiang =="向左":
self.x -=2
if self.x>400:
self.fangxiang = "向左"
elif self.x<0:
self.fangxiang = "向右"
randnum = random.randint(1,100)
if randnum in [1,50]:
self.bullet.append(Bullet("enemy",self.x+25,self.y+60,self.chuangkou))
if __name__ == "__main__":
#创建界面
screen = pygame.display.set_mode((480,600),0,32)
bgImageFile = "Resources/background.png"
background = pygame.image.load(bgImageFile).convert()
player = PlayerPlane(screen)
enemy = EnemyPlane(screen)
#显示背景
while True:
screen.blit(background,(0,0))
#判断是否点击了退出按钮
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
print("exit")
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_a or event.key == K_LEFT:
player.planeHandle("left")
elif event.key == pygame.K_b or event.key == K_RIGHT:
player.planeHandle("right")
elif event.key == K_SPACE:
player.planeHandle("space")
player.draw()
enemy.draw()
enemy.move()
pygame.display.update()
time.sleep(0.01)
--------- 视频学习 小酥仙儿 2020.2.24 --------