示例#1
0
 def explode(self, Game, collide=None):
     if collide != None:
         collide.stain_black(self.pos_x, self.pos_y)
         Game.screen.blit(collide.image, collide.rect)
     explosion(int(self.pos_x), int(self.pos_y), Game)
     Game.sprites.remove(self)
     Game.change_turn()
示例#2
0
文件: tank.py 项目: Avd6977/me701
 def explode(self, Game, collide=None):
     if collide != None:
         collide.stain_black(self.pos_x, self.pos_y)
         Game.screen.blit(collide.image, collide.rect)
     explosion(int(self.pos_x), int(self.pos_y), Game)
     Game.sprites.remove(self)
     Game.change_turn()
示例#3
0
    def update(self):
        self.checkbounds()
        self.autopilot()
        self.rect = self.rect.move(self.movement)

        if self.fire == 1 and self.waitTime % 10 == 1:
            self.shoot()

        if self.health <= 0:
            (x, y) = self.rect.center
            if pygame.mixer.get_init():
                self.explosion_sound.play(maxtime=1000)
            explosion(x, y, 100)
            self.kill()
示例#4
0
    def __init__(self,pygame,dispsurf,enviorment,settings,turretpos,turretlen,collisionboxes):
        #set moving states
        self.pygame=pygame
        self.dispsurf=dispsurf
        self.enviorment=enviorment
        self.settings=settings
        self.turretpos=turretpos
        self.collisionboxes=collisionboxes

        #calculate initial position and velocity
        angle=self.settings.angleturret

        #create bullit outside tank so we don't have problem with it blowing itself 
        self.pos0=(self.turretpos[0]+turretlen*cos(angle),self.turretpos[1]-turretlen*sin(angle))
        self.pos=self.pos0
        self.v0=(VEL*cos(angle),-VEL*sin(angle))
        self.v=self.v0
        self.time=0

        #explosion variables
        self.exploded=0
        self.explosionstep=0

        #create explosion class 
        self.explosion=explosion(pygame,dispsurf,EXPLOSIONNUM,EXPLOSIONRAD,collisionboxes)
示例#5
0
    def __init__(self, pygame, dispsurf, enviorment, settings, turretpos,
                 turretlen, collisionboxes):
        #set moving states
        self.pygame = pygame
        self.dispsurf = dispsurf
        self.enviorment = enviorment
        self.settings = settings
        self.turretpos = turretpos
        self.collisionboxes = collisionboxes

        #calculate initial position and velocity
        angle = self.settings.angleturret

        #create bullit outside tank so we don't have problem with it blowing itself
        self.pos0 = (self.turretpos[0] + turretlen * cos(angle),
                     self.turretpos[1] - turretlen * sin(angle))
        self.pos = self.pos0
        self.v0 = (VEL * cos(angle), -VEL * sin(angle))
        self.v = self.v0
        self.time = 0

        #explosion variables
        self.exploded = 0
        self.explosionstep = 0

        #create explosion class
        self.explosion = explosion(pygame, dispsurf, EXPLOSIONNUM,
                                   EXPLOSIONRAD, collisionboxes)
示例#6
0
    def __init__(self, dispsurf, pygame, enviorment, settings, bullits,
                 collisionboxes):
        self.dispsurf = dispsurf
        self.pygame = pygame
        self.enviorment = enviorment
        self.settings = settings
        self.anum = 0
        self.bullits = bullits  #global bullits list, we add all bullits to this
        self.health = HEALTH
        self.killed = 0
        self.killsteps = 0
        self.collisionboxes = collisionboxes
        #add self to collisionbox array, box includes turret and bottom part of tank
        #need to pass self as argument to collisionbox method
        self.mycollisionbox = collisionbox(
            self, dispsurf, SXTANK, SYTANKTOT,
            (self.settings.posx, enviorment.sizey -
             (enviorment.heightground + self.settings.posy + SYTANKTOT / 2.0)))
        self.collisionboxes.append(self.mycollisionbox)

        #variables connected to killing tank
        self.myclouds = []
        self.explosion = explosion(pygame, dispsurf, EXPLOSIONNUM,
                                   EXPLOSIONRAD, collisionboxes)
        self.turrettraj = (0, 0)
        self.spinrate = randint(-100, 100) / 300.0
        self.v0 = (randint(-40, 40) / 100.0, randint(-400, -200) / 50.0
                   )  #initial velocity of turret if we kill tank
示例#7
0
    def update(self):
        self.checkbounds()
        self.autopilot()
        self.rect = self.rect.move(self.movement)

        if self.fire == 1 and self.waitTime % 10 == 1:
            self.shoot()

        if self.health <= 0:
            (x, y) = self.rect.center
            if pygame.mixer.get_init():
                self.explosion_sound.play(maxtime=1000)
            explosion(x, y, 75)
            self.kill()
        self.index += 1
        self.index = self.index % 7
        self.image = self.images[self.index]
        self.image = pygame.transform.rotate(self.image, 90)
        self.images[self.index] = self.image
示例#8
0
def stone_code():
    global Game,Score
    if Game and len(stones)==0:
        n = random.randint(-1,1)
        for i in range(-1,2):
            if i==n:
                continue
            stone = class_stone(i)
            stone.load("image/stone2.png",300,300,4)
            stones.append(stone)
    elif Game:
        if stones[0].y>SCREEN_HEIGHT/3 and len(stones)<=2:
            n = random.randint(-1,1)
            for i in range(-1,2):
                if i==n:
                    continue
                stone = class_stone(i)
                stone.load("image/stone2.png",300,300,4)
                stones.append(stone)
                
    for i in range(len(stones)-1,-1,-1):
        stones[i].update(ticks,SPEED)
        stones[i].draw(screen)
        if Game and stones[i].y>= SCREEN_HEIGHT/20*7 and stones[i].y <= SCREEN_HEIGHT/20*11 and ufo.locate==stones[i].track and abs(ufo.x-stones[i].x)<200:
            del stones[i]
            if shield.visable:
                stone_break.play()
                Score -= 100
                continue
            print("GameOver 遊戲結束")
            print("獲得分數:",int(Score))
            explosion_sound.play()
            Game = 0
            explosions.append(explosion(screen))
            explosions[0].load("image/exp2.png",62,62,4,ufo.x,ufo.y)
            continue
        
        if stones[i].y>SCREEN_HEIGHT:
            del stones[i]