partikel- Dim oder Type?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

KddC

Betreff: partikel- Dim oder Type?

BeitragMo, Okt 01, 2007 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
moin

ich wollte mich nun mal an ein kleines "partikelsystem" wagen und habe mir dazu ein paar beispiele angesehen und habe teils welche mit dim feldern und ander mit types gesehen.

was würdet ihr mir empfehlen- Types oder Dim?
Und gibt es sonst noch etwas grundlegendes zu beachten?
Das es später als singlesurface behandelt weden soll weiß ich schon werde es aber erstmal zum rumprobieren nur mit sprites machen.

Danke für eure Hilfe
kddc.l3usch
  • Zuletzt bearbeitet von KddC am Mi, Okt 03, 2007 10:20, insgesamt 4-mal bearbeitet
 

Dreamora

BeitragMo, Okt 01, 2007 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Types oder alternativ Mal Banks ansehen.

Dim hat 2 Probleme:

1. Entweder du vergrösserst und verkleinerst ihn immer. dann wird er extrem langsam
2. Du vergrösserst und verkleinerst ihn net, dann hast du ne fixe grösse sprich fixe anzahl partikel fürs gesamte system, was auch net immer so toll ist.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

KddC

BeitragMo, Okt 01, 2007 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die fix antwort....dann werd ich wohl types nehmen....
mal sehen wie weit ich komm Wink
mfg

SpionAtom

BeitragMo, Okt 01, 2007 20:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Dreamora hat Folgendes geschrieben:

Dim hat 2 Probleme:
1. Entweder du vergrösserst und verkleinerst ihn immer. dann wird er extrem langsam
2. Du vergrösserst und verkleinerst ihn net, dann hast du ne fixe grösse sprich fixe anzahl partikel fürs gesamte system, was auch net immer so toll ist.


Oder wenn du Dim-Felder nehmen willst, benutze folgenden Walkaround: Mach ein ausreichend großes Dim-feld und speicher immer die Anzahl der Partikel in einer gesonderten Variable. So hast du nur noch das "Problem", dass du an eine Maximalgröße gebunden bist.
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

KddC

BeitragDi, Okt 02, 2007 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
auch noch mal danke...hab es jetzt aber mit types gemacht...ich hatte eh schon mit types angefangen war aber n biischen verunsichert was denn nun besser ist.

wenn ihr wollt könnt ihr euch das ja mal anschauen. habe es mit Rauchtextur hochgeladen und den code hier gepostet...könnt ja mal gucken.

hab ausserdem eine Frage...man kann ja auch ne textur nehmen die das programm direkt in c speichert. das sind dann ganz normale Kreise...
Und bei denen erkennt man, anders als bei der rauchtextur, dass die Partikel wenn sie in der luft fliegen immer stark hin undher ruckeln...könnt ihr mir sagen wie man das behebt und woran das liegt...das wäre nett.
Danke Very Happy ....auch ansonsten bin ich für jede art von kritik dakbar...( Single surface kommt noch Wink... mir ist sehrwohl bewusst dass das ganze so noch nicht optimal ist Smile )

also hier der Link(zip archiv mit rauchtextur)
http://www.file-upload.net/dow...h.zip.html



Und hier der code
Code: [AUSKLAPPEN]
; von Julian Tiemann


partikel=CreateImage(64, 64)
   SetBuffer ImageBuffer(partikel)
   ClsColor 0, 0, 0
   Cls
   Color 255, 255, 255
   Oval 16, 16, 32, 32
SaveBuffer(ImageBuffer(Partikel), "C:/Partikel.bmp")



AppTitle "Rauchpartikel"
Graphics3D 800,600,32,2
SeedRnd MilliSecs()

camera=CreateCamera()
PositionEntity camera,0,1,-10


Type partikel
   Field Qualm
   Field zeit#
   Field alpha#
   Field groesse#
   Field farbg
   Field farbr
End Type


Global Qualm = LoadSprite("smoke1.bmp",3)              ;<-------------wenn man die Rauchtextur hat       
;Global Qualm = LoadSprite("C:\partikel.bmp",3)        ;<-------------wenn man die Rauchtextur nicht hat
HideEntity qualm

HidePointer

;-----------------------------------------------Hauptteil-----------------------------------------------;

Repeat

   mx=MouseX()
   my=MouseY()

   If MouseDown(1)  Then
      ADDqualm() 
   End If


   curTime = MilliSecs()
      If curTime > checkTime Then
         checkTime = curTime + 1000
         curFPS = fpscounter
         fpscounter = 0
         If currentFrame>75
            If curFPS<fps_low Then fps_low = curFPS
         EndIf
      Else
         fpscounter = fpscounter + 1
      End If


   UpdateWorld()
   UppQualm()
   RenderWorld()

      Oval mx-3,my-3,6,6,0
      Text 0,0,curfps

   Flip

