minicrispie: Menschen bewegen

Hallo,

Gibt es eine Möglichkeit, ein JavaScript anzuhalten, ohne alert()
Ich brauch es für einen Algorithmus, der mir den Weg zwischen zwei Punkten "findet" ... Der Punkt sollte sich also (z.b.) so bewegen:

S---
   |
   ----Z

Vom Start(S) sollte er Schritte bis zum Ziel(Z) machen.
Momentan macht der Punkt aber einen Sprung:

S

Z

Hier der Link zu dem Skript
Bedienung:
Linksklick: Auswählen
Rechtsklick: Position setzen

Zur Zeit funktioniert es nur im FF...

Gibt es da eine Möglichkeit, den "Menschen laufen zu lassen" ?

MfG. Christoph Ludwig

--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
Go to this
  1. Mahlzeit,

    Gibt es eine Möglichkeit, ein JavaScript anzuhalten, ohne alert()

    Wozu brauchst du das wie? Der Rücksprung aus einer Funktion klappt mit return. Oder willst du das Script stoppen und dann wieder weiterlaufen lassen?

    1. Hallo,

      Wozu brauchst du das wie?

      Für ein Spiel ... und da sollen sich die Menschen bewegen.

      Der Rücksprung aus einer Funktion klappt mit return. Oder willst du das Script stoppen und dann wieder weiterlaufen lassen?

      ich such nach einer möglichkeit, ähnlich wie in C die funktion sleep()

      MfG. Christoph Ludwig

      --
      Wo die Sprache aufhört, fängt die Musik an...
      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
      Go to this
      1. Hello,

        ich such nach einer möglichkeit, ähnlich wie in C die funktion sleep()

        Wie wäre es da mit setTimeout()?

        Liebe Grüße aus Syburg bei Dortmund

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
      2. Mahlzeit,

        ich such nach einer möglichkeit, ähnlich wie in C die funktion sleep()

        Du willst, dass der Browser solange blockiert wird, bis das sleep() abgelaufen ist? Genau das macht sleep() mit dem Thread, in dem es läuft.

        In dem Fall dürfte der Tipp von Tom das Richtige für sich sein.

        1. Hallo,

          ...

          ich hatte das Problem doch schon gelöst :)

          MfG. Christoph Ludwig

          --
          Wo die Sprache aufhört, fängt die Musik an...
          Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
          Go to this
          1. Mahlzeit,

            ich hatte das Problem doch schon gelöst :)

            Ich lese von unten nach oben (Standardansicht), daher hab ich erst ne Antwort geschrieben und dann deine Lösung gelesen ;)

  2. Starte einen Funktionsaufruf an der richtigen Position deines Scriptes.
    Diese Funktion ( z.b. stopNow() ) ruft sich selber ( setTimeout() ) nach x ms auf. Du kannst einen counter einbauen, der nach X Durchläufen die Funktion mit return verlässt. Somit hättest du deine eigene "Sleep"-Funktion.

    1. Hallo,

      Starte einen Funktionsaufruf an der richtigen Position deines Scriptes.
      Diese Funktion ( z.b. stopNow() ) ruft sich selber ( setTimeout() ) nach x ms auf. Du kannst einen counter einbauen, der nach X Durchläufen die Funktion mit return verlässt. Somit hättest du deine eigene "Sleep"-Funktion.

      und genauso hab ichs am ende gemacht ... meine zusatzfunktion:

      function Laufe(ID, zx, zy)  
        {  
         if(FindeWeg(ID, zx, zy) == -1)  
         {  
          setTimeout("Laufe("+ID+", "+zx+", "+zy+");", 250);  
         }  
        }
      

      danke!

      MfG. Christoph Ludwig

      --
      Wo die Sprache aufhört, fängt die Musik an...
      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
      Go to this
  3. Zur Zeit funktioniert es nur im FF...

    auch nicht so ganz

    wenn du eine konstellation hast wie diese hier, versagt die wegfindung in einer endlosschleife:

    X mauer
    O pakku man
    a ziel

    X
     XOX
     XXX
      a

    du müsstest den weg protokollieren, wenn er wieder an einer stelle vorbei kommt, wo er schon war, merkt er sich diese und kommt nur so oft vorbei, wie es freie angrenznde felder/wege gibt, die er noch ausprobieren könnte

    1. Hallo,

      Zur Zeit funktioniert es nur im FF...
      auch nicht so ganz

      das hab ich nur gesagt, weil ich keine Methoden für den IE verwende(Mausposition z.b.)

      wenn du eine konstellation hast wie diese hier, versagt die wegfindung in einer endlosschleife:

      X mauer
      O pakku man
      a ziel

      X
      XOX
      XXX
        a

      du müsstest den weg protokollieren, wenn er wieder an einer stelle vorbei kommt, wo er schon war, merkt er sich diese und kommt nur so oft vorbei, wie es freie angrenznde felder/wege gibt, die er noch ausprobieren könnte

      ja, nur ich habe hier den uninformierten A*-Algorithmus verwendet.
      bis ich das Spiel fertig habe bleibt es auch ein uninformierter, da ich mich erst auf die anderen wichtigen sachen konzentriere(denn nur in seltenen fällen wird eine Endlosschleife ausgeführt.)

      MfG. Christoph Ludwig

      --
      Wo die Sprache aufhört, fängt die Musik an...
      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
      Go to this