python3实现飞机大战

本文分享了使用Python3编写的飞机大战游戏的完整代码,适用于有pygame环境和Python3解释器的环境。代码经过验证,可以正常运行,并附有运行效果截图。阅读后有助于学习者了解Python编程和游戏开发。
摘要由CSDN通过智能技术生成

本文实例为大家分享了python3实现飞机大战的具体代码,供大家参考,具体内容如下

以下是亲测Python飞机大战全部代码,在保证有pygame环境支持并且有Python3解释器的话完全没问题!

如果大家喜欢的话麻烦点个赞!

运行效果如下图:


    #!/usr/bin/env python3
    # -*- coding: utf-8 -*-
    # 导入需要使用的模块
    import pygame
    from pygame.locals import *
    from sys import exit 
    import random
    
    # 设置屏幕大小的变量
    SCREEN_WIDTH = 480
    SCREEN_HEIGHT = 800
    import codecs
    # 子弹类
    class Bullet(pygame.sprite.Sprite):
     def __init__(self,bullet_img,init_pos):
      # 实现父类的初始化方法
      pygame.sprite.Sprite.__init__(self)
      self.image = bullet_img
      self.rect = self.image.get_rect()
      self.rect.midbottom = init_pos
      self.speed = 10
     def move(self):
      self.rect.top -= self.speed  
    
    # 玩家飞机类
    class Player(pygame.sprite.Sprite):
     def __init__(self,plane_img,player_rect,init_pos):
      pygame.sprite.Sprite.__init__(self)
      self.image=[]
      for i in range(len(player_rect)):
       self.image.append(plane_img.subsurface(player_rect[i]).convert_alpha()) 
      self.rect = player_rect[0]
      self.rect.topleft = init_pos
      self.speed = 8
      self.bullets = pygame.sprite.Group() #玩家飞机发射子弹的集合
      self.img_index = 0
      self.is_hit = False 
    
     # 发射子弹
     def shoot(self,bullet_img):
      bullet = Bullet(bullet_img,self.rect.midtop)
      self.bullets.add(bullet)    # 将子弹放入玩家飞机的子弹集合
     
     # 向上移动
     def moveUp(self):
      if self.rect.top <= 0:
       self.rect.top = 0
      else:
       self.rect.top -= self.speed 
     # 向下移动
     def moveDown(self):
      if self.rect.top >= SCREEN_HEIGHT - self.rect.height:
       self.rect.top = SCREEN_HEIGHT - self.rect.height
      else:
       self.rect.top += self.speed
     # 向左移动
     def moveLeft(self):
      if self.rect.left <= 0:
       self.rect.left = 0
      else:
       self.rect.left -= self.speed
     # 向右移动
     def moveRight(self):
      if self.rect.left >= SCREEN_WIDTH - self.rect.width:
       self.rect.left = SCREEN_WIDTH - self.rect.width
      else:
       self.rect.left += self.speed
    
    # 敌机类
    class Enemy(pygame.sprite.Sprite):
     # 飞机的图片 敌机坠毁的图片 敌机的位置
     def __init__(self,enemy_img,enemy_down_imgs,init_pos):
      pygame.sprite.Sprite.__init__(self)
      self.image = enemy_img
      self.rect = self.image.get_rect()
      self.rect.topleft = init_pos
      self.down_imgs = enemy_down_imgs
      self.speed = 2 
      self.down_index = 0
     # 移动
     def move(self):
      self.rect.top += self.speed 
    
    # 对文件的操作
    # 写入文本
    # 要写入的内容,写入方式,写入文件所在的位置
    def write_txt(contert, strim, path):
     f 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值