import pygame,sys
import time
import random
pygame.init()
pygame.mixer.init()
FRAM_PER_SECONDS=7
clock =pygame.time.Clock()
WIDTH=1290
HEIGHT=715
load_img_x=1290/2-376/2
load_img_y=715/2-224/2
load_animate=False
check=1
pause=False
font = pygame.font.SysFont(None,50,True)
load_music=pygame.mixer.Sound("music/11046.wav")
start_music=pygame.mixer.Sound("music/战斗背景音效.wav")
back_music=pygame.mixer.Sound("music/BGM_1 (1)_02.wav")
green_jn=pygame.mixer.Sound("music/敌人技能.wav")
green_attack_music=pygame.mixer.Sound("music/怪叫.wav")
player_hit_music=pygame.mixer.Sound("music/机甲受伤.wav")
walk_music=pygame.mixer.Sound("music/机器走路.wav")
jump_music=pygame.mixer.Sound("music/弹跳.wav")
diren_die_music=pygame.mixer.Sound("music/坦克爆炸.wav")
jn_music=pygame.mixer.Sound("music/激光声游戏喷射_1_3.wav")
attack_music=pygame.mixer.Sound("music/敌人普攻_01_1.wav")
check_music=pygame.mixer.Sound("music/升级或者获得奖励.wav")
feiti_music=pygame.mixer.Sound("music/机器故障.wav")
game_over_music=pygame.mixer.Sound("music/我一定会回来的.wav")
life_add_music=pygame.mixer.Sound("music/加血.wav")
player_hit_music.set_volume(0.5)
check_music.set_volume(0.2)
green_attack_music.set_volume(0.1)
back_music.set_volume(0)
jn_music.set_volume(1)
start_music.set_volume(0.5)
load_music.set_volume(1)
map_img=pygame.image.load("map_img/left.jpg")
start_back=pygame.image.load("load_img/start_back2.png")
set_font = pygame.font.SysFont("KaiTi", 47)
screen=pygame.display.set_mode((WIDTH,HEIGHT),pygame.FULLSCREEN)
screen.blit(start_back,(0,0))
pygame.display.set_caption("空 洞 机 甲 - - - - - ( 河软空洞传奇工作室 版权所有 Copyright @ 2020 ) 感 谢 支 持")
pygame.display.set_icon(start_back)
load_image=()
load_count=1
start_flag=False
start_music.play(-1)
for pic_num in range(1,30):
if pic_num<10:
load_image+=(pygame.image.load("./load_img/jz00"+str(pic_num)+".png"),)
elif pic_num>9:
load_image+=(pygame.image.load("./load_img/jz0"+str(pic_num)+".png"),)
class walk_sound():
def __init__(self,src):
self.sound=pygame.mixer.Sound(src)
self.sound.set_volume(1)
def music_play(self):
self.sound.play()
def music_stop(self):
self.sound.stop()
class check_fun(object):
check_list = []
for pic_num in range(1, 13):
check_list+=(pygame.image.load("./right_check/箭头" + str(pic_num) + ".png"),)
def __init__(self):
self.check_count=1
def draw(self,screen):
if self.check_count>=12:
self.check_count=1
if self.check_count:
screen.blit(self.check_list[self.check_count],(1100,290))
self.check_count+=1
class Player(object):
flc_list=()
lizi_list = ()
lizi2_list = ()
lizi3_list =()
walk_right = ()
walk_left = ()
jn_list = ()
jump_list = ()
hit_list = ()
attack_list_one=()
attack_list_two = ()
attack_list_three = ()
life_list=()
die_list=()
all_tuple=()
stand_list = ()
HP_tuple=()
cd_tuple=()
level_tuple=()
for pic_num in range(1,13):
level_tuple+=(pygame.image.load("./Update/"+str(pic_num)+".png"),)
for pic_num in range(1,17):
all_tuple+=(pygame.image.load("./jn/BIG/1 ("+str(pic_num)+").png"),)
for pic_num in range(1,12):
cd_tuple+=(pygame.image.load("./cd/cd"+str(pic_num)+".png"),)
for pic_num in range(1,17):
HP_tuple+=(pygame.image.load("./HP/"+str(pic_num)+".png"),)
for pic_num in range(1,65):
die_list+=(pygame.image.load("./die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,33):
flc_list+=(pygame.image.load("./jn/flc ("+str(pic_num)+").png"),)
for pic_num in range(1,49):
lizi_list+=(pygame.image.load("./fire/"+str(pic_num)+".png"),)
for pic_num in range(1,34):
lizi2_list+=(pygame.image.load("./huohua/"+str(pic_num)+".png"),)
for pic_num in range(1,81):
lizi3_list+=(pygame.image.load("./huohua2/"+str(pic_num)+".png"),)
for pic_num in range(1,5):
life_list+=(pygame.image.load("./hit/ss (1).png"),)
life_list+=(pygame.image.load("./hit/ss (2).png"),)
for pic_num in range(1,13):
walk_right+=(pygame.image.load("./walk/walk ("+str(pic_num)+").png"),)
for pic_num in range(12,0,-1):
walk_left+=(pygame.image.load("./walk/walk ("+str(pic_num)+").png"),)
for pic_num in range(1, 25):
stand_list+=(pygame.image.load("./stand/stand (" + str(pic_num) + ").png"),)
for pic_num in range(1,41):
jn_list+=(pygame.image.load("./jn/jn ("+str(pic_num)+").png"),)
for pic_num in range(1,39):
jump_list+=(pygame.image.load("./jump/jump ("+str(pic_num)+").png"),)
for pic_num in range(1,48):
hit_list+=(pygame.image.load("./hit/jd ("+str(pic_num)+").png"),)
for pic_num in range(1,14):
attack_list_one+=(pygame.image.load("./attack/1attack ("+str(pic_num)+").png"),)
for pic_num in range(1,7):
attack_list_two+=(pygame.image.load("./attack/2attack ("+str(pic_num)+").png"),)
for pic_num in range(1,12):
attack_list_three+=(pygame.image.load("./attack/3attack ("+str(pic_num)+").png"),)
def __init__(self,x,y,width,height):
self.x=x
self.y=y
self.width=width
self.height=height
self.speed=1
self.left=False
self.right=True
self.stand=True
self.jump=False
self.i=False
self.hit=False
self.attack=0
self.stand_count=1
self.walk_count=1
self.jump_count=1
self.jn_count=1
self.hit_count=1
self.attack_Bool=False
self.attack_one_count = 1
self.attack_two_count = 1
self.attack_three_count = 1
self.life=100
self.t=10
self.hit_box = (self.x, self.y, self.width, self.height)
self.kill_enemy=0
self.life_remove_bool=False
self.life_count=0
self.lizi_count=1
self.lizi2_count = 1
self.flc_count=0
self.lizi3_count=1
self.HP_count=0
self.cd_count=0
self.all_count=0
self.cd=False
self.levelAdd=False
self.level=1
self.flc=False
self.die=False
self.all=False
self.die_count=0
self.level_count=0
self.HP_img=pygame.image.load("./HP/电池.png")
self.skill_img = pygame.image.load("./HP/skill_num.png")
self.player_img = pygame.image.load("./HP/head.png")
self.win_bool=False
self.lifeAdd=False
self.all_lenth=50
def draw(self,screen):
if self.all_count>=16:
self.all_count=0
self.all=False
self.all_lenth=50
if player.all_count>14:
U_Testing(enemylist)
U_Testing(enemylist2)
U_Testing(enemylist3)
U_Testing(enemylist4)
if self.cd_count>=11:
self.cd_count=0
self.cd=False
if self.HP_count == 2:
life_add_music.play()
if self.HP_count>=16:
life_add_music.stop()
self.HP_count=0
self.lifeAdd = False
if self.level_count==2:
life_add_music.play()
if self.level_count>=12:
life_add_music.stop()
if self.level_count>=12:
self.level_count=0
self.levelAdd = False
if self.lizi_count>=48:
self.lizi_count=1
if self.lizi2_count>=33:
self.lizi2_count=1
if self.lizi3_count>=80:
self.lizi3_count=1
if self.lizi2_count:
screen.blit(self.lizi2_list[self.lizi2_count], (-100, 500))
screen.blit(self.lizi2_list[self.lizi2_count], (200, 500))
screen.blit(self.lizi2_list[self.lizi2_count], (500, 500))
screen.blit(self.lizi2_list[self.lizi2_count], (800, 500))
screen.blit(self.lizi2_list[self.lizi2_count], (1100, 500))
self.lizi2_count += 1
if self.lizi_count:
screen.blit(self.lizi_list[self.lizi_count], (-100, 600))
screen.blit(self.lizi_list[self.lizi_count], (200, 550))
screen.blit(self.lizi_list[self.lizi_count], (500, 600))
screen.blit(self.lizi_list[self.lizi_count], (800, 550))
screen.blit(self.lizi_list[self.lizi_count], (1100, 600))
self.lizi_count+=1
if self.die_count >=64:
self.die_count=0
self.life=100
self.kill_enemy=0
self.die = False
self.stand = True
return
if self.stand_count>=24:
self.stand_count=1
if self.flc_count>=32:
self.flc_count=0
self.flc=False
if self.life_count>=8:
self.life_count=0
self.life_remove_bool=False
if self.attack_one_count>=13:
self.attack_one_count=1
self.stand=True
self.attack_Bool = False
if self.attack_two_count>=6:
self.attack_two_count=1
self.stand = True
self.attack_Bool = False
if self.attack_three_count>=11:
self.attack_three_count=1
self.stand = True
self.attack_Bool = False
if self.walk_count>=12:
self.walk_count=1
if self.jump_count>=38:
self.jump_count=1
if self.jn_count>=40:
self.jn_count=1
if self.hit_count>=47:
self.hit_count=1
if
self.die_count==20:
diren_die_music.play()
if self.life_remove_bool and not self.die:
screen.blit(self.life_list[self.life_count],(self.x,self.y))
if self.life_count==0:
player_hit_music.play()
elif self.life_count==5:
player_hit_music.stop()
self.stand=False
self.i = False
self.j = False
self.left=False
self.right=False
self.jump = False
self.flc = False
self.life_count+=1
elif self.stand and not self.jump and not self.i and not self.flc and not self.hit and not self.attack_Bool and not self.life_remove_bool and not self.die:
screen.blit(self.stand_list[self.stand_count],(self.x,self.y))
self.stand_count+=1
elif self.right and not self.stand and not self.jump and not self.i and not self.flc and not self.hit and not self.attack_Bool and not self.life_remove_bool and not self.die:
screen.blit(self.walk_right[self.walk_count], (self.x,self.y))
self.walk_count += 1
if self.walk_count==2:
walk_music.play()
elif self.walk_count==1:
walk_music.stop()
elif self.left and not self.stand and not self.jump and not self.i and not self.flc and not self.hit and not self.attack_Bool and not self.life_remove_bool and not self.die:
screen.blit(self.walk_left[self.walk_count], (self.x,self.y))
self.walk_count += 1
if self.walk_count==2:
walk_music.play()
elif self.walk_count==1:
walk_music.stop()
elif self.flc and not self.die:
if self.flc_count==1:
feiti_music.play()
if self.flc_count==20:
feiti_music.stop()
screen.blit(self.flc_list[self.flc_count], (self.x, self.y-120))
self.flc_count += 1
elif self.i and not self.die:
screen.blit(self.jn_list[self.jn_count],(self.x,self.y-75))
self.jn_count+=1
if self.jn_count == 2:
jn_music.play()
elif self.jn_count == 1:
jn_music.stop()
elif self.jump and not self.attack_Bool and not self.die:
screen.blit(self.jump_list[self.jump_count],(self.x,self.y-75))
self.jump_count+=1
if self.jump_count == 2:
jump_music.play()
elif self.jump_count == 1:
jump_music.stop()
elif self.attack==1 and self.attack_Bool and not self.die:
screen.blit(self.attack_list_one[self.attack_one_count],(self.x,self.y))
self.attack_one_count += 1
if self.attack_one_count==2:
attack_music.play()
elif self.attack_one_count==1:
attack_music.stop()
elif self.attack==2 and self.attack_Bool and not self.die:
screen.blit(self.attack_list_two[self.attack_two_count],(self.x,self.y))
self.attack_two_count += 1
if self.attack_two_count == 2:
attack_music.play()
elif self.attack_two_count == 1:
attack_music.stop()
elif self.attack==3 and self.attack_Bool and not self.die:
screen.blit(self.attack_list_three[self.attack_three_count],(self.x,self.y))
self.attack_three_count += 1
if self.attack_three_count == 2:
attack_music.play()
elif self
.attack_three_count == 1:
attack_music.stop()
elif self.hit and not self.die:
screen.blit(self.hit_list[self.hit_count],(self.x,self.y))
self.hit_count+=1
elif self.die:
self.life = 0
self.skill = False
self.attack = False
screen.blit(self.die_list[self.die_count],(self.x-100,self.y-20))
self.die_count+=1
self.hit_box = (self.x, self.y, self.width, self.height)
if self.levelAdd:
LEVAdd = font.render("LEVEL UP ", True, (255, 0, 0))
screen.blit(LEVAdd, (player.x - 50, player.y - 50))
screen.blit(self.level_tuple[self.level_count],(self.x-40,self.y-90))
self.level_count+=1
if self.lifeAdd:
screen.blit(self.HP_tuple[self.HP_count],(self.x,self.y-40))
self.HP_count+=1
if self.all:
self.all_lenth+=50
screen.blit(self.all_tuple[self.all_count],(self.x+self.all_lenth,self.y+(self.height/2)-210))
self.all_count+=1
if self.kill_enemy>=7:
self.win_bool=True
else:
self.win_bool=False
def die_enemy_green():
enemylist.pop()
def die_enemy_grey():
enemylist2.pop()
def die_enemy_pink():
enemylist3.pop()
def die_enemy_Boss():
enemylist4.pop()
class Boss(object):
walk_tuple = ()
skill_tuple = ()
attack_tuple = ()
life_remove_tuple = ()
die_tuple = ()
arm_tuple = ()
for pic_num in range(1,13):
walk_tuple += (pygame.image.load("./yellow/walk1/1 ("+str(pic_num)+").png"),)
for pic_num in range(1,34):
skill_tuple += (pygame.image.load("./yellow/skill/skill ("+str(pic_num)+").png"),)
for pic_num in range(1,30):
attack_tuple += (pygame.image.load("./yellow/attack/attack ("+str(pic_num)+").png"),)
for pic_num in range(1,40):
life_remove_tuple += (pygame.image.load("./yellow/hit/hit ("+str(pic_num)+").png"),)
for pic_num in range(1,13):
die_tuple += (pygame.image.load("./yellow/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,13):
die_tuple += (pygame.image.load("./yellow/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,13):
die_tuple += (pygame.image.load("./yellow/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,13):
die_tuple += (pygame.image.load("./yellow/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,13):
die_tuple += (pygame.image.load("./yellow/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,7):
arm_tuple += (pygame.image.load("./yellow/arm/arm ("+str(pic_num)+").png"),)
def __init__(self,x,y,start,end):
self.x = x
self.y = y
self.width = 149
self.height = 122
self.area = [start,end]
self.Yarea = [390-self.height,640-self.height]
self.walk_count = 0
self
.skill_count = 0
self.attack_count = 0
self.life_count = 0
self.die_count = 0
self.arm_count = 0
self.life = 0
self.speed = 1.5
self.speed_Y = 1.9
self.hit_box = (self.x,self.y,self.width,self.height)
self.die = False
self.walk = True
self.skill=False
self.attack=False
self.life_remove_bool=False
self.Enemy_Y = 0
self.enemy_img = pygame.image.load("./HP/enemy_yellow.png")
self.game_start_Bool = True
def draw(self,screen):
global HP_img_boss
global HP_bool_boss
if self.game_start_Bool:
self.life+=0.5
if self.life>15:
self.life=15
self.game_start_Bool=False
self.move()
if self.life <= 0:
self.life_remove_bool = False
self.die = True
self.walk = False
if self.arm_count>=6:
self.arm_count=0
if self.life_count>=39:
self.life_count=0
self.life_remove_bool=False
self.walk=True
if self.walk_count>=12:
self.walk_count=0
if self.skill_count==20 and not self.life_remove_bool and not self.die:
if collision_check_tanke(player, enemylist4[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.attack_count == 17 and not self.life_remove_bool and not self.die:
if collision_check_tanke_yellow(player, enemylist4[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.skill_count >= 33:
self.skill_count = 0
self.skill=False
self.walk=True
if self.attack_count >= 29:
self.attack_count = 0
self.attack = False
self.walk = True
if self.die_count >= 60:
HP_img_boss = Prop_Hp(random.randint(int(self.x), int(self.x + self.width)), random.randint(int(self.y), int(self.y + self.height)))
HP_bool_boss=True
player.kill_enemy+=1
self.die_count=0
self.skill_count=0
self.die=False
self.walk=True
self.speed_Y*=2.5
self.speed*=2.5
self.life=0
self.game_start_Bool = True
self.y=500
game_over_music.stop()
die_enemy_Boss()
return
if self.die_count==20:
game_over_music.play()
if self.life_remove_bool:
self.walk=False
self.skill = False
self.attack = False
screen.blit(self.life_remove_tuple[self.life_count], (self.x, self.y))
self.life_count += 1
elif self.skill and not self.life_remove_bool:
if self.skill_count==15:
green_jn.play()
if self.skill_count==1:
green_jn.stop()
screen.blit(self.skill_tuple[self.skill_count], (self.x-150, self.y-50))
self.skill_count+=1
elif self.attack and not self.life_remove_bool:
screen.blit(self.attack_tuple[self.attack_count],(self.x-250,self.y))
self.attack_count+=1
if self.attack_count == 10 and self.attack:
green_attack_music.play()
if self.attack_count == 29 or not self.attack:
green_attack_music.stop()
if self.speed>0 and self.walk and not self.die:
self.skill = False
screen.blit(self.walk_tuple[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.speed<0 and self.walk:
screen.blit(self.walk_tuple[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.die:
self.life = 0
self.skill = False
self.attack = False
if self.die_count%2==0 and self.die_count<20:
pygame.time.delay(10)
screen.fill([0, 0, 0])
elif self.die_count%2==1 and self.die_count<20:
pygame.time.delay(10)
screen.fill([255, 0, 0])
self.x += 11
screen.blit(self.arm_tuple[self.arm_count],(700,500))
self.arm_count+=1
screen.blit(self.die_tuple[self.die_count],(self.x,self.y))
self.die_count+=1
screen.blit(self.enemy_img, (1160, 0))
pygame.draw.rect(screen, (218, 234, 87), (600 + (15 - self.life) * (540 / 15), 40, (540 / 15) * self.life, 30))
if self.game_start_Bool == False and self.life < 15:
pygame.draw.rect(screen, (102, 115, 44), (600, 40, 540 - (540 / 15 * self.life), 30))
def move(self):
if collision_check_fanxiang(player, enemylist4[0]) or collision_check_fanxiang( enemylist4[0], player) :
enemylist4[0].speed = enemylist4[0].speed * -1
if player.walk_right or player.stand:
if collision_check_tanke(player, enemylist4[0]) and not self.life_remove_bool and not self.die and not self.attack and ( player.stand or player.left or player.right ) and not player.die :
self.skill=True
self.walk = False
if collision_check_tanke_yellow(player, enemylist4[0]) and not self.life_remove_bool and not self.die and not self.skill and ( player.stand or player.left or player.right ) and not player.die:
self.attack = True
self.walk = False
if self.die_count >= 60:
return
if self.walk:
if self.speed_Y>0 and not self.die:
if self.y<self.Yarea[1]+self.speed_Y:
self.y += self.speed_Y
else:
self.speed_Y=self.speed_Y*(-1)
self.y+=self.speed_Y
self.walk_count=0
elif self.speed_Y<0 and not self.die:
if self.y>self.Yarea[0]-self.speed_Y:
self.y+=self.speed_Y
else:
self.speed_Y = self.speed_Y * (-1)
self.y += self.speed_Y
self.walk_count = 0
if self.speed>0 and not self.die:
if self.x<self.area[1]+self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
elif self.speed<0 and not self.die:
if self.x>self.area[0]-self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
class Enemy_pink(object):
walk_left=()
walk_right=()
die_list = ()
life_remove_list = ()
falsh_list=()
skill_list=()
attack_list = ()
for pic_num in range(1,83):
attack_list+=(pygame.image.load("./pink/attack/attack1 ("+str(pic_num)+").png"),)
for pic_num in range(1,17):
walk_left+=(pygame.image.load("./pink/walk/"+str(pic_num)+".png"),)
for pic_num in range(16,0,-1):
walk_right+=(pygame.image.load("./pink/walk/"+str(pic_num)+".png"),)
for pic_num in range(1,51):
skill_list+=(pygame.image.load("./pink/skill2/"+str(pic_num)+".png"),)
for pic_num in range(1,58):
die_list+=(pygame.image.load("./pink/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,29):
life_remove_list+=(pygame.image.load("./pink/hit/hit ("+str(pic_num)+").png"),)
def __init__(self,x,y,start,end):
self.x=x
self.y=y
self.width=361
self.height=179
self.area=[start,end]
self.Yarea = [440, 500]
self.walk_count=1
self.speed=-2
self.speed_Y=1.9
self.life=0
self.hit_box = (self.x, self.y, self.width, self.height)
self.die=False
self.walk=True
self.die_count=1
self.life_count=1
self.skill_count=1
self.attack_count=0
self.life_remove_bool=False
self.skill=False
self.attack = False
self.Enemy_Y=0
self.enemy_img = pygame.image.load("./HP/enemy_pink.png")
self.HP_img = pygame.image.load("./HP/电池.png")
self.game_start_Bool=True
def draw(self,screen):
global HP_img_pink
global HP_bool_pink
if self.game_start_Bool:
self.life+=0.17
if self.life>3:
self.life=3
self.game_start_Bool=False
self.move()
if self.life <= 0:
self.life_remove_bool = False
self.die = True
self.walk = False
if self.life_count>=28:
self.life_count=0
self.life_remove_bool=False
self.walk=True
if self.walk_count>=16:
self.walk_count=0
if self.skill_count==30 and not self.life_remove_bool and not self.die:
if collision_check_tanke_jincheng(player, enemylist3[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.attack_count == 50 and not self.life_remove_bool and not self
.die:
if collision_check_tanke(player, enemylist3[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.skill_count >= 50:
self.skill_count = 0
self.skill=False
self.walk=True
if self.attack_count >= 82:
self.attack_count = 0
self.attack = False
self.walk = True
if self.die_count >= 57:
HP_img_pink = Prop_Hp(random.randint(int(self.x), int(self.x + self.width)), random.randint(int(self.y), int(self.y + self.height)))
HP_bool_pink=True
player.kill_enemy+=1
self.die_count=0
self.skill_count=0
self.die=False
self.walk=True
self.speed_Y*=2.5
self.speed*=2.5
self.life=0
self.game_start_Bool=True
diren_die_music.stop()
die_enemy_pink()
return
if self.die_count==20:
diren_die_music.play()
if self.life_remove_bool:
self.walk=False
self.skill = False
self.attack = False
screen.blit(self.life_remove_list[self.life_count], (self.x, self.y))
self.life_count += 1
elif self.skill and not self.life_remove_bool:
if self.skill_count==15:
green_jn.play()
if self.skill_count==1:
green_jn.stop()
screen.blit(self.skill_list[self.skill_count], (self.x-150, self.y-50))
self.skill_count+=1
elif self.attack and not self.life_remove_bool:
screen.blit(self.attack_list[self.attack_count],(self.x-250,self.y-100))
self.attack_count+=1
if self.attack_count == 10 and self.attack:
green_attack_music.play()
if self.attack_count == 55 or not self.attack:
green_attack_music.stop()
if self.speed>0 and self.walk and not self.die:
self.skill = False
screen.blit(self.walk_left[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.speed<0 and self.walk:
screen.blit(self.walk_left[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.die:
self.life = 0
self.skill = False
self.attack = False
if self.die_count%2==0 and self.die_count<20:
pygame.time.delay(20)
screen.fill([0, 0, 0])
elif self.die_count%2==1 and self.die_count<20:
pygame.time.delay(20)
screen.fill([255, 0, 0])
screen.blit(self.die_list[self.die_count],(self.x,self.y))
self.die_count+=1
screen.blit(self.enemy_img, (1040, -45))
pygame.draw.rect(screen, (235, 35, 200), (600 + (3 - self.life) * (540 / 3), 40, (540 / 3) * self.life, 30))
if self.game_start_Bool == False and self.life < 3:
pygame.draw.rect(screen, (80, 0, 100), (600, 40, 540 - (540 / 3 * self.life), 30))
def move(self):
if collision_check_fanxiang(player, enemylist3[0]) or collision_check_fanxiang( enemylist3[0], player) :
enemylist3[0].speed = enemylist3[0].speed * -1
if player.walk_right or player.stand:
if collision_check_tanke_jincheng(player, enemylist3[0]) and not self.life_remove_bool and not self.die and not self.attack and ( player.stand or player.left or player.right ):
self.skill=True
self.walk = False
if collision_check_tanke(player, enemylist3[0]) and not self.life_remove_bool and not self.die and not self.skill and ( player.stand or player.left or player.right ):
self.attack = True
self.walk = False
if self.die_count >= 57:
return
if self.walk:
if self.speed_Y>0 and not self.die:
if self.y<self.Yarea[1]+self.speed_Y:
self.y += self.speed_Y
else:
self.speed_Y=self.speed_Y*(-1)
self.y+=self.speed_Y
self.walk_count=0
elif self.speed_Y<0 and not self.die:
if self.y>self.Yarea[0]-self.speed_Y:
self.y+=self.speed_Y
else:
self.speed_Y = self.speed_Y * (-1)
self.y += self.speed_Y
self.walk_count = 0
if self.speed>0 and not self.die:
if self.x<self.area[1]+self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
elif self.speed<0 and not self.die:
if self.x>self.area[0]-self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
class Enemy_grey(object):
walk_left=()
walk_right=()
die_list = ()
life_remove_list = ()
falsh_list=()
skill_list=()
for pic_num in range(2, 0, -1):
walk_right+=(pygame.image.load("./grey/walk/walk (" + str(pic_num) + ").png"),)
for pic_num in range(1, 3):
walk_left+=(pygame.image.load("./grey/walk/walk (" + str(pic_num) + ").png"),)
for pic_num in range(1,22):
skill_list+=(pygame.image.load("./grey/skill/skill ("+str(pic_num)+").png"),)
for pic_num in range(1,36):
die_list+=(pygame.image.load("./grey/hit/hit ("+str(pic_num)+").png"),)
for pic_num in range(1,45):
die_list+=(pygame.image.load("./grey/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,24):
life_remove_list+=(pygame.image.load("./grey/hit/hit ("+str(pic_num)+").png"),)
def __init__(self,x,y,start,end):
self.x=x
self.y=y
self.width=124
self.height=100
self.area=[start,end]
self.Yarea = [370, 430]
self.walk_count=0
self.speed=-1.9
self.speed_Y=1.9
self.life=0
self.hit_box = (self.x, self.y, self.width, self.height)
self.die=False
self.walk=True
self.die_count=1
self.life_count=1
self.skill_count=1
self.attack_count = 0
self.life_remove_bool=False
self.attack=False
self.skill=False
self.Enemy_Y=0
self.enemy_img = pygame.image.load("./HP/enemy_grey.png")
self.HP_img = pygame.image.load("./HP/电池.png")
self.game_start_Bool=True
def draw(self,screen):
global HP_img_grey
global HP_bool_grey
if self.game_start_Bool:
self.life+=0.145
if self.life > 3:
self.life = 3
self.game_start_Bool = False
self.move()
if self.life <= 0:
self.life_remove_bool = False
self.die = True
self.walk = False
if self.life_count>=23:
self.life_count=1
self.life_remove_bool=False
self.walk=True
if self.walk_count==2:
self.walk_count=0
if self.skill_count==12 and not self.life_remove_bool and not self.die:
if collision_check_tanke_green(player, enemylist2[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.skill_count >= 21:
self.skill_count = 1
self.skill=False
self.walk=True
if self.die_count >= 78:
HP_img_grey = Prop_Hp(random.randint(int(self.x), int(self.x + self.width)), random.randint(int(self.y), int(self.y + self.height)))
HP_bool_grey=True
player.kill_enemy += 1
self.die_count=1
self.skill_count = 1
self.die=False
self.walk=True
self.speed_Y*=2.4
self.speed*=2.4
self.life=0
self.game_start_Bool=True
diren_die_music.stop()
die_enemy_grey()
return
if self.die_count==35:
diren_die_music.play()
if self.life_remove_bool:
self.skill = False
self.walk = False
self.attack = False
if player.jump or player.i:
self.y = player.y + player.height - enemylist2[0].height - 10
screen.blit(self.life_remove_list[self.life_count], (self.x-20, self.y-80))
self.life_count += 1
elif self.skill and not self.life_remove_bool:
screen.blit(self.skill_list[self.skill_count], (self.x-120, self.y))
self.skill_count+=1
if self.speed>0 and self.walk and not self.die:
self.skill = False
screen.blit(self.walk_left[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.speed<0 and self.walk and not self.die:
screen.blit(self.walk_left[self.walk_count],(self.x,self.y))
self.walk_count+=1
elif self.die:
self.life = 0
self.skill = False
self.attack = False
if self.die_count%2==0 and self.die_count<20:
pygame.time.delay(20)
screen.fill([0, 0, 0])
elif self.die_count%2==1 and self.die_count<20:
pygame.time.delay(20)
screen.fill([255, 0, 0])
self.die_count+=1
screen.blit(self.die_list[self.die_count], (self.x, self.y))
screen.blit(self.enemy_img, (1150, 63))
pygame.draw.rect(screen, (130, 200, 200), (600 + (3 - self.life) * (540 / 3), 100, (540 / 3) * self.life, 30))
if self.game_start_Bool == False and self.life < 3:
pygame.draw.rect(screen, (50, 75, 75), (600, 100, 540 - (540 / 3 * self.life), 30))
def move(self):
if collision_check_fanxiang(player, enemylist2[0]) or collision_check_fanxiang( enemylist2[0], player) :
enemylist2[0].speed = enemylist2[0].speed * -1
if player.walk_right or player.walk_right or player.stand:
if collision_check_tanke(player, enemylist2[0]) and not self.life_remove_bool and not self.die:
self.skill=True
self.walk = False
if self.walk:
if self.speed_Y>0 and not self.die:
if self.y<self.Yarea[1]+self.speed_Y:
self.y += self.speed_Y
else:
self.speed_Y=self.speed_Y*(-1)
self.y+=self.speed_Y
self.walk_count=0
elif self.speed_Y<0 and not self.die:
if self.y>self.Yarea[0]-self.speed_Y:
self.y+=self.speed_Y
else:
self.speed_Y = self.speed_Y * (-1)
self.y += self.speed_Y
self.walk_count = 0
if self.speed>0 and not self.die:
if self.x<self.area[1]+self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
elif self.speed<0 and not self.die:
if self.x>self.area[0]-self.speed:
self.x+=self.speed
else:
self.speed=self.speed*(-1)
self.x+=self.speed
self.walk_count=0
class Enemy(object):
walk_left=()
walk_right=()
die_list = ()
life_remove_list = ()
falsh_list=()
skill_list=()
attack_list = ()
for pic_num in range(1,24):
attack_list+=(pygame.image.load("./green/attack/attack ("+str(pic_num)+").png"),)
for pic_num in range(1,9):
walk_left+=(pygame.image.load("./green/walk/walk ("+str(pic_num)+").png"),)
for pic_num in range(8,0,-1):
walk_right+=(pygame.image.load("./green/walk/walk ("+str(pic_num)+").png"),)
for pic_num in range(1,38):
skill_list+=(pygame.image.load("./green/skill/skill ("+str(pic_num)+").png"),)
for pic_num in range(1,40):
die_list+=(pygame.image.load("./green/die/hit ("+str(pic_num)+").png"),)
for pic_num in range(1,65):
die_list+=(pygame.image.load("./green/die/die ("+str(pic_num)+").png"),)
for pic_num in range(1,24):
life_remove_list+=(pygame.image.load("./green/die/hit ("+str(pic_num)+").png"),)
def __init__(self,x,y,start,end):
self.x=x
self.y=y
self.width=133
self.height=95
self.area=[start,end]
self.Yarea = [300, 360]
self.walk_count=1
self.speed=-1.5
self.speed_Y=1.9
self.life=0
self.hit_box = (self.x, self.y, self.width, self.height)
self.die=False
self.walk=True
self.die_count=1
self.life_count=1
self.skill_count=1
self.attack_count=0
self.life_remove_bool=False
self.skill=False
self.attack = False
self.Enemy_Y=0
self.enemy_img=pygame.image.load("./HP/enemy_green.png")
self.game_start_Bool=True
def draw(self,screen):
global HP_img_green
global HP_bool_green
if self.game_start_Bool:
self.life+=0.12
if self.life > 3:
self.life = 3
self.game_start_Bool = False
self.move()
if self.life <= 0:
self.life_remove_bool = False
self.die = True
self.walk = False
if self.life_count>=23:
self.life_count=0
self.life_remove_bool=False
self.walk=True
if self.walk_count>=8:
self.walk_count=0
if self.skill_count==25 and not self.life_remove_bool and not self.die:
if collision_check_tanke(player, enemylist[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.attack_count == 14 and not self.life_remove_bool and not self.die:
if collision_check_tanke_jincheng(player, enemylist[0]):
player.life -= 8
player.life_remove_bool = True
if player.life<=0:
player.die=True
if self.skill_count >= 37:
self.skill_count = 0
self