Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Mcrip28
Tutorial Reader
Posts: 80
Joined: 17 Feb 2016, 22:08

Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83376Post Mcrip28
26 Aug 2016, 18:59

Hallo ihr Vagabunden,

Rufe im startscript eine funktion auf, die sich am ende bei positiver prüfung erneut aufruft.
Ohne ein "wait" befehl mit mindestens dem wert "0.01" direkt zu beginn der funktion, stürzt die anwendung ab. (aktueller patch)

Bei 2.9.6 hatte ich selbige funktion, dort war ein mindestwert von 0.05 nötig, damit das programm nicht unterbrochen wird. Mit realtime hatte es dort auch nicht funktioniert.

Direkt nach dem erneuten aufrufen der funktion INNERHALB der funktion steht ebenfalls ein break(), stürzt trotzdem ohne wait(0.01) ab.

Funktion steht NICHT auf infinit.

Wo kann der Fehler liegen? :mmh:

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83377Post japanhonk
26 Aug 2016, 19:17

Hi,

ich muss jetzt wirklich mal raten.

Wenn die Funktion sich selbst wieder aufruft, snd möglicherweise einige Registerwerte noch nicht aktualisiert. Normalerweise
wird eine Funktion , z.B. im Infinitmodus 60 mal / sek aufgerufen und beginnt dann von Vorne.

Hier scheint das vielleicht zeitlich nicht hinzuhauen und die Funktion will sich zu früh neu starten, ist aber vom zeitlichen Ablauf noch gar nicht dran und der erneute Aufruf geht ins Leere, weil die Register nicht neu befüllt wurden.


HAst Du schonmal probiert, die Funktion loopend mitlaufen zu lassen ? Dann sollte das zeitlich ja wieder passen und demzufolge ja funktionieren.

Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83378Post Zimond
27 Aug 2016, 20:29

nun, das ist auch richtig so... wenn du eine Funktion sich selber aufrufen läßt ohne das diese irgendwann mal anhält (mittels wait) dann hast du eine Endlosschleife erstellt. Deine Überprüfung ergibt hier wohl niemals "true". Kann sie eigentlich auch nicht weil du die Funktion ja nie verläßt damit sich etwas verändern könnte.

Was machst du denn mit der Funktion?

Besser wäre es die Funktion auf infinit zu stellen und bei "true" dann zu stoppen.
Image

Mcrip28
Tutorial Reader
Posts: 80
Joined: 17 Feb 2016, 22:08

Re: Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83388Post Mcrip28
31 Aug 2016, 21:22

Danke für die antwort, habe nicht direkt geantwortet

Folgender Ablauf vereinfacht:

1. Die funtion wird im startskript initialisiert (per "function") und mit x=1

2. (in der funktion) setze x+1

2.1 wenn x kleiner 100 dann sage "hallo welt" und wiederhole 2. (funktion)

2.2 wenn x 'ungleich kleiner 100 dann mache nichts

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

Führt man dies aus, stürzt das Programm ab.
Setzt man jedoch ein "wait(0.01)" am anfang von 2. ein, läuft es.

In 2.9.6. War wie gesagt nur ein mindestwert von 0.05 möglich, alles darunter oder weglassen des waitbefehls führte zum absturz der anwendung.

_____________
McRiP28

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83390Post japanhonk
31 Aug 2016, 21:52

Ich schlage vor, diese Berechnung ins Mainskript zu packen. Das erfordert keinen separaten Aufruf und läift - genau, woe die Zeiteinstellung immer wieder ganz durch und beginnt von Neuem. Nur ein break() darfst Du da nicht setzen - was - durch die Bedingung - ja auch nicht nötig ist.

Ein Break() im Mainskript legt Dir alles sofort lahm.

Alternativ rufst Du die Funktion vom Mainskript her auf. Aber Du hast eben immer 1/60 Sek Verzögerung drin - wobei
es da ja wohl kein Problem geben sollte - dürfte ja wohl schnell genug sein....


Gruß

Manni
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Re: Repeat-Funktion läuft nur mit mind. "wait(0.01)"?

Post: # 83392Post Zimond
31 Aug 2016, 22:24

du willst also etwas einfach nur 100 mal wiederholt haben?

function (deinefunktion ; 100)
Image

Post Reply