Esempio n. 1
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
Esempio n. 2
0
	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
Esempio n. 3
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
Esempio n. 4
0
	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
Esempio n. 5
0
	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)
Esempio n. 6
0
	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]