Seite 1 von 2

Keine Reihenfolge???

Verfasst: 02.02.2006 17:38
von R4z0r1989
Wieso macht Pure Basic keine Reihenfolge rein
weil es das irgendwie alles gleichzeitig macht macht was in der if abfrage steht geh ich mal davon aus:

Code: Alles auswählen

If x.l < xho.l + 000 And x.l > xvo.l + 000
        If y.l < yho.l And y.l > yvo.l
          PlaySound(0) 
          PlaySound(1)
          CatchSprite(1,?Knopf)
          Delay(300)
          CatchSprite(1,?Knopfd)
        EndIf 
      EndIf
und frage euch nun wie ich es schaft das er die Sounds abspielt und Gleichzeitig ?knopfb lädt dann 300 Milisekunden wartet und dann wieder ?Knopf läd?

Danke für jede Antwort!!!

greatz Badray

Verfasst: 02.02.2006 17:59
von Ja!
Wenn ich Dich richtig verstanden habe, dann ist Dein Code doch korrekt?

300ms sind echt kurz, woher weißt Du, daß er wirklich alles gleichzeitig macht?
...und Dir ist schon klar, daß Delay() die gesamte Programmausführung
stoppt? Das ist eigentlich nicht sehr "elegant"..bzw. Vorteilhaft.

Ich frag mich nur was das soll: .. xho.l + 000 .. ?
Das bewirkt praktisch nichts!

Verfasst: 02.02.2006 18:06
von R4z0r1989
Weil ich delay mal auf 3000 gesetzt hab es stoppt wie gesagt nur dass Programm und der Knopf den das Sprite darstellen soll verändert sich nicht wirklich!!!

Weil es ein Nippelboard von Stefan Raab darstellen soll!

und wenn ich auf den Knopf drücke soll er kurz nach unten geh und dann nach einer bestimmten zeit z.B. ne halbe Sekunde wieder nach oben aber er geht nicht mal nach unten und wissen tu ich dass er alles gleichzeitig mmmacht weis ich weil ich jeden sound in 2 Teile gemacht hab also das Död und den Spruch aber er Spielt beide Sounds gleichzeitig ab deshalb hab ich vor jedem Spruch ein Pause machen müssen in der Länge des Död tons!!!

und wegen dem Delay gibt da ne andre lösung ohne das das Programm angehalten!!

Verfasst: 02.02.2006 18:14
von roherter
Catchsprite gehört nich in die Repeat - schleife es wird einmal am anfang(also vor der schleife) aufegerufen alles andere macht man über displaysprite()

Verfasst: 02.02.2006 18:19
von R4z0r1989
danke aber das geht auch nicht aberr vl hab ichs falsch gesetzt

könntest du mir vl ein Beispiel geben

Verfasst: 02.02.2006 18:22
von Ja!
Natürlich spielt er beide Sounds gleichzeitig ab wenn Du PlaySound() 2 mal hintereinander aufrufst:

Code: Alles auswählen

PlaySound(0)
PlaySound(1)
Das ist normal, und auch gut so!

Du müsstest 300ms "abstand" zwische den beiden PlaySound() haben.

Verzichte auf Delay() vollständig und mache das mit einer
Zeitsteuerung per ElapsedMilliseconds() (siehe Hilfe).


Kurzes Beispiel (Debugger einschalten!):

Code: Alles auswählen


Debug "start.."
startzeit.l = ElapsedMilliseconds()

Repeat
Until (ElapsedMilliseconds() - startzeit) > 299

Debug "..fertig"

End

Dieser Code wartet 300ms und beendet dann.

Verfasst: 02.02.2006 18:55
von Ja!
..ach und da Du scheinbar noch Anfänger in PureBasic bist, würde
ich mir an Deiner Stelle erst ein paar grundlegende Programmierkenntnisse
aneignen.
Mach doch mal ein Anfänger-tutorium, z.B. von : www.robsite.de

Gruß

Verfasst: 02.02.2006 20:31
von R4z0r1989
bei mir kommt dann ElapsedMilliseconds() is not a Funktion or an arry

wieso

Verfasst: 02.02.2006 20:35
von edel
Gibt es erst seit 3.90
Versuch mal GetTickCount_()

Verfasst: 02.02.2006 22:03
von R4z0r1989
danke es hat funktioniert!!! aber ich hab noch ne frage ich will euch das Nippelboard zum Download bereitstellen wo bekomm ich dafür Webspace her???