def __init__(self,x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed = 0.6,health=30): super(Buzzer,self).__init__(x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed,health) self.damage = 5 moveleft_list = gutils.sliceSheetColKey(self.w,self.h,"images\\buzzer_moveleft.png") moveright_list = gutils.sliceSheetColKey(self.w,self.h,"images\\buzzer_moveright.png") sprout_proj_images = gutils.sliceSheetColKey(12,12,"images\\sprout_proj.png") params = [2,2,2] self.id = 0 self.frame = 0 self.image_master = [moveleft_list,moveright_list] self.animator = helpers.AnimManager(params,24) self.image = self.image_master[self.id][self.frame] self.bullets_list = [] self.fire_acctime = 0 self.fire_updatetime = random.randrange(2000,6000) self.x_moverange = 70 self.y_moverange = 70 self.sin_angle = 0 self.wave_speed = 20 self.wave_strength = 2.0
def __init__(self,x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed = 0.4,health=20): super(Ghost,self).__init__(x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed,health) self.damage = 8 stand_list = gutils.sliceSheetColKey(self.w,self.h,"images\\ghost_stand.png") moveleft_list = gutils.sliceSheetColKey(self.w,self.h,"images\\ghost_moveleft.png") moveright_list = gutils.sliceSheetColKey(self.w,self.h,"images\\ghost_moveright.png") self.ray_colors = [(255,0,0),(255,255,255),(0,255,0),(255,255,0)] self.color_id = 0 self.can_draw_ray = False self.ray_draw_acctime = 5000 self.ray_draw_duration = 2500 self.hit_tile = None sprout_proj_images = gutils.sliceSheetColKey(12,12,"images\\sprout_proj.png") params = [2,2,2] self.id = 0 self.frame = 0 self.image_master = [stand_list,moveleft_list,moveright_list] self.animator = helpers.AnimManager(params,6) self.image = self.image_master[self.id][self.frame] self.bullets_list = [] self.fire_acctime = 0 self.fire_updatetime = random.randrange(3000,6000) self.x_moverange = 70 self.y_moverange = 70
def __init__(self,x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed = 0.4,health=22): super(Dasher,self).__init__(x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed,health) self.damage = 10 stand_list = gutils.sliceSheetColKey(self.w,self.h,"images\\dasher_stand.png") moveleft_list = gutils.sliceSheetColKey(self.w,self.h,"images\\dasher_moveleft.png") moveright_list = gutils.sliceSheetColKey(self.w,self.h,"images\\dasher_moveright.png") self.proj_images = "images\\dasher_proj.png" params = [2,2,2] self.id = 0 self.frame = 0 self.image_master = [stand_list,moveleft_list,moveright_list] self.animator = helpers.AnimManager(params,6) self.image = self.image_master[self.id][self.frame] self.bullets_list = [] self.fire_acctime = 0 self.fire_updatetime = random.randrange(1000,3000) self.dash_max_vel = 4 self.dx = 0 self.dx = 0 self.friction = 0.95 self.dash_acctime = 0 self.dash_updatetime = random.randrange(2000,4000) self.x_moverange = 100 self.y_moverange = 100
def __init__(self, x, y, w, h): self.x = x self.y = y self.w = w self.h = h self.hx = self.w / 2 self.hy = self.h / 2 self.collidable = True self.x_coord = self.x / w self.y_coord = self.y / h self.kind = "FireCrate" image_path = "images\\fire_crate.png" self.master_images = gutils.sliceSheetColKey(w, h, image_path) self.anim_object = gobs.AnimObject([self.master_images, -1, 6], x, y, 0, 0, 1) self.health = 10 self.alive = True self.image = self.anim_object.image self.rect = self.image.get_rect() self.rect.topleft = (self.x, self.y) self.col_rect = pygame.Rect(0, 0, 14, 14) self.col_rect.center = self.rect.center
def __init__(self,x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed = 0.4,health=15): super(IceWitch,self).__init__(x,y,w,h,grid,tileList,itemList,good_guys,effects,images_dict,speed,health) self.damage = 4 stand_list = gutils.sliceSheetColKey(self.w,self.h,"images\\icewitch.png") moveleft_list = gutils.sliceSheetColKey(self.w,self.h,"images\\icewitch_moveleft.png") moveright_list = gutils.sliceSheetColKey(self.w,self.h,"images\\icewitch_moveright.png") self.proj_images = "images\\ice_proj.png" params = [2,2,2] self.id = 0 self.frame = 0 self.image_master = [stand_list,moveleft_list,moveright_list] self.animator = helpers.AnimManager(params,6) self.image = self.image_master[self.id][self.frame] self.bullets_list = [] self.fire_acctime = 0 self.fire_updatetime = random.randrange(1500,8000)
def __init__(self, image_path, x, y, w, h, direction, speed=0.8, fps=12, friction=1.0, rotate=False, trail=False): self.x = x self.y = y self.rotate = rotate self.kind = "AnimatedBullet" self.trail = trail self.trail_list = [] self.max_traillen = 6 self.master_images = gutils.sliceSheetColKey(w, h, image_path) self.main_image = self.master_images[0].copy() self.rect = self.main_image.get_rect() self.rect.center = (self.x, self.y) self.col_rect = pygame.Rect(self.x, self.y, 4, 4) self.dir = direction self.rot_rect = self.main_image.get_rect() self.speed = speed self.friction = friction self.fps = fps self.dx = math.cos(direction * (math.pi / 180)) * self.speed self.dy = math.sin(direction * (math.pi / 180)) * self.speed self.anim_object = gobs.AnimObject([self.master_images, -1, self.fps], x, y, self.dx, self.dy, self.friction) self.alive = True if self.rotate: self.image = pygame.transform.rotate(self.main_image, 360 - self.dir) self.rot_rect = self.image.get_rect(center=self.rect.center) else: self.image = self.main_image
def __init__(self, x, y, size=16): self.kind = "DoorTile" self.master_images = gutils.sliceSheetColKey(16, 16, "images\\door.png") self.image = self.master_images[0] self.rect = self.image.get_rect() self.x = x self.y = y self.w = size self.h = size self.hx = self.w / 2 self.hy = self.h / 2 self.collidable = False self.is_open = False self.rect.topleft = (self.x, self.y)
def __init__(self, image_path, x, y, w, h, target, speed=0.3, fps=15, friction=0.97, trail=True): self.kind = "RandomBullet" self.trail_list = [] self.max_traillen = 6 self.x, self.y = (x, y) self.yvel = self.xvel = 0 self.fps = fps self.master_images = gutils.sliceSheetColKey(w, h, image_path) self.anim_object = gobs.AnimObject([self.master_images, -1, self.fps], x, y, 0, 0, 1) self.main_image = self.master_images[0].copy() self.image = self.main_image.copy() self.rect = self.image.get_rect() self.rot_rect = self.image.get_rect() self.col_rect = pygame.Rect(self.x, self.y, 4, 4) self.missileOrientation = 0 self.speed = speed self.maxVel = 3.0 self.vectorToTargetN = (0, 0) self.angularVelocity = 0 self.friction = friction self.alive = True self.target = target
def __init__(self,run_flag,x,y,enemyList,tileList,effects,itemList,images_dict,sound_manager): self.sound_manager = sound_manager self.run_flag = run_flag self.STAND = 0 self.RUN_LEFT = 1 self.RUN_RIGHT = 2 self.RUN_UP = 3 self.RUN_DOWN = 4 self.HIT_LEFT = 5 self.HIT_RIGHT =6 # little tweaks after the long journey self.can_draw_orb = True self.fire_angle = 270 self.aim_speed = 8 self.enemyList = enemyList self.tileList = tileList self.itemList = itemList self.images_dict = images_dict self.weapon_id = 0 self.weapons_list = [weapons.BasicGun(self), weapons.DualGun(self), weapons.BounceGun(self), weapons.LightningGun(self), weapons.FlameGun(self), weapons.WaveyGun(self), weapons.PiercerGun(self), weapons.RandomGun(self)] self.cur_weapon = self.weapons_list[self.weapon_id] self.mana_amount = 100 self.left_is_down = False self.right_is_down = False self.up_is_down = False self.down_is_down = False self.room_key = None stand_s = StandState(self) runleft_s = RunLeftState(self) runright_s = RunRightState(self) runup_s = RunUpState(self) rundown_s = RunDownState(self) self.effects_list = [] self.effects = effects self.states = [stand_s,runleft_s,runright_s,runup_s,rundown_s] self.cur_state = self.states[0] self.x = x self.y = y self.w = 16 self.h = 16 self.hx = self.w / 2 self.hy = self.h / 2 self.health = 100 self.dx = 0 self.dy = 0 self.speed = 0.06 self.friction = 0.935 self.id = 0 self.frame = 0 self.target = sbv.Target((self.x-10,self.y)) self.cam_target = sbv.Target((self.x,self.y)) self.cam_tracker = None self.firing_angle = 0 self.firing_vector = (0,0) self.bullets_list = [] self.time_since_dash = 0 self.is_dashing = False self.dash_waittime = 1500 self.dash_vel = 2.8 self.exit_status = 0 # 1 for next room, -1 for escape exit self.trail_positions = [] self.trail_len = 5 # flags self.is_run_left = False self.is_run_right = False self.last_dir = 0 # 0 for left ;1 for right self.last_dir_v = 0 # 0 for up ; 1 for down self.gamestate = None self.is_slashing = False self.rect = pygame.Rect(self.x,self.y,16,16) self.col_rect = pygame.Rect(self.x,self.y,16,16) self.shooter_rect = pygame.Rect(self.x,self.y,25,25) self.pointer_radius = 10 # blending stuff self.is_flashing = False self.flash_duration = 800 self.flash_acctime = 5000 self.blink_acctime = 0 self.blink_updatetime = 50 self.is_blend_visible = False self.blendimage = None self.blendcolor = (255,0,0) self.alive = True self.killed_effect = None self.time_since_killed = 0 self.end_duration = 2500 # load images params = [2,3,3,3,3,5,5] stand_list = gutils.sliceSheetColKey(16,16,"images\\aris_stand.png") runleft_list = gutils.sliceSheetColKey(16,16,"images\\aris_runleft.png") runright_list = gutils.sliceSheetColKey(16,16,"images\\aris_runright.png") runup_list = gutils.sliceSheetColKey(16,16,"images\\aris_runup.png") rundown_list = gutils.sliceSheetColKey(16,16,"images\\aris_rundown.png") hitleft_list = gutils.sliceSheetColKey(16,16,"images\\mage_hit_left.png") hitright_list = gutils.sliceSheetColKey(16,16,"images\\mage_hit_right.png") self.dead_list = gutils.sliceSheetColKey(16,16,"images\\aris_poof.png") self.image_master = [stand_list,runleft_list,runright_list,runup_list,rundown_list,hitleft_list,hitright_list] self.animator = helpers.AnimManager(params,6) self.image = self.image_master[self.id][self.frame] self.trail_image = self.image.copy() self.pointer_surf = pygame.image.load("images\\pointer.png").convert() self.pointer_surf.set_colorkey((255,0,255)) self.pointer_surf.set_alpha(100) self.pointer_image = self.pointer_surf.copy() self.pointer_image_rect = self.pointer_image.get_rect() self.pointer_image_rot_rect = self.pointer_image.get_rect() self.weapon_target = sbv.Target((self.rect.centerx,self.rect.centery)) self.magic_orb = weapons.Orb(self.target,self) self.line_collider = Line(self.rect.topleft,self.rect.topright,(0,0,0)) topline = ((float(self.rect.left),float(self.rect.top)),(float(self.rect.right),float(self.rect.top))) bottomline = ((float(self.rect.left),float(self.rect.bottom)),(float(self.rect.right),float(self.rect.bottom))) leftline = ((float(self.rect.left),float(self.rect.top)),(float(self.rect.left),float(self.rect.bottom))) rightline = ((float(self.rect.right),float(self.rect.top)),(float(self.rect.right),float(self.rect.bottom))) self.lines = [rightline,topline,leftline,bottomline]
if state.fullscreen: screen = pygame.display.set_mode((W, H), DOUBLEBUF | FULLSCREEN) else: screen = pygame.display.set_mode((W, H), DOUBLEBUF) pygame.mouse.set_visible(False) res_surf = pygame.Surface((320, 240)) clock = pygame.time.Clock() sound_manager = generic.SoundManager(state) # load global images hit_effect_images = gutils.sliceSheetColKey(12, 12, "images\\hit_eff.png") kill_effect_images = gutils.sliceSheetColKey(22, 22, "images\\kill_eff.png") break_effect_images = gutils.sliceSheetColKey(16, 16, "images\\break_eff.png") key_effect_images = gutils.sliceSheetColKey(16, 16, "images\\key_eff.png") p_killed_images = gutils.sliceSheetColKey(64, 64, "images\\killed_boom.png") images_dict = { "hit": (hit_effect_images, 12, 12), "kill": (kill_effect_images, 22, 22), "break": (break_effect_images, 16, 16), "key": (key_effect_images, 16, 16), "p_kill": (p_killed_images, 64, 64) } # load hud images main_hud_image = pygame.Surface((W, 42)).convert()