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.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=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,imagepath_list,colorkey=None,**kwargs): super(SpriteParticle,self).__init__(x,y,w,h,imagepath_list,colorkey) self.valid_kwargs = { "lifetime" : 3000, # how long the particle lives in milliseconds "xvel" : 6, "yvel" : 0, "alive": True, "friction" : 0.97, "rotate_friction":0.97, "rotate_vel" : -20, # can be negative/positive 0 if no rotation "scale_velocity" : -0.007, # how much particle grows/shrinks by depending on -/+ "gravity" : 0.0, "wind_direction" : 45, "wind_strength" : 0.0, "alpha_decay" : 0.005, # if alpha < 0 or acc_livetime>lifetime : kill particle "trail_length" : 8, "alpha_var" : 1.0 } self.acc_livetime = 0 for key,val in kwargs.items(): if self.valid_kwargs.has_key(key): self.valid_kwargs[key] = val else: # raise exception raise Exception("invalid attribute %s has been referenced" % key) # set atrributes for key,val in self.valid_kwargs.items(): setattr(self,key,val) angle = self.wind_direction self.vec_x = math.cos((angle * (math.pi/180))) self.vec_y = math.sin((angle * (math.pi/180))) self.vec_x *= self.wind_strength self.vec_y *= self.wind_strength self.trail_list = [] # create animation manager self.frame_manager = helpers.AnimManager([self.cur_texture.num_sprites_x]) self.frame_manager.playRepeat(0,-1) self.alpha = self.alpha_var
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,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]