擅长:python、mysql、java
<p>好吧,我找到了我要找的东西,我做了一点小改动。如果有人想更好的话。在</p>
<p>我改变了地图的绘制方式</p>
<ul>
<li>我拍了相机的正位[左上角和右下角]</li>
<li>把它转变成世界地位</li>
<li>用枚举器迭代它</li>
<li>有没有用X和Y计算过光照/探访过的雾</li>
<li>并在屏幕上使用枚举数“i”和“j”进行Blited。在</li>
</ul>
<p>代码如下:</p>
<pre><code>topleft = Map.toWorld(camera.rect.topleft)
bottomright = Map.toWorld(camera.rect.bottomright)
for i, x in enumerate(xrange(topleft[0], bottomright[0])):
for j, y in enumerate(xrange(topleft[1], bottomright[1])):
tile = mymap.tileAt(x, y)
object = [obj for obj in Object.OBJECTS if obj.pos == (x,y)]
if tile:
lit = field_of_view.lit(x, y)
visited = field_of_view.visited(x, y)
graphic = tile.graphic
if lit:
color = tile.color
elif visited:
color = GRAY
else:
color = BLACK
renderedgraphic = myfont.render(ch, 1, graphic)
screen.blit(renderedgraphic, Map.toScreen((i + 1, j)))
if object:
Draw.drawObject(object[0], Map.toScreen((i + 1, j)))
</code></pre>
<p>现在唯一的问题是当玩家在地图的两侧时,它会显示一个黑色的边界。在</p>