首页 > Python > python飞机大战小游戏源代码免费下载

python飞机大战小游戏源代码免费下载

上一篇 下一篇
发射子弹
1.在英雄飞机类中定义一个fire的方法用来发射子弹,在检测到空格事件后,调用飞机的fire方法
2.定义一个子弹类,属性,display ,move 改变子弹的y -= 5
3.在fire方法中 先创建子弹对象 注意子弹x, y计算
4.给飞机多加了一个bullets列表属性,用来保存所有发射过的子弹
5.在贴完飞机图后,再重新贴所有的子弹图,遍历英雄飞机对象中的子弹列表属性,取到每一个子弹,去重复贴图和移动

敌机移动
1.定义敌机类, 属性 和 display , move
2.在创建英雄飞机的后面创建敌机对象
3.无限循环中贴敌机图, 让敌机移动
'''
1. 创建窗口
2.加载图片
3. 贴图
4. 刷新界面
5:英雄飞机:方法:飞机显示,飞机移动
6:键盘事件
7:英雄飞机发射子弹方法--fire:
    子弹类
        属性
        方法:显示、向上发射
 
8:销毁子弹超出部分---删除子弹
        删除子弹方法
 
 
'''
import pygame
from pygame.locals import *
from sys import exit
import time
width = 512
height = 768
 
class Bullet:
    '''子弹类'''
    def __init__(self,img_path,x,y,window):
        self.img = pygame.image.load(img_path)
        self.x = x
        self.y = y
        self.window = window
 
    def display(self):
        '''子弹显示'''
        self.window.blit(self.img,(self.x,self.y))
 
    def move_up(self):
        self.y -= 5
 
 
 
 
class Hero_Plane:
    '''英雄飞机'''
    def __init__(self,img_path,x,y,window):
        #加载英雄飞机图
        self.img = pygame.image.load(img_path)
        #初始化位置
        self.x = x
        self.y = y
        self.window = window
        self.bullets = []
 
    def display(self):
        #贴图英雄飞机
        self.window.blit(self.img,(self.x,self.y))
 
    def move_left(self):
        if self.x >= 0:
            self.x -= 5
 
    def move_right(self):
        if self.x <= 512 - 120:
            self.x += 5
 
    def fire(self):
        '''开火方法'''
        bullet = Bullet("./res/bullet_9.png",self.x+50,self.y-31,self.window)
        '''创建子弹类'''
        #bullet.display()
        self.bullets.append(bullet)#存储子弹
 
    def display_bullet(self):
        #bullet_list = self.bullets #去除所有子弹
        del_bullets = [] #定义要删除子弹
        for bullet in self.bullets:
            if bullet.y >= -31:
                bullet.display()
                bullet.move_up()
            else:
                del_bullets.append(bullet)#记录将要删除的子弹
 
        for bullet in del_bullets:
            self.bullets.remove(bullet)
        print("len=",len(self.bullets))
 
def main():
    #创建窗口
    window = pygame.display.set_mode((width,height))
    #标题
    pygame.display.set_caption("飞机大战")
    #加载背景图片
    image = pygame.image.load("./res/img_bg_level_1.jpg")
 
    #创建英雄飞机类
    hero_plane = Hero_Plane("./res/hero2.png",196,600,window)
    while True:
        # 贴图(指定路径,将图片绘制到窗口)
        window.blit(image, (0, 0))
        #调用英雄飞机方法,显示飞机
        hero_plane.display()
        '''
        #显示飞机如果有子弹直接可以发射
        # bullet_list = hero_plane.bullets#去除所有子弹
        # for bullet in bullet_list:
        #     bullet.display()
        #     bullet.move_up()
        '''
        hero_plane.display_bullet()
 
        # 更新
        pygame.display.update()
        #获取事件
        for event in pygame.event.get():
            #鼠标点击关闭窗口事件
            if event.type == QUIT:
                print('退出窗口')
                exit()
        #键盘事件
        if event.type == KEYDOWN:
            if event.key == K_SPACE:
                print("space")
                '''调用英雄飞机开火方法'''
                hero_plane.fire()
 
        #长安键盘事件
        pressed_key = pygame.key.get_pressed()
        if pressed_key[K_a] or pressed_key[K_LEFT]:
            hero_plane.move_left()
 
        if pressed_key[K_d] or pressed_key[K_RIGHT]:
            hero_plane.move_right()
 
        time.sleep(0.05)
 
 
 
 
 
 
 
 
 
if __name__ == '__main__':
    main()

模板简介:该模板名称为【python飞机大战小游戏源代码免费下载】,大小是,文档格式为.,推荐使用打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。

  • 下载密码 lanrenmb
  • 下载次数 19,724次
  • 使用软件
  • 文件格式
  • 文件大小
  • 上传时间 07-11
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
单页式简历模板 企业网站 微信文章 html5 响应式 微信素材 微信模板 微信公众平台 自适应 微信图片
您可能会喜欢的其他模板