Funken
Übersicht

![]() |
ChesterBetreff: Funken |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi@all,
Wie kann ich in B3D eigentlich Funken sprühen lassen? Mfg ChEsTeR PS: Ja, ihr könnt euch sicherlich denken, wozu ich das Brauch ![]() |
||
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
gaaaanz kompliziert:
mit Types! ich hatte da mal was gemacht *Festplattedurchwühl* Code: [AUSKLAPPEN] Graphics 800, 600, 16, 1
SetBuffer BackBuffer() SeedRnd MilliSecs() MoveMouse 400, 300 Type Partikel Field X# Field Y# Field rot Field gruen Field blau Field X_Ver# Field Y_Ver# Field LD End Type Repeat Cls For i=0 To 3 P.Partikel=New Partikel P\X#=MouseX() P\Y#=MouseY() P\rot=Rnd(0, 255) P\gruen=Rnd(0, 255) P\blau=Rnd(0, 255) a=Rnd(0, 360) P\X_Ver#=Cos(a) P\Y_Ver#=Sin(a) P\LD=Rnd(25, 50) Next LockBuffer BackBuffer() For P=Each Partikel rgb=$FF000000+P\rot*$10000+P\gruen*$100+P\blau If P\X#>0 And P\X#<800 And P\Y#>0 And P\Y#< 600 Then WritePixelFast P\X#, P\Y#, rgb P\LD=P\LD-1 P\X#=P\X#+P\X_Ver# P\Y#=P\Y#+P\Y_Ver# If P\LD<1 Then Delete P Next UnlockBuffer BackBuffer() If MouseHit(2) Then Delete Each Partikel Flip Until KeyHit(1) End Das erstellt bunte Punkte am Mauszeiger [Edit] Erläuterung: Das erstellt den Type: Code: [AUSKLAPPEN] Type Partikel
Field X# ;X-Position Field Y# ;Y-Position Field rot ;rot-Anteil der Farbe Field gruen ;Gruen-" " Field blau ;Blau- " " Field X_Ver# ;X-Bewegung Field Y_Ver# ;YBewegung Field LD ;"Lebensdauer" End Type dann werden halt pro Schleife alle durchgegangen, bewegt, gezeichnet und(gegebenfalls) gelöscht. In der anderen Schleife werden halt pro Hauptschleifen-Durchlauf 3 neue erstellt [/Edit] Code: [AUSKLAPPEN] Graphics3D 800, 600, 16, 1
SeedRnd MilliSecs() Type Partikel Field objekt Field X# Field Y# Field Z# Field rot Field gruen Field blau Field X_Ver# Field Y_Ver# Field Z_Ver# Field LD End Type Type Partikelemitter Field X# Field Y# Field Z# Field pitch1 Field pitch2 Field yaw1 Field yaw2 Field rot1 Field rot2 Field gruen1 Field gruen2 Field blau1 Field blau2 Field Menge End Type Global temppitch1=0 Global temppitch2=0 Global tempyaw1=0 Global tempyaw2=0 Global kuerzer=0 Global PE.Partikelemitter=New Partikelemitter PE\pitch1=-10 PE\pitch2=10 PE\yaw1=-10 PE\yaw2=10 PE\rot1=0 PE\rot2=64 PE\gruen1=0 PE\gruen2=255 PE\blau1=0 PE\blau2=64 PE\Menge=5 c1=CreateCamera() c2=CreateCamera() l=CreateLight(1) o=LoadSprite( "Partikel.bmp" ) ScaleSprite o, 0.1, 0.1 HideEntity o PositionEntity c1, 5, 0, 0 TurnEntity c1, 0, 90, 0 PositionEntity c2, 0, 0, -5 CameraViewport c1, 0, 0, 800, 300 CameraViewport c2, 0, 300, 800, 300 Global Nummer=-1 P.Partikel=New Partikel P\objekt=CopyEntity(o) EntityAlpha P\objekt, 0 Repeat For PE=Each Partikelemitter PE\yaw1=PE\yaw1+1 PE\yaw2=PE\yaw2+1 If PE\yaw1>360 And PE\yaw2>360 Then PE\yaw1=PE\yaw1-360 PE\yaw2=PE\yaw2-360 EndIf For i=0 To PE\Menge P.Partikel=New Partikel P\objekt=CopyEntity(o) P\X#=PE\X# P\Y#=PE\Y# P\Z#=PE\Z# P\rot=Rnd(PE\rot1, PE\rot2) P\gruen=Rnd(PE\gruen1, PE\gruen2) P\blau=Rnd(PE\blau1, PE\blau2) EntityColor P\objekt, P\rot, P\gruen, P\blau a1=Rnd(PE\pitch1, PE\pitch2) a2=Rnd(PE\yaw1, PE\yaw2) P\Y_Ver#=Sin(a1)*1 XZ_Ver#=Cos(a1)*1 P\Z_Ver#=Cos(a2)*XZ_Ver# P\X_Ver#=Sin(a2)*XZ_Ver# Geschw=Rnd(25, 50) P\X_Ver#=P\X_Ver#*0.0025*Geschw P\Y_Ver#=P\Y_Ver#*0.0025*Geschw P\Z_Ver#=P\Z_Ver#*0.0025*Geschw P\LD=Rnd(25, 50) Next Next For P=Each Partikel P\X#=P\X#+P\X_Ver# P\Y#=P\Y#+P\Y_Ver# P\Z#=P\Z#+P\Z_Ver# PositionEntity P\objekt, P\X#, P\Y#, P\Z# P\LD=P\LD-1 If P\LD<1 Then FreeEntity P\objekt Delete P EndIf Next If KeyDown(200) Then TurnEntity c1, 1, 0, 0 If KeyDown(208) Then TurnEntity c1, -1, 0, 0 If KeyDown(203) Then TurnEntity c1, 0, 1, 0 If KeyDown(205) Then TurnEntity c1, 0, -1, 0 If KeyDown(30) Then MoveEntity c1, 0, 0, 0.1 If KeyDown(44) Then MoveEntity c1, 0, 0, -0.1 PE=First Partikelemitter For i=0 To Nummer PE=After PE Next If KeyDown(75) Then PE\X#=PE\X#-0.1 If KeyDown(77) Then PE\X#=PE\X#+0.1 If KeyDown(72) Then PE\Y#=PE\Y#+0.1 If KeyDown(80) Then PE\Y#=PE\Y#-0.1 If KeyDown(71) Then PE\Z#=PE\Z#-0.1 If KeyDown(73) Then PE\Z#=PE\Z#+0.1 RenderWorld UpdateWorld PE=First partikelemitter Color 255, 0, 0 Text 10, 10, PE\pitch1 Text 10, 25, PE\pitch2 Text 10, 40, PE\yaw1 Text 10, 55, PE\yaw2 Flip Until KeyHit(1) End und das zeigt einen sich drehenden grünen "Triebwerksstrahl" aus zwei Perspektiven. (Das sind alles Übungsprogramme, die ich geschrieben habe, um mich mit Types vertraut zu machen) Lernen kannst du das ganze am besten hier: http://www.blitzbase.de/tutorials/shadow_1.htm |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
- Zuletzt bearbeitet von Michi am Do, März 10, 2005 21:13, insgesamt einmal bearbeitet
![]() |
Chester |
![]() Antworten mit Zitat ![]() |
---|---|---|
Thx für die schnelle Antowrt, aber wie hat das Bild "Partikel.bmp" ausgesehen? | ||
![]() |
Spikespine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich schätz mal klein und gelb ![]() |
||
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax |
Michi |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oh, sorry
So: Code: [AUSKLAPPEN] Global Partikel=CreateImage(32, 32)
8)
SetBuffer ImageBuffer(Partikel) ClsColor 0, 0, 0 Cls Color 255, 255, 255 Oval 0, 0, 32, 32 SaveBuffer(ImageBuffer(Partikel), "C:/Partikel.bmp") End Ich hab oben übrigens noch ein bissl erläutert |
||
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968 Code: [AUSKLAPPEN] __ <_/__\_> <--- die Wayne-Zeichnung |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group