Example #1
0
 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
Example #2
0
 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           
Example #3
0
 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    
     
     
     
     
     """
Example #4
0
 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"