[B3D] kleine Feuer Engiene
Übersicht

DoniBetreff: [B3D] kleine Feuer Engiene |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
ich hab mal ne kleine Feuerengiene gemacht: Code: [AUSKLAPPEN] ;Engiene Für Feuer SeedRnd(MilliSecs()) Graphics3D 1024,768,16,1 cam = CreateCamera() Type fire_quelle Field x,y Field timer,menge End Type Type fire Field alpha#,timer Field image,gesch Field r,g End Type Global q.fire_quelle,f.fire,wind_timer,flamme flamme = CreateSprite() ScaleSprite flamme,5,5 For I = 1 To 5 q.fire_quelle = New fire_quelle q.fire_quelle = Last fire_quelle q.fire_quelle\x = 200+i*14 q.fire_quelle\y = 500 q.fire_quelle\timer = Rnd(2000,10000) q.fire_quelle\menge = 10 Next wind_gesch = 3 frame = CreateTimer(100) Repeat SetBuffer BackBuffer() create_fire() move_fire(wind_gesch) verbrauch_fire() ;wind_gesch = chance_wind(wind_gesch,wind_timer) i = 0 For f.fire = Each fire i = i+1 Next ;UpdateWorld() RenderWorld() Text 10,10,i Flip Cls Until KeyHit(1) End Function create_fire() For q.fire_quelle = Each fire_quelle For I = 1 To q.fire_quelle\menge f.fire = New fire f.fire = Last fire f.fire\gesch = 10 f.fire\image = CopyEntity(flamme) f.fire\r = 255 f.fire\g = 255 f.fire\alpha = 1 ;ScaleSprite f.fire\image,3,3 EntityColor f.fire\image,255,255,0 ;EntityAlpha f.fire\image,0.3 PositionEntity f.fire\image,((q.fire_quelle\x+Rnd(-5,+5))*2)-1024+2,-((q.fire_quelle\y+Rnd(-5,5))*2)+768-2,768 Next Next End Function Function move_fire(wind_gesch) For f.fire = Each fire MoveEntity f.fire\image,wind_gesch,f.fire\gesch,0 RotateSprite f.fire\image,2 Next End Function Function verbrauch_fire() For f.fire = Each fire If f.fire\timer < MilliSecs() Then f.fire\timer = MilliSecs()+Rnd(30,80) f.fire\alpha# = f.fire\alpha-0.1 If f.fire\r > 50 Then f.fire\r = f.fire\r - 20 f.fire\g = f.fire\g - 40 EntityColor f.fire\image,f.fire\r,f.fire\g,0 EntityAlpha f.fire\image,f.fire\alpha# EndIf If f.fire\alpha# < 0.1 Then FreeEntity f.fire\image:Delete f.fire Next End Function Function chance_wind(gesch,timer) If wind_timer < MilliSecs() Then gesch = Rnd(10) wind_timer = MilliSecs()+Rnd(70,300)-gesch*3 EndIf Return gesch End Function wind_gesch = wind geschwindigkeit ![]() Noch eine Frage: Wie geht es das ich nicht immer die Sprites neu laden muss? Bin neu in BB3D Lob und Kritik erwünscht! Doni EDIT: habs mal nen bischen überarbeitet! |
||
- Zuletzt bearbeitet von Doni am Do, Sep 22, 2005 20:18, insgesamt 2-mal bearbeitet
#ReaperNewsposter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Da meinst du bestimmt CopyEntity() ![]() Also, ist in ordnung, aber es sieht nochnicht aus wie ein richtiges feuer ![]() MfG #Reaper |
||
AMD Athlon 64 3500+, ATI AX800 Pro/TD, 2048 MB DRR 400 von Infineon, ♥RIP♥ (2005 - Juli 2015 -> sic!)
Blitz3D, BlitzMax, MaxGUI, Monkey X; Win7 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group