Walk to Koordinaten-nutzen ohne sie zu kennen
-
- Frischling
- Beiträge: 4
- Registriert: 23.01.2010, 19:06
Walk to Koordinaten-nutzen ohne sie zu kennen
Ich hab folgendes Problem: Ich bin bei der entwicklung eines Moduls, dass die geschwindigkeit des Spielers auch während dem laufen und in allen Situationen verändern kann. Nun meine Frage: Gibt es in AGS eine Möglichkeit, die Koordinaten festzustellen, zu denen sich der Spieler hinbewegt, bevor er am Ziel angekommen ist?(Da ohne diese Möglichkeit mein Modul nicht mit dem Tapping mode des Keyboard_movement_scripts, so wie der Walk/Move funktion(bei z.B. player.Walk(50, 30, eNoBlock)) nicht kompatibel ist, ist mir das doch ziemlich wichtig...)
-
- Komplettlösungsnutzer
- Beiträge: 23
- Registriert: 28.11.2009, 08:34
Re: Walk to Koordinaten-nutzen ohne sie zu kennen
Hi,
auch wenn Khris mit Sicherheit der bessere Coach ist:
Würde nicht sowas gehen?
auch wenn Khris mit Sicherheit der bessere Coach ist:
Würde nicht sowas gehen?
Code: Alles auswählen
//Globalscript
// Die Variablen walkx und y hast du idealerweise vorher global erstellt
function on_mouse_click(MouseButton button)
{
if (Mouse.Mode==eModeWalkto)
{
walkx = mouse.x;
walky = mouse.y;
}
// falls diese Funktion das echte Event verhindert, also nichts mehr geht,
// die Folgende Zeile einfach unkommentieren
// ProcessClick(mouse.x, mouse.y, Mouse.Mode);
}
-
- Frischling
- Beiträge: 4
- Registriert: 23.01.2010, 19:06
Re: Walk to Koordinaten-nutzen ohne sie zu kennen
Das Problem liegt ein wenig tiefer:
1. Wenn du miten im Spiel (nicht mit maus oder tastatur) zu bestimmten Koordinaten gehst, und gleichtzietig mein Modul benutzt(also während du läufst)(und du im eNoBlock-modus läufst) wird der Spieler umdrehen oder stehen bleiben, nicht zu den Zielkoordinaten gehen, oder nicht bei den Ziehlkoordinaten stehen bleiben
2. Wenn du mit der Maus auf eine Stelle klickst und während dem laufen mit der Tastatur die Richtung änderst(mit dem Tap-modus, also nur ein kurzer Tastendruck) wird er beim nächsten ausführen des Scripts zu der stelle laufen, auf die fu zuletzt geklickt hast. (wenn du länger als ~0.5 sek eine Teste drückst wird der Bug aufgehoben, im Tapping mode drückt man aber normaler weise nicht so lange die Taste. Wenn ich die Zeit aber herab setzte, kannst du den Nitro-Modus nicht mehr aktivieren, ohen das der spieler stehen bleibt)
Davon abgesehen funktioniert deine lösung nur bei nicht scrolenden Räumen, da du vergessen hast, den Viewport dazu zu zählen(auser dies macht man dann später im Modul, aber darum gehts ja nich)
1. Wenn du miten im Spiel (nicht mit maus oder tastatur) zu bestimmten Koordinaten gehst, und gleichtzietig mein Modul benutzt(also während du läufst)(und du im eNoBlock-modus läufst) wird der Spieler umdrehen oder stehen bleiben, nicht zu den Zielkoordinaten gehen, oder nicht bei den Ziehlkoordinaten stehen bleiben
2. Wenn du mit der Maus auf eine Stelle klickst und während dem laufen mit der Tastatur die Richtung änderst(mit dem Tap-modus, also nur ein kurzer Tastendruck) wird er beim nächsten ausführen des Scripts zu der stelle laufen, auf die fu zuletzt geklickt hast. (wenn du länger als ~0.5 sek eine Teste drückst wird der Bug aufgehoben, im Tapping mode drückt man aber normaler weise nicht so lange die Taste. Wenn ich die Zeit aber herab setzte, kannst du den Nitro-Modus nicht mehr aktivieren, ohen das der spieler stehen bleibt)
Davon abgesehen funktioniert deine lösung nur bei nicht scrolenden Räumen, da du vergessen hast, den Viewport dazu zu zählen(auser dies macht man dann später im Modul, aber darum gehts ja nich)
-
- Komplettlösungsnutzer
- Beiträge: 23
- Registriert: 28.11.2009, 08:34
Re: Walk to Koordinaten-nutzen ohne sie zu kennen
Hmm.. irgendwie werd' ich aus deinen Ausführungen nicht so ganz schlau.
Du klickst mit der Maus irgendwo hin und mitten im Fahren drückst du ne Taste, bespielsweise "rechte Pfeiltaste". Damit würde dein nitrogetriebenes etwas(?) nun nur noch die Richtung kennen, aber nicht das Ende des Weges.
Willst du jetzt errechnen, wie weit dein Auto maximal nach rechts fahren kann? Oder wie oder was?
Du klickst mit der Maus irgendwo hin und mitten im Fahren drückst du ne Taste, bespielsweise "rechte Pfeiltaste". Damit würde dein nitrogetriebenes etwas(?) nun nur noch die Richtung kennen, aber nicht das Ende des Weges.
Willst du jetzt errechnen, wie weit dein Auto maximal nach rechts fahren kann? Oder wie oder was?
-
- Frischling
- Beiträge: 4
- Registriert: 23.01.2010, 19:06
Re: Walk to Koordinaten-nutzen ohne sie zu kennen
Nein, nicht ganz. Also: Wenn z.B. der Spieler auf 30,10 steht und du klickst mit der Maus auf 50,30. Der Spielercharacter bewegt sich dort hin, und während der Bewegung änderst du z.B. mit der rechten Pfeiltaste die Richtung, in der der Spieler läuft. Nun läuft aber der Spieler auf eine Region mit einer meiner Funktionen( normalerweise LangsamerOn). In diesem Moment, also wenn die Funktion ausgeführt wird, läuft er nichtmehr nach rechts, sondern dreht um und läuft zu den Koordinaten, auf die du geklickt hast (hier: 50,30).
Ich will also prüfen lassen, ob die Zielkoordinaten, zu denen der Spieler läuft, immernoch die sind, auf die man geklickt hat. Sollte dies nicht so sein, wird im Script praktisch ein Hebel umgelegt(diese Programmierung hab ich bereits), so dass der Spieler die Richtung, in die er läuft beibehält. Problem dabei ist, dass ich nicht einfach schauen kann, in welche Richtung der Spieler läuft, da er mit der normalen Walk-funktion ja auch automatisch um gegenstände herum läuft, was seine Laufrichtung ja verändert.
Ich hoffe, ich konnte es so erklären, dass man es jetzt verstehen kann...
Ich will also prüfen lassen, ob die Zielkoordinaten, zu denen der Spieler läuft, immernoch die sind, auf die man geklickt hat. Sollte dies nicht so sein, wird im Script praktisch ein Hebel umgelegt(diese Programmierung hab ich bereits), so dass der Spieler die Richtung, in die er läuft beibehält. Problem dabei ist, dass ich nicht einfach schauen kann, in welche Richtung der Spieler läuft, da er mit der normalen Walk-funktion ja auch automatisch um gegenstände herum läuft, was seine Laufrichtung ja verändert.
Ich hoffe, ich konnte es so erklären, dass man es jetzt verstehen kann...