Timer, Sprite Problem

Previous topic - Next topic

superfish

Hi @all,

hab da eine Denksperre ;)


1.
Also, meine idee ist es, ein Power Up in form eines Sprites einzubauen, welches die Anzahl der leben um 1 erhöt.

da dachte ich erstmal ok, mach einen Timer und nach einer gewissen Zeit wird das Sprite erscheinen.

das sah dann erstmal so aus:

Code (glbasic) Select
timer = gettimerall()

      if timer > 2000
              if timer <40000
                sprite x,400,300
              endif
      endif
showscreen
Alles schön, nach 2 sek wird das Sprite für 2sek angezeigt.

Dann fehlte mir nur noch eine Spritekollision, die sagt, wenn spieler + power up = leben + 1


Code (glbasic) Select
if sprcoll (spieler,powerup) then anzahl der leben + 1Hatte auch funktioniert, nur habe ich gemerkt, das wenn das Power Up nach 2 sek. verschwindet,

Das power Up irgendwie nur unsichtbar ist.....also immer noch da.

Wenn sich der Spieler also an die Stelle des Power Ups begibt, welches schon verschwunden ist, werden die Leben immer noch hochgezählt.

Habt Ihr eine Idee, wo mein denkfehler liegt?

Bzw. kann ich das sprite auch wieder löschen?

------------------------------------------------------------------------------

Dann hätt ich da noch eine Frage zu den Timer (obiges Beispiel)

Wenn ich jetzt den Timer noch abhängig machen möchte,  von der Anzahl der Leben,

also:
Code (glbasic) Select
if Anzahl der Leben = 1
    timer = gettimerall()

      if timer > 2000
              if timer <40000
                sprite x,400,300
              endif
      endif
endif
showscreen
Dann ist mir schon irgendwie klar, das das nicht funktioniert, aufgrund der Zählzeit vom Start des Programms.

Mit dem einfachen Gettimer hatt es leider auch nicht so richtig funktioniert.

Also, wie setzte ich richtig einen Timer ?

Sorry für das etwas wirre geschwafel, musste mich leider etwas kurz fassen.

Hoffe Ihr habt da ne Idee

Saludos el capitan Fish ;)

Quentin

jau, das erste Problem ist klar, das Sprite ist ja immer noch vorhanden, auch wenn es nicht angezeigt wird.

mit
Code (glbasic) Select
LOADSPRITE "", powerupwird das Sprite wieder freigegeben. Mal sehen, wie dann deine Kollisionsabfrage reagiert ...

superfish

Super, Danke Danke Danke

Also mit ""  lösche ich in diesem sinne wieder Sprites,richtig?

Und mit dem ",powerup" ist Die zugewiesene Zahl des Sprites gemeint?

Vielen Dank für die schnelle Antwort

Quentin

genau "powerup" ist die zugewiesene Spritenummer, aber ich weiß nicht genau, wie sich die Kollisionsabfrage dann verhält. Musst halt mal ausprobieren.

superfish

Alles klar, vielen Dank ;)

Kitty Hello

Moment! Warum machst Du keine IF abfrage, die das SPRCOLL nur ausführt, wenn das Powerup auch angezeigt wird.
Und jetzt kommt meine Befürchtung:
Meinst Du, dass man mit LOADSPRITE ein Bitmap läd und mit SPRITE dann positioniert? Dass man 2 gleiche Sprites mit LOADSPRITE 2x laden muss? Oder ist dir bewusst, dass SPRITE in wirklichkeit nur das Bitmap auf den Hintergrund klatscht?
Ganz ehrlich - wenn Du das missverstanden hast, dann reiß ich den SPRITE Befehl endgültig raus un benenne ihn BLIT oder IMAGE.

superfish

Ne ne, das ist mir schon klar, das Sprite das Image nur auf den backbuffer setzt.