def __init__(self): self.isDead=False self.width=64 self.height=64 self.frames=3 self.index=0 self.vy=-3*(game.constants.HEIGHT/600) self.y = game.constants.HEIGHT/2 self.sheet=SpriteSheet('../media/reloadBird1.png',3,192,256) self.timer=0 self.name='reload' for j in range(0,4): image=self.sheet.getImage(64,j*64,64,64,game.constants.WHITE) self.framesL_Arr.append(image) ##flip the image pygame.transform.flip(image,True,False) self.framesR_Arr.append(image) i = random.randint(0,1) if i==1: self.vx=2*(game.constants.WIDTH/800) self.x=0 self.framesC_Arr=self.framesR_Arr else: self.vx=-2*(game.constants.WIDTH/800) self.x=game.constants.WIDTH+self.width self.framesC_Arr=self.framesL_Arr
def __init__(self, x, y, vx, vy): self.name = "bat" self.frames = 4 self.sheet = SpriteSheet("../media/batsprite.png", 20, 256, 320) self.x = x self.y = y self.vx = vx self.vy = vy self.index = 0 image = self.sheet.getImage(0, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(64, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(128, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(192, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(0, 192.0, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(64, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(128, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(192, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) self.timer = 0 self.passes = 0 self.width = 60 self.height = 60 self.framesCurr_Arr = self.framesR_Arr
def __init__(self, x, y, vx, vy): self.name = "bossBird" self.isDead = False self.shooting = False self.x = x self.y = y self.vx = vx self.vy = vy self.frames = 4 self.width = 64 self.height = 64 self.sheet = SpriteSheet("../media/blueBird.png", 12, 384, 384) self.index = 0 self.timer = 0 for j in range(0, 4): image = self.sheet.getImage(j * 96, 0, 96, 96, game.constants.WHITE) self.framesM_Arr.append(image) for j in range(0, 4): image = self.sheet.getImage(j * 96, 2 * 96, 96, 96, game.constants.WHITE) self.framesR_Arr.append(image) for j in range(0, 4): image = self.sheet.getImage(j * 96, 1 * 96, 96, 96, game.constants.WHITE) self.framesL_Arr.append(image) self.framesC_Arr = self.framesR_Arr
class healthBar(pygame.sprite.Sprite): frames_Arr=[] def __init__(self): self.sheet = SpriteSheet("../media/healthBar.png",1,300,210) self.width=300 self.height=52 self.image = self.sheet.getImage(0,0,self.width,self.height, game.constants.WHITE) def update(self): if self.width>0: self.width-=30 self.image = self.sheet.getImage(0,0,self.width,self.height, game.constants.WHITE) def draw(self,SCREEN): SCREEN.blit(self.image,(0,game.constants.HEIGHT-52))
class reloadBird(Mob): #setup the frames framesL_Arr=[] framesR_Arr=[] framesC_Arr=[] def __init__(self): self.isDead=False self.width=64 self.height=64 self.frames=3 self.index=0 self.vy=-3*(game.constants.HEIGHT/600) self.y = game.constants.HEIGHT/2 self.sheet=SpriteSheet('../media/reloadBird1.png',3,192,256) self.timer=0 self.name='reload' for j in range(0,4): image=self.sheet.getImage(64,j*64,64,64,game.constants.WHITE) self.framesL_Arr.append(image) ##flip the image pygame.transform.flip(image,True,False) self.framesR_Arr.append(image) i = random.randint(0,1) if i==1: self.vx=2*(game.constants.WIDTH/800) self.x=0 self.framesC_Arr=self.framesR_Arr else: self.vx=-2*(game.constants.WIDTH/800) self.x=game.constants.WIDTH+self.width self.framesC_Arr=self.framesL_Arr def update(self): if self.timer%5==0: if self.index==self.frames-1: self.index=0 else: self.index+=1 self.timer+=1 self.x+=self.vx self.y+=self.vy self.vy+=.06 def draw(self,SURFACE): SURFACE.blit(self.framesC_Arr[self.index],(self.x,self.y))
class Bat(Mob): framesR_Arr = [] framesL_Arr = [] framesCurr_Arr = [] def __init__(self, x, y, vx, vy): self.name = "bat" self.frames = 4 self.sheet = SpriteSheet("../media/batsprite.png", 20, 256, 320) self.x = x self.y = y self.vx = vx self.vy = vy self.index = 0 image = self.sheet.getImage(0, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(64, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(128, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(192, 128, 60, 60, game.constants.BLACK) self.framesR_Arr.append(image) image = self.sheet.getImage(0, 192.0, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(64, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(128, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) image = self.sheet.getImage(192, 192, 60, 60, game.constants.BLACK) self.framesL_Arr.append(image) self.timer = 0 self.passes = 0 self.width = 60 self.height = 60 self.framesCurr_Arr = self.framesR_Arr def update(self): if self.vx < 0: if self.framesCurr_Arr != self.framesL_Arr: self.framesCurr_Arr = self.framesL_Arr self.index = 0 else: if self.framesCurr_Arr != self.framesR_Arr: self.framesCurr_Arr = self.framesR_Arr self.index = 0 if self.timer % 10 == 0: if self.index == self.frames - 1: self.index = 0 else: self.index += 1 self.timer += 1 self.x += self.vx self.y += self.vy self.checkWall() def checkWall(self): if self.x + self.width > game.constants.WIDTH: self.vx = -self.vx self.framesCurr_Arr = self.framesL_Arr self.index = 0 self.update() if self.x < 0: self.framesCurr_Arr = self.framesR_Arr self.index = 0 self.vx = -self.vx self.update() if self.y == (game.constants.HEIGHT - self.height): self.vy = 0 def isDead(self): self.vy = 9 self.vx = 0 self.isDead = True def collide(self, pos): if self.x < pos[0] and self.x + self.width > pos[0]: if self.y < pos[1] and self.y + self.height > pos[1]: return True return False def draw(self, SURFACE): if self.isDead == True: SURFACE.blit(self.framesCurr_Arr[0], (self.x, self.y)) else: SURFACE.blit(self.framesCurr_Arr[self.index], (self.x, self.y))
class bossBird(Mob): framesL_Arr = [] framesC_Arr = [] framesR_Arr = [] framesM_Arr = [] def __init__(self, x, y, vx, vy): self.name = "bossBird" self.isDead = False self.shooting = False self.x = x self.y = y self.vx = vx self.vy = vy self.frames = 4 self.width = 64 self.height = 64 self.sheet = SpriteSheet("../media/blueBird.png", 12, 384, 384) self.index = 0 self.timer = 0 for j in range(0, 4): image = self.sheet.getImage(j * 96, 0, 96, 96, game.constants.WHITE) self.framesM_Arr.append(image) for j in range(0, 4): image = self.sheet.getImage(j * 96, 2 * 96, 96, 96, game.constants.WHITE) self.framesR_Arr.append(image) for j in range(0, 4): image = self.sheet.getImage(j * 96, 1 * 96, 96, 96, game.constants.WHITE) self.framesL_Arr.append(image) self.framesC_Arr = self.framesR_Arr def update(self): if self.timer % 10 == 0: if self.index == self.frames - 1: self.index = 0 else: self.index += 1 ##check if you need to shoot if self.framesC_Arr == self.framesM_Arr: if self.index == 3 and self.timer % 3 == 0: if self.isDead is False: print("Bird Shot") self.shooting = True self.timer += 1 self.x += self.vx self.y += self.vy if self.x > game.constants.WIDTH / 4: if self.x < 3 * game.constants.WIDTH / 4: if self.framesC_Arr != self.framesM_Arr: self.framesC_Arr = self.framesM_Arr self.index = 0 elif self.vx > 0 and self.x > 3 * game.constants.WIDTH / 4: if self.framesC_Arr != self.framesR_Arr: self.framesC_Arr = self.framesR_Arr self.index = 0 elif self.vx < 0 and self.x < game.constants.WIDTH / 4: if self.framesC_Arr != self.framesL_Arr: self.framesC_Arr = self.framesL_Arr self.index = 0 self.checkWall() def checkWall(self): if self.x + self.width > game.constants.WIDTH: self.vx = -self.vx self.framesC_Arr = self.framesL_Arr self.index = 0 self.update() if self.x < 0: self.framesC_Arr = self.framesR_Arr self.index = 0 self.vx = -self.vx self.update() if self.y == (game.constants.HEIGHT - self.height): self.vy = 0 ### changes so the bird falls def isDead(self): self.vy = 9 self.vx = 0 self.isDead = True # check for a collision given the posistion def collide(self, pos): if self.x < pos[0] and self.x + self.width > pos[0]: if self.y < pos[1] and self.y + self.height > pos[1]: return True return False #####Draw to the screen def draw(self, SURFACE): if self.isDead == True: SURFACE.blit(self.framesC_Arr[0], (self.x, self.y)) else: SURFACE.blit(self.framesC_Arr[self.index], (self.x, self.y))
def __init__(self): self.sheet = SpriteSheet("../media/healthBar.png",1,300,210) self.width=300 self.height=52 self.image = self.sheet.getImage(0,0,self.width,self.height, game.constants.WHITE)