예제 #1
0
 def wall_walk(self, x, y, dx, dy):
     f = 1.0/self.tilesize
     for gx, gy, t, hv in grid_walk(x*f, y*f, (x+dx)*f, (y+dy)*f):
         try:
             yield self.tiles[gy, gx], x+dx*t, y+dy*t
         except KeyError:
             return
예제 #2
0
 def wall_clip(self, x, y, dx, dy):
     f = 1.0/self.tilesize
     for gx, gy, t, hv in grid_walk(x*f, y*f, (x+dx)*f, (y+dy)*f):
         try:
             if self.tiles[gy, gx].is_wall:
                 return True
         except KeyError:
             return True
     return False
예제 #3
0
 def hits_wall(x, y):
     for gx, gy, t, hv in grid_walk(x, y, lx, ly):
         if t and (gx, gy) in self.walls:
             return True