Until KeyHit(1)

;----------------------------------------------Ende Hauptteil-------------------------------------------;

End

;---------------------------------------------Qualm erstellen-------------------------------------------;

Function AddQualm()

   For i=0 To 2

      p.partikel=New partikel
      p\qualm=CopyEntity(Qualm)
      p\zeit#=100   
      p\alpha#=Rnd(0.1,0.9)
      p\groesse#=Rnd(90,100)
      p\farbg=255
      p\farbr=255
       
      PositionEntity p\qualm,(MouseX()/100)-5.5,-MouseY()/100+4,0

   Next

End Function

;-------------------------------------------Qualm aktualisieren-----------------------------------------;

Function UppQualm()

   For p.partikel = Each partikel

      If p\zeit# > 0 Then
         
         p\zeit# = p\zeit# + 1
         p\alpha#=p\alpha#-0.01
         p\groesse#=p\groesse+5
         p\farbg=p\farbg-4

         TranslateEntity p\qualm,Sin(Rnd(-0.5,0.5))*20 ,Rnd(0.07,0.1),Rnd(-0.5,0.5)
         EntityColor p\qualm,p\farbr,p\farbg,0
         EntityAlpha P\qualm,P\alpha#
      
         ScaleSprite P\qualm,P\groesse# /150,P\groesse# /150   ;<-------------wenn man die Rauchtextur hat
         ;ScaleSprite P\qualm,P\groesse# /300,P\groesse#/300    ;<-------------wenn man die Rauchtextur nicht hat
      
      End If


      If p\alpha# < 0.1 Then
         FreeEntity P\qualm
         Delete P
      End If

   Next

End Function




Danke für eure Hilfe
kddc.l3usch

Dottakopf

BeitragMi, Okt 03, 2007 12:38
Antworten mit Zitat
Benutzer-Profile anzeigen
habs mir mal angeschaut, und ich hab drei punkte die mich stören

1) blitzforum bietet ein archiv an wo man runterladen kann, keine dritt seiten (des mag ich halt ned .. ist soein tick von mir)

2) der rauch kommt etwas schnell, als würde er mit druck irgenwo hinausgeblasen, würde somit als dampf besser passen.

3) Der rauch wird nicht da erstellt, wo die maus ist.

Von der obtik her und wie die so erstellt wurden/übergänge hat mir gefallen.

~edit~ noobfrage: ist das eigentlich ein "richtiges" partikel system?

mfg Dottakopf

KddC

BeitragMi, Okt 03, 2007 13:18
Antworten mit Zitat
Benutzer-Profile anzeigen
nein ist kein system Very Happy is bis jetzt nur n kleiner effekt Wink das war auch eher so für mich selbst zum üben gedacht damit ich so einen kleinen überblick habe wie das ganze ungefähr funktioniert.
habe jetzt auch neu angefangen um das ganze einem system ein stück näher zu bringen Wink

Ich habe auch nicht vor das ganze später mit partikel candy zu vergleich sondern es wäre dann vllt auch so gedacht, dass sich anfänger das ganze mal anschauen und benutzen können und vllt auch n bisschen daraus lernen können weil ich denke dass es vergleichsweise sehr sein wird und somit um einiges übersichtlicher. Mal sehen vllt kommt es ja auch gar nicht so weit.

das mit der geschwindigkeit stimmt....der ist wirklich sehr schnell Very Happy
und dass mit der maus ist mir auch bewusst....ich hab nur noch nicht herausgefunden woran es liegt....
und den nächsten versuch werde ich extra für dich hier im archiev hochladen
(wie groß dürfen die dateien eig sein die man hier hochläd?)

mfg

Dottakopf

BeitragMi, Okt 03, 2007 13:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Oha nur intwa 2MB ^^

Nö du brauchst nich für mich extra etwas neues/besseres schreiben, ich arbeite mit sowas überhaupt nicht, und müsste des selbst ersmal ânschauen, wie man sowas macht.

wegen der maus:
Ka woran das liegt, aber ich glaube im 3D nimmt er mousex() und mousey() nicht einfach so, bzw. die "übersetztung" von 2D bildschim kordinate auf 3D koordinate im raum stimmt dann nicht so genau.

Hab blos mal kurz im 3D bereich gearbeitet, daher bin ich da n voll nubie

mfg Dottakopf

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group