Nekromanti Planlösnings-generator

Feuflux

omjonasson.se
Joined
8 Jan 2001
Messages
5,245
Location
Linköping
Hej forumet. Efter mitt förra javascript-projekt "Mindmap-program och äventyrsgenerator" så är jag nu igång med ett program för att generera planlösningar. Behold!

http://omjonasson.se/rollspel/buildinglayout/

Som ni ser så är det bara väggar, dörrar och fönster (eller ja, en massa streck med olika färger, men ni hajjar nog vad som är vad). Sen vet jag inte i skrivande stund hur långt jag orkar dra det här.
Inte så långt: borde fixa en en trappa om det finns två våningar i alla fall...
Rätt jäkla långt: identifiera vilken rumstyp varje rum borde vara och fylla det med möbler.

(Och för den intresserade så har jag lekt med rekursion och krånglat till det ordentligt med dörr-genereringen, spana in källkoden).
 
Oh, stiligt! Kan verkligen bli härligt om det utvecklas, grunden är bra. Om jag skulle arbeta på det skulle jag först och främst arbeta på att ställa in många eller få fönster ty nu känns det som att det blir rätt fullt av dessa. Nästa steg vore trappa som Rymdhamstern på pekar, det är ju nästan lika viktigt som dörrar. Olika storlekar, antalet rum osv vore ju nice. Man skulle så klart kunna dra det precis hus långt som helst, jag gillart men å andra sidan är jag helt för allt som är automagiskt slumpgenererat (heck, min profession är ju monte carlo-simuleringar av partikelflöden, how can I not love it?).
 
Det ritas Math.floor(Math.random() * 3) + 3; (dvs minst 3 och som mest 5) väggar per våning. Färre om det visar sig att det blir för trångt (minst 80 pixlar mellan ett par väggar).

Det är fast antal fönster per vägg beroende på hur lång väggen är:
var horizontalWindows = Math.floor(((x2 - x1) / windowWidth) / 4);
var verticalWindows = Math.floor(((y2 - y1) / windowWidth) / 4);
(undantaget väggen med ytterdörren som har ett fönster mindre)

Allt sånt här skulle förstås gå att lägga i ett gäng drop-menyer så man får konfa själv. Det tänkte jag på tidigare, men tappade bort när jag bråkade med dörrarna. :smile:
 
Gjorde en karta med generatorn och lade på lite "effekter" i Illustrator:

 

Attachments

  • generator_illustrator_test.jpg
    generator_illustrator_test.jpg
    28 KB · Views: 0
Kan man önska sig hus som är inte är rektanglar - alltså t.ex. "vinkelhus". Kanske även hus utan fösnter och dörrar?
 
Hus som inte är en rektangel som avdelas i mindre och mindre bitar medels rekursiva väggar finns inte på kartan i nuläget (däremot ska jag nog kunna fixa ett val att ha torn i hörnen). Exakt vad är ett vinkelhus? :smile:

Eftersom jag inte planerar så noga innan jag börjar så är mitt nästa steg att optimera och snygga till kod. Sen ska jag fixa en trappa till tvåvåningsvarianten. Sen ska jaga fixa en massa olika val att göra vad gäller antal fönster etc. Sen återkommer jag hit till tråden, men det blir nog inte den här veckan som det ser ut.

Och kul att jag gav dig en massa knasiga idéer.
 
Jaha, vinkelhus är då bara två rektanglar som sitter ihop, det borde vara relativt lätt (och pinsamt att jag inte hajjade vad vinkelhus var, men snöade helt in på att det hade nåt med "inte 90º-vinklar-i-hörnen" att göra).

Bakdörrar borde också vara relativt lätt.
 
Pysslat med vinkelhusen nu. Behövde göra om en hel del (nåja) för att det skulle bli acceptabel kod...

http://omjonasson.se/rollspel/buildinglayout/

Ytterdörr och fönster är temporärt bortplockade (jag är för trött för att laga det just nu) och trappan är heller inte tillräckligt vettig för att få vara med i nuläget.
 
Rymdhamster;n69155 said:
Nice! Vad tror du om att utöka till potentiellt fyra våningar, för stadshus?

Tja nu är det omkodat så det är dynamiskt. Så det borde vara rätt lugnt med flera våningar. (Nu kommer det bergis visa sig omöjligt :wink: )
 
Nice! Det här blir bara bättre och bättre! Ett par tankar jag har:

Varför kan man inte göra ett trevåningshus också? Känns som att det vore ett perfekt mellanting mellan två och fyra våningar ;)

Eftersom man ändå får välja lite vad gäller antal av fönster, varför inte slänga in valet att inte ha några fönster alls också? Borde inte vara så svårt tänker jag?

Måste trappan alltid ligga på alla våningar? Mellan våningsplanen behöver den ju göra det, men trappan mellan våning 1 och 2 måste kanske inte ligga på samma ställe som trappan mellan våning 2 och 3? Vet dock inte om det skulle krångla till koden en massa.
 
"Tre våningar" respektive "Inga fönster" var skitlätt och är fixat och uppladdat.

Trappan vet jag inte riktigt hur jag ska lösa bäst, men som du säger så är det ju rätt rimligt att kunna välja att inte ha den på exakt samma plats för alla våningsplan... jag ska grubbla.
 
Back
Top