示例#1
0
	def collides(self,p):
		#if Geometry.intersec_seg(self,{'x':p}):
		#try:
		#	if Geometry.intersect(self.x1,self.y1,self.x2,self.y2,p.x,p.y,p.old_x,p.old_y):
		#		p.kill()
		#except ZeroDivisionError:
		#	pass
		i = Geometry.intersect_seg(self.x1,self.y1,self.x2,self.y2,p.x,p.y,p.old_x,p.old_y)
		#if i is not None: p.kill()
		#if i is not None: p.engine.rem_part(p)
		if i is not None:
			if self.is_a_barrier:
				p.kill()
			else:
				#print "Mirror intersection!! ", p.id
				# ix,iy = i
				# p.x = ix
				# p.y = iy
				# p.x = p.old_x
				# p.y = p.old_y
				p.x = (i[0]*9+p.old_x)/10.0
				p.y = (i[1]*9+p.old_y)/10.0
				p.vx, p.vy = Geometry.reflect(self.x2-self.x1, self.y2-self.y1, p.vx, p.vy)