猫史档案馆


【Python作品分享】飞机混战【作品秀】

用户:天启若风天启若风查看:0 回复:0 评论:0 创建时间:2022-01-20T11:11:06


【作品展示】

center_image

 

【作品介绍】

飞机混战,图片已发。

 

【作品源代码】

import pygame
import random
pygame.init()
G = ('#FFFFFF')
sh = pygame.display.set_mode((500, 800))
pygame.display.set_caption('飞机大战')
c = pygame.time.Clock()
CR = pygame.USEREVENT
zzz=pygame.USEREVENT
pygame.time.set_timer(CR, 1500)
pygame.time.set_timer(zzz, 600)

class 英雄(pygame.sprite.Sprite):
    def __init__(self, speed):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((50, 50))
        self.image.fill('gold')
        self.rect = self.image.get_rect()
        self.rect.x = 250
        self.rect.y = 700
        self.speed = speed

    def update(self, *args):
        keys = pygame.key.get_pressed()
        if keys[pygame.K_UP]:
            self.rect.y -= self.speed
        if keys[pygame.K_DOWN]:
            self.rect.y += self.speed
        if keys[pygame.K_LEFT]:
            self.rect.x -= self.speed
        if keys[pygame.K_RIGHT]:
            self.rect.x += self.speed
        if keys[pygame.K_SPACE]:
            self.fire()

    def fire(self):
        b = 子弹(10)
        b.rect.x = self.rect.centerx-5
        b.rect.y = self.rect.centery-50 
        弹药.add(b)       
class 子弹(pygame.sprite.Sprite):
    def __init__(self, speed):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((10, 30))
        self.image.fill('skyblue')
        self.rect = self.image.get_rect()
        self.speed = speed

    def update(self, *args):
        self.rect.y -= 3


class 敌人(pygame.sprite.Sprite):
    def __init__(self, speed):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((50, 50))
        self.image.fill('red')
        self.rect = self.image.get_rect()
        self.rect.x = random.randint(0, 500)
        self.rect.y = 0
        self.speed = speed
    def update(self, *args):
        self.rect.y += 3
        self.firee()
    def firee(self):
        AS = 子弹恶(5)
        AS.rect.x = self.rect.centerx-5
        AS.rect.y = self.rect.centery+25
        恶弹.add(AS)       
class 子弹恶(pygame.sprite.Sprite):
    def __init__(self, speed):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.Surface((10, 30))
        self.image.fill('black')
        self.rect = self.image.get_rect()
        self.speed = speed

    def update(self, *args):
        self.rect.y += 4
class 失败(pygame.sprite.Sprite):
    def __init__(self):
        pygame.sprite.Sprite.__init__(self)
        self.image =pygame.image.load('失败.jpeg')
        self.rect = self.image.get_rect()
        self.rect.x = -35
        self.rect.y = 100
ss=失败()
h = 英雄(5)
好人 = pygame.sprite.Group()
失败1 =pygame.sprite.Group()
弹药 = pygame.sprite.Group()
恶弹 =pygame.sprite.Group()
敌人1 = pygame.sprite.Group()
好人.add(h)
while True:
    c.tick(60)
    for i in pygame.event.get():
        if i.type == pygame.QUIT:
            pygame.quit()
            exit()
        if i.type == CR:
            v = 敌人(5)
            敌人1.add(v)              
    pygame.sprite.groupcollide(敌人1, 弹药, True, True)
    pygame.sprite.groupcollide(恶弹, 弹药, True, True)
    if(pygame.sprite.groupcollide(恶弹,好人,True,True)):
        失败1.add(ss)
    sh.fill(G)
    for g in [好人, 敌人1, 弹药,恶弹,失败1]:
        g.update()
        g.draw(sh)
    pygame.display.update()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页