partikel ... flitzt zu schnell
Übersicht

![]() |
DottakopfBetreff: partikel ... flitzt zu schnell |
![]() Antworten mit Zitat ![]() |
---|---|---|
hio blitzer !
Da ich grad nen rechner formatier und des noch dauert und ich sonst nichts zu tun hab, hab ich ein kleines partikel dings da geschrieben. Geht auch alles prima, bis auf die tatsache, dass wenn ich mit der maus absetze und dann erneut klicke, die ersten partikel mit vollgas aus dem bild rauschen ^^ obwohl ich die maus kaum bewegt hab. Woran liegt den das ? Code: [AUSKLAPPEN] Graphics 800,600,32,2 SetBuffer BackBuffer() SeedRnd MilliSecs() Global counter Global timer = CreateTimer(80) Type pop Field px# Field py# Field p_color_r Field p_color_g Field p_color_b Field p_speed# Field p_speedx# Field p_speedy# End Type Repeat Cls WaitTimer(timer) create_partikel() update_partikel() Flip Until KeyHit(1) Function create_partikel() If MouseDown(1) Then counter = counter +1 If counter >= 3 Then counter = 0 info.pop = New pop info\px = MouseX() info\py = MouseY() info\p_speedx = MouseXSpeed() info\P_speedy = MouseYSpeed() info\p_color_r = Rnd(0,255) info\p_color_g = Rnd(0,255) info\p_color_b = Rnd(0,255) info\p_speed = 0 End If End If End Function Function update_partikel() For info.pop = Each pop info\p_speed = info\p_speed + 0.1 ;gravi info\py = info\py + ( info\p_speed + (info\p_speedy*0.2) ) ;maus speed info\px = info\px + info\p_speedx*0.2 Color info\p_color_r,info\p_color_g,info\p_color_b : Oval info\px ,info\py,2,2 If info\py > 600 Then Delete info.pop Next End Function Weis einer wie ich das "ding" ein bisschen lustiger und knuffiger mach ? ![]() mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
MouseX- bzw. YSpeed geben den Wert seit der letzten Abfrage zurück. Da Du diese Werte nur in der Funktion abfragst werden sie zu wenig oft aktualisiert und erreichen deshalb oftmals so utopische Werte. Speichere die Werte in der Hauptschleife in Variablen ab, welche dann der Funktion übergeben werden und es müßte funktionieren ![]() |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
aber wenn ich des jetzt in der hauptschleife mache, dann werden die partikel ja immer so schnell fliegen wie sich gerade in diesem moment die maus bewegt. Somit is doch dann das selbständige fliegen mit der anfangsgeschwindigkeit aufgehoben oder ?
mfg Dottakopf |
||
Rechtschreibfehler gelten der allgemeinen Belustigung! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab es wie vorgeschlagen umgebaut und es funzt sehr gut. Du kannst ja auch ne abfrage machen wie gross die Werte sind und sie wenn sie zu klein sind auf einen Startwert setzen | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ach lal ^^
Sry ich hätt vielleicht ned so lala lesen sollen. Mein fehler ! Umgesetzt also so : Code: [AUSKLAPPEN] Graphics 800,600,32,2 SetBuffer BackBuffer() SeedRnd MilliSecs() HidePointer Global counter,p_sx#,p_sy# Global timer = CreateTimer(80) Global mx,my Type pop Field px# Field py# Field p_color_r# Field p_color_g# Field p_color_b# Field p_speed# Field p_speedx# Field p_speedy# End Type Repeat Cls WaitTimer(timer) p_sx# = MouseXSpeed() p_sy# = MouseYSpeed() create_partikel() update_partikel() update_cursor() Flip Until KeyHit(1) Function create_partikel() If MouseDown(1) Then counter = counter +1 If counter >= 3 Then counter = 0 info.pop = New pop info\px = MouseX() +Rnd(-5,5) info\py = MouseY() +Rnd(-5,5) info\p_speedx = p_sx# info\P_speedy = p_sy# info\p_color_r = Rnd(0,255) info\p_color_g = Rnd(0,255) info\p_color_b = Rnd(0,255) info\p_speed = 0 End If End If End Function Function update_partikel() For info.pop = Each pop info\p_speed = info\p_speed + 0.11115 ;gravi info\py = info\py + ( info\p_speed + (info\p_speedy*0.2) ) ;maus speed info\px = info\px + info\p_speedx*0.2 Color info\p_color_r,info\p_color_g,info\p_color_b : Oval info\px ,info\py,2,2 If info\py > 600 Then Delete info.pop Next End Function Function update_cursor() mx = MouseX() my = MouseY() Color 0,0,150 Rect mx,my,3,3,1 End Function Hmm aber irgendwie fehlt da noch das spritzige, knuddlige ... es fehlt ein gewisses etwas. Ein etwas des es noch a wengl auf peppt. Des ist so leblos, oder bekommt man des ned "atemberaubender" ^^ ~ EDIT ~ ich hab die erstell punkte verändert und dern cursor ersetzt. Aber vielleicht fällt euch ja nochwas ein mfg Dottakopf |
||
![]() |
kriDBetreff: ^^ |
![]() Antworten mit Zitat ![]() |
---|---|---|
hi
mach doch funken.. die sind denn erst weiß/gelb und werden dann rot/orange, bis sie verglühen.... das würd schon mehr hermachen glaub ich^^ oder du machst n sandfallgame draus^^ MfG kriD |
||
Wenn ich du wäre, wäre ich lieber ich! |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder auch:
-Die funken glühen von rot bis gelb/weiß auf, und zerspringen in weitere funken die in zufälliger Richtung davonfliegen und ihrerseits zerspringen etc. -Lass sie am Bildschirmrand abprallen -Mach zwei verschieden gefärbte funkentypen, die sich bei Berührung gegenseitig auslöschen... Die Möglichkeiten sind schier endlos ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
oha ^^
Stimmt das ist sehr kreativ und würde bestimmt cool aussehen, aber das ist dan doch schon ganzschön komplex für ne spielerrei ^^ Aber an den Farben werd ich auf jedenfall was machen! Wenn ich noch bock hab schau ich mir mal des mit dem zerspringen/abprallen an. mfg Dottakopf |
||
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok ich hab jetzt diese farbstufungen drinn. Und meine frage an eucht:
Kann man des als funken identifizieren?? ich find es hält sich in grenzen. Code: [AUSKLAPPEN] Graphics 800,600,32,2 SetBuffer BackBuffer() SeedRnd MilliSecs() HidePointer Global counter,p_sx#,p_sy# Global timer = CreateTimer(80) Global mx,my Type pop Field px# Field py# Field p_color_r# Field p_color_g# Field p_color_b# Field p_speed# Field p_speedx# Field p_speedy# End Type Repeat Cls WaitTimer(timer) p_sx# = MouseXSpeed() p_sy# = MouseYSpeed() create_partikel() update_partikel() update_cursor() Flip Until KeyHit(1) Function create_partikel() If MouseDown(1) Then counter = counter +1 If counter >= 3 Then counter = 0 info.pop = New pop info\px = MouseX() +Rnd(-5,5) info\py = MouseY() +Rnd(-5,5) info\p_speedx = p_sx# info\P_speedy = p_sy# info\p_color_r = Rnd(0,255) info\p_color_g = Rnd(0,255) info\p_color_b = Rnd(0,255) info\p_speed = 0 End If End If End Function Function update_partikel() For info.pop = Each pop info\p_speed = info\p_speed + 0.1 ;gravi info\py = info\py + ( info\p_speed + (info\p_speedy*0.2) ) ;maus speed info\px = info\px + info\p_speedx*0.2 Color info\p_color_r,info\p_color_g,info\p_color_b : Oval info\px ,info\py,2,2 If info\py > 600 Then Delete info.pop Next End Function Function update_cursor() mx = MouseX() my = MouseY() Color 0,0,150 Rect mx,my,3,3,1 End Function ich hatte auch eine "life" variable, welche für "das verglühen" sorgen sollte, aber irgendwie sind die trotz rnd(0,200) immer an der fast gleichen stelle verschwunden. Das sah extrem unnatürlich aus, und daher hab ich des wieder rausgenommen. Was haltet ihr von den Farbstufen? mfg Dottakopf |
||
Moses |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
naja hat eher was von konfetti ^^, weiß , helles rot, gelb, orange in meheren abstufungen, und mehr streung, sollten dann auch dunkler werden mit der zeit, vom unterem rand kurz mit nem aufleuchen apprallen und bis zum ausglühen liegenbleiben ..., nen texturiertes sprite mit weichen rändern könnte auch nicht schaden, dann brauch man auch nicht abdunkeln sonder scalt das sprite einfach runter im 3d modus ![]() |
||
- Zuletzt bearbeitet von Moses am Do, Sep 27, 2007 14:35, insgesamt einmal bearbeitet
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du die Farbgebung der Partikel nicht völlig zufällig wählst, sondern etwas eingrenzt:
Code: [AUSKLAPPEN] info\p_color_r = Rnd(200,255)
info\p_color_g = Rnd(0,128) info\p_color_b = Rnd(0,255) und bei der Aktualisierung noch so etwas in der Art einfügst: Code: [AUSKLAPPEN] info\p_color_r = info\p_color_r - 1 : If info\p_color_r < 0 Then info\p_color_r = 0
Wären es schon mal ganz nette Funken. Oh, und ich würde die Gravitation ein Tick runterschrauben ^^
info\p_color_g = info\p_color_g - 1 : If info\p_color_g < 0 Then info\p_color_g = 0 info\p_color_b = info\p_color_b - 1 : If info\p_color_b < 0 Then info\p_color_b = 0 Ich glaub fast, ich bau mir lieber selber mal so eine Partikelspielerei als weiter gute Ratschläge um mich zu werfen ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
^^ ja des soll ned so rüber kommen als ob ich euch ausquetsch.
Wollte halt noch n paar andere meinungen einholen, und ich find des irgnednwie faszinierend wenn man die so durch die gegend "wirft" mfg Dottakopf |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Falls es interessiert: Meine Materie-Antimaterie Partikel Simulation funktioniert ganz gut - danke für die gute Idee ^^
Mal sehen was Partikel noch so hergeben... Edit: Warum werden ausgerechnet im Codepasting die "\" Zeichen nicht übernommen? Mit Types ist das denn ja doof... |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
Dottakopf |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würd mir echt gern anschauen aber ich bekomms nicht zum laufen ![]() hast du n funktionsfähigen code ? zum schicken wäre echt interesiert ~Edit~ etz merk ich erst, dass ich bei meinem zeiten code - post statt dem neuen code den alten erneut reingeschrieben habe.... Kein wunde das des nicht wie funken sondern wie konfetie ausschaut, da es immer noch konfetie ist ![]() ![]() mfg Dottakopf |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group