Seite 1 von 2

Person verstecken

Verfasst: 16.04.2005 23:41
von zigapeda
Hallo habe eine Procedure geschrieben die eine Person verstecken soll aber dann fängt das Bild immer an zu flimmern und auserdem ist es nicht flüssig wie sie sich bewegt.

Code: Alles auswählen

Procedure hidepers(pers.l)
If pers > 3 : pers=Random(3) : EndIf
movetime = ElapsedMilliseconds()
Repeat
If movetime <= ElapsedMilliseconds()
  movetime = elapsedMilliseconds() + 25
  Select pers
    Case 0
      If perspos(0,0) < 120
        perspos(0,0) = perspos(0,0) + 1
        perspos(0,1) = perspos(0,1) - 1
      Else
        versteckt = 1
      EndIf
  EndSelect
EndIf

Until versteckt = 1
versteckt = 0
EndProcedure
Ich starte Diese Procedure als Thread mit dem wert 0. Könnt ihr mir helfen?

Verfasst: 17.04.2005 03:55
von Kaeru Gaman
kann ich mir leider im moment gornix drunter vorstellen...

beschreib mal bitte präziser, was die proc tut.

Verfasst: 17.04.2005 13:08
von zigapeda
Es gibt ein sprite das eine Person darstellt. Das sprite hat die koordinaten perspos(0,0) und perspos(0,1) (x und y). Jetzt soll die person nach rechtsoben verschoben werden also sozusagen laufen. Wenn sie dann die xkoordinaten 120 erreicht wird die Procedur beendet also auch der Thread. Meine frage war jetzt warum das bild anfängt zu flimmern auch nachdem sich die Procedure beendet hat und der Sprite nich flüssig über das bild bewegt wird

Verfasst: 17.04.2005 13:27
von Zaphod
aus dem codefragment geht nicht hervor, warum es flimmern könnte.

Verfasst: 17.04.2005 13:35
von zigapeda
Ich weiß ich kann auch nix finden. Aber es kann nur daran liegen weil ich nur die Procedur aufrufe und es dann zum Flimmern anfängt

Verfasst: 18.04.2005 22:04
von zigapeda
hat keiner eine ahnung? Vieleicht hat jemand eine Andere Idee ein Sprite zu bewegen?

Verfasst: 18.04.2005 22:06
von diGGa
vielleicht liegts an der repeat schleife... nur ne idee, ohne anderen code kann man nix sagen ;)

Verfasst: 18.04.2005 22:08
von zigapeda
wie soll ich die repeatschleife weglassen? mit einem goto befehl ist es auch nicht besser

Verfasst: 18.04.2005 22:13
von diGGa
naja wenn mich nich alles irrt bleibt er in der schleife bis der wert 120 erreicht ist. und solange setzt er ja den rest des programms nicht fort oder

Verfasst: 18.04.2005 22:47
von zigapeda
nein ich starte die Prozedur als thread d.h. die Procedur und das Programm wird ausgeführt.