中途岛海战大BOSS类设计

中途岛海战大BOSS类设计

中途岛海战midway war Boss class design

这是本人设计的飞机大战中途岛海战的BOSS类。供给单独需要的人。
中途岛海战midway war Boss class design 下面是部分代码预览:

"""
   中途岛海战大BOSS类设计,
   游戏中最后的boss是一架特大的飞机。它会不断地发射大颗粒子弹。
   当它的生命值降到一定的时候,会起火,最后爆炸。
"""
__author__ = "李兴球"
__date__ = "2019/9/13"

import time
import pygame
from pygame.locals import *
from random import * 

class Boss(pygame.sprite.Sprite):
    """继承自角色类的Boss类,在游戏中,它只有一个,
       所以让它属于pygame.sprite.GroupSingle组。
    """
    def __init__(self,image,explosion_images,screen):
        """
           image:造型,explosion_images:爆炸序列,screen:屏幕
        """
        pygame.sprite.Sprite.__init__(self)
        self.sw = screen.get_width()
        self.sh = screen.get_height()
        self._position = self.sw//2,self.sh//2     
        self.image = image
        self.rect = image.get_rect(center=self._position)
        # 以下是爆炸造型属性
        self.explosion_index = 0
        self.explosion_images = explosion_images
        self.explosion_rects = [im.get_rect() for im in explosion_images]
        self.explosion_amounts = len(explosion_images)

    def bounce_on_edge(self):
        """碰到边缘就反弹"""
               
    def update(self):
        """更新BOSS"""


if __name__ == "__main__":

    width,height = 960,720
    screen = pygame.display.set_mode((width,height))
    pygame.display.set_caption('中途岛海战Boss类设计程序by lixingqiu')
    
    boss_image = pygame.image.load("boss_images/bigboss.png").convert_alpha()
    boss_ex_images = [ f"boss_images/explode_{i}.png" for i in range(25)]
    boss_ex_images = [pygame.image.load(im).convert_alpha() for im in boss_ex_images]

    boss = Boss(boss_image,boss_ex_images,screen)
    boss_group = pygame.sprite.GroupSingle()
    boss_group.add(boss)
    
    clock = pygame.time.Clock()
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == QUIT:running = False
            if event.type == KEYDOWN:
                boss.lives -= 1
                if boss.lives <= 0:
                    boss.update_interval = 0.2
                    boss.status = 'explosion'
        
        boss_group.update()

        screen.fill((40,60,80))
        boss_group.draw(screen)
        pygame.display.update()
        clock.tick(60)
        
    pygame.quit()        

 
如需要查看完整源代码,请

成为会员后,登陆才能继续浏览!联系微信scratch8即可办理会员。
(会员专属:能浏览所有文章,下载所有带链接的Python资源。)

李兴球

李兴球的博客是Python创意编程原创博客

评论已关闭。