Kleeblatt Wald [B3D]
Übersicht

![]() |
FreetimeCoderBetreff: Kleeblatt Wald [B3D] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja ein Wald ist es noch nicht, aber was nicht ist kann noch werden:
Code: [AUSKLAPPEN] Graphics3D 800,600,0,2
SetBuffer BackBuffer() Global Kamera=CreateCamera() PositionEntity Kamera,0,40,-180 Global Licht=CreateLight() Global Population=0 Global Treerange=40 Type Tree Field Tr Field ee Field Grow# Field Lifetime Field Maxlifetime Field Samenzeit Field Samenperiode Field MaxWachstum# Field Death End Type Type Samen Field Sa Field men Field Speed# Field Survive End Type Global Boden=CreatePlane() EntityColor Boden,100,200,0 While Not KeyHit(1) Cls If KeyHit(28) CreateTree(Rnd(-Treerange,Treerange),Rnd(-Treerange,Treerange)) EndIf UpdateTrees() UpdateSamen() UpdateWorld RenderWorld frames=frames+1 If MilliSecs()-render_time>=1000 Then fps=frames frames=0 render_time=MilliSecs() EndIf Text 0,15, "Fps: "+fps If Population=1 Text 0,0,"Population beträgt "+Population+" Baum" Else Text 0,0,"Population beträgt "+Population+" Bäume" EndIf Flip Wend End Function CreateTree(x,z) Tr.Tree=New Tree Population=Population+1 Tr\ee=Addtree() Tr\Grow#=0.1 Tr\MaxWachstum#=Rnd(2.0,17.0) Tr\Lifetime=0 Tr\Maxlifetime=Rnd(100,3000) Tr\Samenzeit=0 Tr\Samenperiode=Rnd(100,300) Tr\Death=0 PositionEntity Tr\ee,x,0,z ScaleEntity Tr\ee,Tr\Grow,Tr\Grow,Tr\Grow If CheckTrees(Tr\ee) Tr\Death=1 EndIf End Function Function UpdateTrees() For Tr.Tree=Each Tree Tr\Lifetime=Tr\Lifetime+1 If Tr\Lifetime<Tr\Maxlifetime And Tr\Death=0 If Tr\Grow<Tr\MaxWachstum Tr\Grow=Tr\Grow+0.01 PositionEntity Tr\ee,EntityX(Tr\ee),MeshHeight(Tr\ee)/2,EntityZ(Tr\ee) ScaleEntity Tr\ee,Tr\Grow,Tr\Grow,Tr\Grow EndIf If Tr\Grow>1.9 And Tr\Grow<Tr\MaxWachstum If Tr\Samenzeit<Tr\Samenperiode Tr\Samenzeit=Tr\Samenzeit+1 Else Tr\Samenzeit=0 For Sam=0 To Rnd(0,1) CreateSamen(EntityX(Tr\ee),EntityZ(Tr\ee)) Next EndIf EndIf Else If Tr\Death=0 Tr\Death=1 EndIf EndIf If Tr\Death=1 If Tr\Grow>0.1 Tr\Grow=Tr\Grow-0.01 ScaleEntity Tr\ee,Tr\Grow,Tr\Grow,Tr\Grow Else DelChilds=CountChildren(Tr\ee) For DChild=1 To DelChilds FreeEntity GetChild(Tr\ee,DChild) Next Population=Population-1 FreeEntity Tr\ee Delete TR EndIf EndIf Next End Function Function CreateSamen(X,Z) Sa.Samen=New Samen Sa\men=CreateSphere(2) ScaleEntity Sa\men,0.1,0.1,0.1 EntityColor Sa\men,255,0,0 PositionEntity Sa\men,X,3,Z RotateEntity Sa\men,0,Rnd(0,360),0 Sa\Survive=Rnd(0,3) Sa\Speed#=Rnd(0.1,1) End Function Function CheckTrees(Check_Tree) For Tr.Tree=Each Tree If Tr\ee<>Check_Tree If EntityDistance(Tr\ee,Check_Tree)<20 Grow1#=CheckTreeGrow(Check_Tree) If Grow1 < Tr\Grow Return 1 Else Tr\Death=1 Return 0 EndIf EndIf EndIf Next End Function Function CheckTreeGrow(Check_Tree) For Tr.Tree=Each Tree If Tr\ee<>Check_Tree Return Tr\Grow EndIf Next End Function Function UpdateSamen() For Sa.Samen=Each Samen If EntityY(Sa\men)>0 MoveEntity Sa\men,0,0,1 TranslateEntity Sa\men,0,-0.1,0 Else If Sa\Survive<>0 CreateTree(EntityX(Sa\men),EntityZ(Sa\men)) EndIf FreeEntity Sa\men Delete Sa EndIf Next End Function Function Addtree() TreeC=CreateCone(6) Leafs=CreatePivot(TreeC) EntityColor TreeC,100,100,0 BrushLeaf=CreateBrush(0,255,0) Leaf=CreateMesh() SurfaceLeaf=CreateSurface(Leaf,BrushLeaf) V1=AddVertex(SurfaceLeaf,1,0,-1) V2=AddVertex(SurfaceLeaf,-1,0,-1) V3=AddVertex(SurfaceLeaf,0,-0.5,0) AddTriangle(SurfaceLeaf,V1,V2,V3) V4=AddVertex(SurfaceLeaf,1,0,-2) AddTriangle(SurfaceLeaf,V1,V4,V2) V5=AddVertex(SurfaceLeaf,-1,0,-2) AddTriangle(SurfaceLeaf,V4,V5,V2) V6=AddVertex(SurfaceLeaf,0,-0.5,-3) AddTriangle(SurfaceLeaf,V4,V6,V5) UpdateNormals Leaf Leaf2=CopyMesh(Leaf) Leaf3=CopyMesh(Leaf) RotateMesh Leaf,12,0,0 RotateEntity Leaf,0,120,0 PositionEntity Leaf,0,1.4,0 ;EntityTexture Leaf,Leaftexture EntityParent Leaf,Leafs EntityShininess Leaf,0.5 RotateMesh Leaf2,12,0,0 RotateEntity Leaf2,0,240,0 PositionEntity Leaf2,0,1.4,0 ;EntityTexture Leaf2,Leaftexture EntityParent Leaf2,Leafs EntityShininess Leaf2,0.5 RotateMesh Leaf3,12,0,0 RotateEntity Leaf3,0,0,0 PositionEntity Leaf3,0,1.4,0 ;EntityTexture Leaf3,Leaftexture EntityParent Leaf3,Leafs EntityShininess Leaf3,0.5 EntityFX TreeC,16 Return TreeC End Function OpenSource also ran an den Code. Viel Spaß noch MfG FreetimeCoder |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
- Zuletzt bearbeitet von FreetimeCoder am Do, Sep 07, 2006 6:38, insgesamt 2-mal bearbeitet
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm ich würde es eher "Kleeblätter" nennen ![]() EDIT: Ich such noch das mit vier blättern |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ist ein lustiges Programm, mir gefällts! ![]() @Schranz0r: Warst du nicht der, der nur Müll postet? DAS war wieder so ein Beitrag. Ein bisschen beleidigend war das auch ![]() |
||
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja ich hab ja gesagt, dass das kein Wald ist, und Kleeblätter sind doch auch schön ![]() Wenn jemand etwas ändern will, kann er es ja gerne versuchen. Wer vierblätterige Bäume (Kleebläter) suchen will ersetzt Addtree() durch: Code: [AUSKLAPPEN] Function Addtree()
TreeC=CreateCone(6) Leafs=CreatePivot(TreeC) EntityColor TreeC,100,100,0 BrushLeaf=CreateBrush(0,255,0) Leaf=CreateMesh() SurfaceLeaf=CreateSurface(Leaf,BrushLeaf) V1=AddVertex(SurfaceLeaf,1,0,-1) V2=AddVertex(SurfaceLeaf,-1,0,-1) V3=AddVertex(SurfaceLeaf,0,-0.5,0) AddTriangle(SurfaceLeaf,V1,V2,V3) V4=AddVertex(SurfaceLeaf,1,0,-2) AddTriangle(SurfaceLeaf,V1,V4,V2) V5=AddVertex(SurfaceLeaf,-1,0,-2) AddTriangle(SurfaceLeaf,V4,V5,V2) V6=AddVertex(SurfaceLeaf,0,-0.5,-3) AddTriangle(SurfaceLeaf,V4,V6,V5) UpdateNormals Leaf Blaeter=Rnd(0,10) If Blaeter=0 Leaf2=CopyMesh(Leaf) Leaf3=CopyMesh(Leaf) Leaf4=CopyMesh(Leaf) RotateMesh Leaf,12,0,0 RotateEntity Leaf,0,0,0 PositionEntity Leaf,0,1.4,0 EntityParent Leaf,Leafs EntityShininess Leaf,0.5 RotateMesh Leaf2,12,0,0 RotateEntity Leaf2,0,90,0 PositionEntity Leaf2,0,1.4,0 EntityParent Leaf2,Leafs EntityShininess Leaf2,0.5 RotateMesh Leaf3,12,0,0 RotateEntity Leaf3,0,180,0 PositionEntity Leaf3,0,1.4,0 EntityParent Leaf3,Leafs EntityShininess Leaf3,0.5 RotateMesh Leaf4,12,0,0 RotateEntity Leaf4,0,270,0 PositionEntity Leaf4,0,1.4,0 EntityParent Leaf4,Leafs EntityShininess Leaf3,0.5 Else Leaf2=CopyMesh(Leaf) Leaf3=CopyMesh(Leaf) RotateMesh Leaf,12,0,0 RotateEntity Leaf,0,120,0 PositionEntity Leaf,0,1.4,0 EntityParent Leaf,Leafs EntityShininess Leaf,0.5 RotateMesh Leaf2,12,0,0 RotateEntity Leaf2,0,240,0 PositionEntity Leaf2,0,1.4,0 EntityParent Leaf2,Leafs EntityShininess Leaf2,0.5 RotateMesh Leaf3,12,0,0 RotateEntity Leaf3,0,0,0 PositionEntity Leaf3,0,1.4,0 EntityParent Leaf3,Leafs EntityShininess Leaf3,0.5 EndIf |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mr Hopp hat Folgendes geschrieben: @Schranz0r: Warst du nicht der, der nur Müll postet? DAS war wieder so ein Beitrag. Ein bisschen beleidigend war das auch ![]() Hmm wenn ich so ein paar von deinen Posts anschaue..... Da ist genauso Müll dabei, also ----> Wer im Glashaus.... Kennst ja ![]() Was war da bitte beleidigend in meinen ersten Post?? Ich habe damit lediglich ausgedrückt, das ich es lustig finde das Programm, und das ich es anderes genannt hätte. Nicht mehr, und nicht weniger |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habs jetzt umbenannt ![]() |
||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo , hab schon gesehen ![]() Aber schaut doch echt so aus , oder? |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
![]() |
FreetimeCoder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Schon gut, ich habs auch nicht als Beleidigung aufgefasst, das ganze war ursprünglich dazu gedacht, den Umgang mit Addvertex und so zu lernen, und dann hab ich einfach weitergemacht. | ||
"Wir haben keine Chance, aber wir werden sie nutzen!"
Projekte: Dexterity Ball (100%) Aquatic Atmosfear (22 % ca 4700 Zeilen) eingefrohren mangels OOP Fähigkeiten von Blitz (ehemals Uboot) PC: Intel D 3 GHz | NVidiaGforce 6700 256 Mb | 1024 Mb DDR RAM 400 Mhz | 2x160 GB S-ATA |
![]() |
Cat |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hilfe, die Invasion der Bäume!!
Ne, Scherz ![]() Gefällt mir, sieht witzig aus |
||
Intel Core 2 Duo E6300 (2 x 1,86 Ghz)
2 x 1024 MB Arbeitsspeicher NVidia GeForce 8800 GT |
![]() |
Schranz0r |
![]() Antworten mit Zitat ![]() |
---|---|---|
FreetimeCoder hat Folgendes geschrieben: Schon gut, ich habs auch nicht als Beleidigung aufgefasst, das ganze war ursprünglich dazu gedacht, den Umgang mit Addvertex und so zu lernen, und dann hab ich einfach weitergemacht.
Dafür ist es doch super geworden!! Weiter so ![]() |
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!HAUPTSACH et kost VIEL!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group