Python 3.x pygame地图中机器人的传感器
我将在pygame中创建一个包含对象的2D地图,我正在考虑创建一个机器人在地图上移动。(从上面看,地图视图就像口袋妖怪火红色一样简单得多)Python 3.x pygame地图中机器人的传感器,python-3.x,pygame,Python 3.x,Pygame,我将在pygame中创建一个包含对象的2D地图,我正在考虑创建一个机器人在地图上移动。(从上面看,地图视图就像口袋妖怪火红色一样简单得多) 如何在机器人中放置一些“传感器”。比如,他在四处移动,他前面的3个街区有障碍物,我怎么能检测到它呢?如果你有一个二维网格,其中充满了屏幕上的对象,那么计算出相对于某个位置的单元格内容就很容易了。让我们假设这个特定的机器人具有非常“圆锥形”的视野: 如果你的机器人在(x,y),你只需要检查单元格(x,y-1),(x-1,y-2)(x+1,y-2)和(x-1,
如何在机器人中放置一些“传感器”。比如,他在四处移动,他前面的3个街区有障碍物,我怎么能检测到它呢?如果你有一个二维网格,其中充满了屏幕上的对象,那么计算出相对于某个位置的单元格内容就很容易了。让我们假设这个特定的机器人具有非常“圆锥形”的视野: 如果你的机器人在
(x,y)
,你只需要检查单元格(x,y-1)
,(x-1,y-2)(x+1,y-2)
和(x-1,y-3)(x,y-3)(x+1,y-3)
。显然,根据机器人所面对的方向,配置略有不同
这可以概括为一个函数:
def lookUp( x, y, grid ):
" Return a list of objects spotted within the field of view "
result = []
offsets = [ (0,-1), (-1,-2), (0,-2), (1,-2), (-1,-3), (0,-3), (1,-3) ]
for offset in offsets:
x_off, y_off = offset
grid_contains = grid[ y + y_off ][ x + x_off ]
if ( grid_contains != None ):
result.append( grid_contains )
return result
其中,可以为地图的尺寸构建网格:
def getEmptyGrid( width, height ):
grid = []
for i in range( height ):
grid.append( [ None ] * width )
return grid
并填充了对象
grid[0][0] = Tree( 'conifer' )
grid[3][2] = OtherBot( 'down', 3, 4, 5 )
etc.
很抱歉提出这个问题,但我如何定义“网格”。我实际上没有网格,我只是定义了一个srceen