def findcarSensor(self, angle): an = map(lambda x:Util.adjust_angle(x),[self.cur[2] + angle, self.cur[2] - angle]) tanan = [math.tan(a / 180 * math.pi) for a in an] pt = [[0, 0]] * 2 const = [100, 500] for i in xrange(2): pp = [0, 0] if int(an[i]) % 180 == 0: yp = 0 else: if an[i] < 180: #yp = self.cur[1] + (2*(int(an[i])<90)-1)*(self.cur[0] - 100) / tanan[i] yp = self.cur[1] + (self.cur[0] - 100) / tanan[i] else: #yp = self.cur[1] + (2*(int(an[i])>270)-1)*(500 - self.cur[0]) / tanan[i] yp = self.cur[1] - (500 - self.cur[0]) / tanan[i] pp[0] = 1 if int(an[i]) % 180 == 90: xp = 0 else: if an[i] < 270 and an[i] > 90: xp = self.cur[0] + tanan[i] * (self.cur[1] - 100) else: xp = self.cur[0] - tanan[i] * (500 - self.cur[1]) pp[1] = 1 if yp <= 500 and yp >= 100: pt[i] = [const[pp[0]], yp] else: pt[i] = [xp, const[pp[1]]] return pt
def findcarSensor(self): an = map(lambda x:Util.adjust_angle(x),[self.cur[2] + self.player.control.eatangle, self.cur[2] - self.player.control.eatangle]) #self.sensorangle=an sinan = [math.sin(a / 180 * math.pi) for a in an] cosan = [math.cos(a / 180 * math.pi) for a in an] pt = [[0, 0]] * 4 anrange = self.player.control.sensorrange x_sensor = self.frontmid[0] y_sensor = self.frontmid[1] for i in xrange(2): pt[i] = [x_sensor-anrange[1]*sinan[i], y_sensor+anrange[1]*cosan[i]] for i in xrange(2): pt[i+2] = [x_sensor-anrange[0]*sinan[i], y_sensor+anrange[0]*cosan[i]] return pt
def findcarSensor(self, angle): an = map(lambda x:Util.adjust_angle(x),[self.cur[2] + angle, self.cur[2] - angle]) tanan = [math.tan(a / 180 * math.pi) for a in an] sinan = [math.sin(a / 180 * math.pi) for a in an] cosan = [math.cos(a / 180 * math.pi) for a in an] pt = [[0, 0]] * 2 sensorlength = 3*self.player.control.height_h x_sensor = self.frontmid[0] y_sensor = self.frontmid[1] for i in xrange(2): pt[i] = [x_sensor-sensorlength*sinan[i], y_sensor-sensorlength*cosan[i]] return pt """
def GoTurn(self, angle_ratio): new_an=self.angle + angle_ratio*self.anglestep bdpt=self.sim.findcarCorner([self.x,self.y,new_an]) if self.sim.CheckCollision(bdpt)==0: self.angle=Util.adjust_angle(new_an) print "turn"