Geschwindigkeit eines MC indirekt proportional zur Zeit erhöhen (MX2004)

Scorpion-Stinger

Erfahrenes Mitglied
Hallo,

und wieder einmal ein Problem meinerseits.

Folgendes zur Beschreibung:
Ich bin dabei, ein kleines Spiel â la "Superball" zu basteln. Nun habe ich folgendes Problem, ich möchte logischerweise (um die schwierigkeit zu erhöhen), nach einer gewissen Zeit, die Geschwindigkeit der "gegnerischen Kugel" zu erhöhen.
Bei 2 verschiedenen Geschwindigkeiten (per if-else-Abfrage) ist das auch kein Problem.
Nun möchte ich allerdings alle 30 Sekunden die Geschwindigkeit erhöhen, aber wie? :confused:

Zur Zeit, wird die Kugel, sobald die Geschwindigkeit erhöht wird, nicht mehr zum Ursprung zurückgesetzt.

Vielleicht könnte sich einer der Profis wie Datic, Basileus, etc. das mal anschauen, wäre echt Super.;)

EDIT: Das AS liegt auf der gegnerischen Kugel.


Im Voraus schon mal vielen Dank,

Scorpion-Stinger
 
Zuletzt bearbeitet:
Hi,

warum sparst Du Dir die ganzen Abfragen mit "if (laufzeit > 30000)" nicht, und setzt statt dessen so etwas ein:
PHP:
var stufe = int(laufzeit / 30000);
this._y += ballgeschwindigkeit * (stufe + 1);
Im Übrigen kannst Du Dich nicht darauf verlassen, dass this._y immer genau 590 ist - verwende dazu lieber so etwas:
PHP:
if (this._y >= 590) zuruecksetzen();

Gruß

P.S.: Übrigens: auch wenn "laufzeit" > 90000 ist, würden die anderen Bedingungen (>6000, >3000) immer zutreffen, sprich: alle Verzweigungen durchlaufen werden. Verwende lieber "else if", oder die von mir vorgeschlagene Variable "stufe" - die gibt Dir einen Integerwert von 0 - X zurück, den Du z.B. mit einer switch-Abfrage testen kannst.
.
 
Zuletzt bearbeitet:
Hi Scorpion-Stinger,

ich habe imom das gleiche Problem.
Schau dir mal "setInterval()" und den befehl "fps" an.
Bin dabei die per Interval die fps Rate zu erhöhen. Habs jedoch noch nicht richtig anwenden können.

Gruß
Aaron
 
@ Datic,

ich wusste doch, nach langer Zeit am Rechner wird man "Betriebsblind"!

Hätt ich auch selbst drauf kommen können. Ich danke dir wie immer sehr, hätte sonst wahrscheinlich noch ewig gebastelt.

Zu der Anweisung

PHP:
if (this._y >= 590) zuruecksetzen();

Das ist ja halb so wild, es ist ja nur wichtig, dass wenn die Kugel außerhalb des sichtbaren Bereichs ist wieder nach oben gesetzt wird.


@ NetPerformance,

auch an dich herzlichen Dank, ich werde mir das sicherlich mal ansehen, man lernt ja nie aus.


Grüße,

Scorpion-Stinger
 
Hi,

Soweit, so gut. Allerdings habe ich noch ein kleines "Problemchen".
Gibt es die Möglichkeit die getTimer() -Funktion zurückzusetzen?

Ich habe in das oben beschriebene Spiel noch einen Button für den Neustart gesetzt, allerdings zählt die Uhr einfach immer weiter, nachdem sie beim zusammenstoß kurz angehalten wird.

Wäre echt nett, wenn mir jemand helfen könnte.


Kann auch noch die aktuelle Datei hochladen, ist aber zur Zeit etwas durcheinander :-(.
Müsste ich noch sortieren.
 
Hi,

speichere einfach beim Neustart den aktuellen Timer und ziehe diesen Wert immer von dem aktuellen Timer ab:
PHP:
function neustart() {
    _root.stime = getTimer();
}

// und dann eben so:
laufzeit = getTimer() - _root.stime;

Gruß
.
 
Hi,

funktioniert leider nicht. Die Idee hatte ich auch schon, dann schreibt er in das Feld, in dem die Zeit mitläuft immer
Code:
NaN:NaN:NaN
.

Keine Ahnung warum.

Trotzdem erstmal ein großes DANKE für die schnelle Hilfe.
 
@ Datic,

Sorry, war mein Fehler, hab vergessen die Funktion auch aufzurufen.

Ich Danke dir für die schnelle Hilfe. Ich hoffe, dass ich mal euer Niveau erreichen kann, Ihr seid echt der Wahnsinn.
 
Zurück