Zufallsgenerierte Welten
Übersicht

![]() |
sbrogBetreff: Zufallsgenerierte Welten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tag allerseits.
Ich würde vielleicht in nächster Zeit mal gerne einen Canonklon proggen, und hab auch schon Konzete für das Gameplay und andere DInge, aber ich habe keine Ahnung, wie ich zufallsgenerierte Welten erstellen soll und wie dann die Kollisionsabfrage mit der erdoberfläche läuft. Kann mir jemand allgemein schildern , wie man solche Welten berechnet ? |
||
![]() |
Freeman |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde jeder Welt ne ID(numer) gebn und dann kannste das ganz gewohnt machen
Code: [AUSKLAPPEN] seedrnd millisecs() id = rnd(1,10) if id = 1 then loadmap_1 if id = 2 then loadmap_2 ......... so würd ichs machen, is aber nur ne fixe idee ^^ FrEeMaN |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich glaub nich das er NUR eine seiner vorher erstelleten welte zufällig auswähllen will sonder eher die gesamte kasrte per zufall erstellen will.
da ich nichts genaues üer dein game weis kann ich dir aber auch nicht viel sagen, nur vll das du dir wenn es z.B. um eine 2D map geht zufällig bestimmte punkte auswählts und dann festelgst ob da land oder wasser ist und dann von diesen punkten im kreis ausgehts und da dann wieder zufällig festlegst ob da wasser oder land sein soll. allerdings solltest du da dann halt schon die angrenzenden felder mit in die zufalls berechnug mit einbeziehen da wenn z.B. rechts un links liegenden felder beide land sind die chancen 80/20 stehen das dann hier auch wieder land hinkommt. |
||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich dachte eher an eine 2d-Berglandschaft,die man im Querschnitt sieht.
Die höhen sollen zufällig berechnet werden, aber mir ist klar, dass wenn ich jedem punkt eine zufällige höhe zuweise, dass dann nur Zackenmonster herauskommen. Ich denke , man sollte den Bildschirm mit senkrechten Begrenzungen unterteilen und jedem Teil eine maximal und minimalhöhe zuordnen, dann teilt man die teile nochmal und ordnet wieder allen eine Minimal und maximalhöhe zu. Würde das klappen ? |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
errechne alle 100 - 200 pixel einen wer und lass alle anderen mit sin/cos in wellen form abfallen. | ||
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wäre auch eine möglichkeit, aber das ist meiner meinung nach irgendwie zu glatt ![]() ich hab eine möglichkeit gefunden, einigermaßen echte Berge zu kreieren, könnte ich auf dieser basis eine Oberflächenlinie errechnen ? Code: [AUSKLAPPEN] Graphics 800,600 seedrnd millisecs() a= 520 For x = 0 To 800 y= Rnd(a+5,a-5) a= y Plot x,y Next WaitKey |
||
![]() |
YellowRiderEhemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
http://www.inarie.art-fx.org/s...index.html | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ganz klar: spline mit sinus-förmiger steigung
www.blitzbase.de/screen.jpg |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist mit so einem Spline auch eine rauhere ,strukturiertere Oberfläche möglich ? | ||
![]() |
TheShadowModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich hab die sogar extra geglättet, damit es schöner aussieht - kannst ja (nachdem du die perfekte geometrie hast) anrauhern wie du willst... | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann werde ich mal mit diesem Thema auseinandersetzen. In Robs Tutorial gibts glaube ich Beispielcode dazu.
Danke ![]() |
||
Jaramia |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] Graphics 320, 240, 0, 2
startheight = 50 abweichung = 5 height = Rand( startheight - 10, startheight + 10 ) altheight = height For x = 0 To GraphicsWidth() height = altheight + Rand( -abweichung, abweichung ) Line x, GraphicsHeight(), x, GraphicsHeight() - height altheight = height Next WaitKey sieht fast so aus wie beim ur-tank ![]() /edit: ich seh gerade das ein ähnlicher ansatz schon mit plots gemacht wurde... egal ^_^ |
||
alu.art-FX.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group