Spaces:
Running
Running
<h2>Dungeon generators</h2> | |
<p>This family of map generators produces corridors and rooms. Room information can be retrieved after the map has been created by calling <code>getRooms()</code>; corridor information can be retrieved via <code>getCorridors()</code>:</p> | |
<div class="example"> | |
ROT.RNG.setSeed(1234); | |
var map = new ROT.Map.Digger(); | |
var display = new ROT.Display({fontSize:8}); | |
SHOW(display.getContainer()); | |
map.create(display.DEBUG); | |
var rooms = map.getRooms(); | |
for (var i=0; i<rooms.length; i++) { | |
var room = rooms[i]; | |
SHOW("Room #%s: [%s, %s] => [%s, %s]".format( | |
(i+1), | |
room.getLeft(), room.getTop(), | |
room.getRight(), room.getBottom() | |
)); | |
} | |
</div> | |
<h3>Digger</h3> | |
<p>Random dungeon generator using human-like digging patterns; based on Mike Anderson's ideas from the "Tyrant" algo, mentioned at | |
<a href="http://www.roguebasin.roguelikedevelopment.org/index.php?title=Dungeon-Building_Algorithm">Roguebasin</a>. | |
Third constructor argument is a configuration object; allowed options:</p> | |
<ul> | |
<li><code>roomWidth</code> – [min, max] room size</li> | |
<li><code>roomHeight</code> – [min, max] room size</li> | |
<li><code>corridorLength</code> – [min, max] corridor length</li> | |
<li><code>dugPercentage</code> – algorithm stops after this fraction of map area has been dug out; default = 0.2</li> | |
<li><code>timeLimit</code> – algorithm stops after this amount of milliseconds has passed</li> | |
</ul> | |
<div class="example"> | |
var w = 40, h = 25; | |
var map = new ROT.Map.Digger(w, h); | |
for (var i=0; i<4; i++) { | |
var display = new ROT.Display({width:w, height:h, fontSize:6}); | |
SHOW(display.getContainer()); | |
map.create(display.DEBUG); | |
} | |
</div> | |
<h3>Uniform</h3> | |
<p>Generates a set of rooms; tries to connect them afterwards. Third constructor argument is a configuration object; allowed options:</p> | |
<ul> | |
<li><code>roomWidth</code> – [min, max] room size</li> | |
<li><code>roomHeight</code> – [min, max] room size</li> | |
<li><code>roomDugPercentage</code> – algorithm stops after this fraction of map area has been filled with rooms; default = 0.2</li> | |
<li><code>timeLimit</code> – algorithm stops after this amount of milliseconds has passed</li> | |
</ul> | |
<div class="example"> | |
var w = 40, h = 25; | |
var map = new ROT.Map.Uniform(w, h); | |
for (var i=0; i<4; i++) { | |
var display = new ROT.Display({width:w, height:h, fontSize:6}); | |
SHOW(display.getContainer()); | |
map.create(display.DEBUG); | |
} | |
</div> | |