Baum-Map
Übersicht

AMDBetreff: Baum-Map |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hi
vorne weg man musses nicht Baum-Map nennen mann kann es auch "Pixel-Map" oder "Hui-Map" oder "hui-hui" nennen is eigl. egal..^^ da ich gerade eine Baum-Map brauche und ich noch keine so dollen ansätze hier im forum gefunden habe nur ein paar code-schnipsel im Beginner Coners hab ich mir eine Baum-Map geschrieben und werd sie hier für euch zur verfügung stellen. Was ist eine BaumMap? Man hat einen Terrain und malt darauf viele weiße Pixel(die später die Bäume darstellen sollen). Aber da ja dann viele große spitzen aus dem Terrain ragen würden und der baum auf den spitzen stehn würde nimmt man einen ganz normalen terrain und malt einfach seine pixel auf ein anderes Bild. Diese beiden werden dann kompiniert. Wofür brauche ich so etwas? Wenn man z.b. viele Bäume (z.b. Wald) hat und mehrere Häußer da rein stellen, stecken oft einige Bäume in den Häußern fest. hier mal der code: ich hoffe ich habe alles halbwegs gut beschrieben... Code: [AUSKLAPPEN] ;©AMD(Blitzforum)
Graphics3D 1024,768,16,2;Grafikmodus SetBuffer BackBuffer();Buffer camera=CreateCamera();Kamera terrain=LoadTerrain("TestTerrain3.png");Laden des Terrains ScaleEntity terrain,1,50,1;Skalierung des Terrains img1=LoadTexture("Map1.png");Laden der "Pixel-map" kann man sich mit paint selbst malen. Man sollte darauf achten das das Pixel-Bild genau so groß ist wie das TerrainBild Dim pon(TextureWidth(img1),TextureHeight(img1));Dim mit Textur-Breite und Textur-Höhe erstellen For x = 1 To TextureWidth(img1) Step 2;x=breite des ganzen bildes wobei alle 2 Pixel übersprungen werden For y = 1 To TextureHeight(img1) Step 2;y=höhe des ganzen bildes wobei alle 2 Pixel übersprungen werden Wert=ReadPixel(x,y,TextureBuffer(img1));Die pixel die gelesen werden sollen If Wert And $FFFFFF = $FFFFFF;prüft ob es weiße pixel gibt pon(x,y)=1 wievielbaume=wievielbaume+1;spätere Anzanhl der bäume wie es weiße Pixel gibt EndIf Next Next Dim BaumNeu(wievielbaume) Baum = CreateCube();Grund"Baum" erstellen HideEntity Baum;Baum wird unsichtbar gemacht das dieser nicht gebraucht wird For x = 1 To TextureWidth(img1) Step 2 For y = 1 To TextureHeight(img1) Step 2 z=TerrainY(terrain,x,0,y);höhe der position von Bäume = Höhe von Terrain If pon(x,y)=1 BaumNeu(i)=CopyEntity(Baum);Baum wird kopier und somit ist es auch gleich Single-Surface ScaleEntity BaumNeu(i),2,2,2;Skalierung der Bäume PositionEntity BaumNeu(i),x,z,y;Die Position der Bäume (x=Bildbreite,y=Bildhöhe) EntityColor BaumNeu(i),255,0,0;Farbe von den Bäumen End If Next Next While Not KeyHit(1);Wenn man ESC drückt wird beendet If KeyDown(200) MoveEntity camera,0,0,10;nach vorne bewegung der camera If KeyDown(208) MoveEntity camera,0,0,-10;nach hinten bewegung der camera SpeedX= SpeedX+MouseXSpeed();Maussteurung der camera SpeedY=SpeedY+MouseYSpeed();Maussteuerung der camera RotateEntity camera,Speedy,-Speedx,0;Maussteuerung der camera RenderWorld;Rendern der 3D-Szene Flip;für den buffer Wend;das gehört dazu zum ESC das beendet wird hier bekommt ihr zum test auch mal die bilder die ich dazu verwendet habe: hoffe ich konnte euch helfen! sagt mir was ich besser machen sollte und wie ihr es so findet MfG ach ja für leute dies immer noch net geschnallt haben ... Wackelt einfach etwas mit der maus hin und her dann seht ihr das terrain mit den "Bäumen" |
||
Das Leben ist ein scheiß Spiel hat aber eine saugute Grafik!
PC: AMD 5200 X2(2x2,6Ghz), 250GB Festplatte, 2048MB Arbeitsspeicher, Nvidia 9800 GTX mit 512MB..... Bildschrim mit 22 Zoll und 5msk Übertragungszeit...... Mein BaumMap Tutorial: http://www.blitzforum.de/forum...hp?t=26341 |
- Zuletzt bearbeitet von AMD am Di, Dez 11, 2007 23:25, insgesamt 3-mal bearbeitet
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich find sie echt gut .. konnte daraus lernen
Danke Oz |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm n bisschen unübersichtlich.
Mach bessere formatierungen.(For next schleifen, boa musste 3 mal lesen biss ich wusste wo was da drin gemacht wird, vorallem bei verschachtelten schleifen sind formatierungen wichtig !) Varriablen name wie "pon" als arry sagt irgendwie 0 aus, oder doch ? Vielleicht ist es in functionen gepackt übersichtlicher : Set_terrain() - terrain erstellen - objekte setzten(bäume) und in der main loop dan sowas wie : Update_player() ;steuert die camera(spieler) Somit würde die gliederung dan so aussehen: Code: [AUSKLAPPEN] set_terrain() While not keyhit(1) Update_player() updateworld renderworld flip wend end function 1 function 2 und natürlich die schleifen (aber ich den du weist es selber, ich schreibs nur "performa"...) Code: [AUSKLAPPEN] for wert_x = 1 to sonstwas step blubber for wert_y = 1 to sonstwas step blubber arry(x,y) = bla next next Ist keine negative Kritik ! Nur mein feedback ! mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group