Das hier funzt ungefähr so:
Gegnerevent auf On touch Event Hero: Wenn der Held gerade im Angriff ist, wird der restliche Code hier drin ignoriert, ansonsten erleidet der Held Schaden
Ein PP auf der Map speichert beständig die Koords von Held und Monster und errechnet gleich die Distanz
Ein Common Event schaut nach, ob der Spieler Enter drückt, wenn ja, wird erst je nachs einer Blickrichtung eine Ani gemacht und anschließend wir Schaden gemacht, wenn die Abstände betimmte Werte haben.
Das Ding ist umständlich geschrieben, du musst praktisch alles, was mit Abständen zu tun hat, kopieren und mit neuen Varis wiederholen bäh
Ich empfehl dir folgendes:
Bestimme erstmal, wo der Schlag landet (also je nach Blickrichtung unterschiedlich) statt die Abstände. Dieses Ergebnis kannst du dann nämlich später für alle Gegner verwenden weil du einfach prüfen musst, ob sie dort sind, wo der Schlag eben landet, vielviel übersichtlicher und eleganter.
Das Ding hier is nur mühselig erweiterbar jedenfalls.
--
class Dog { //(...)
boolean getBuddha() { throw NullPointerException; } }
Spielt Hero-Chan!
Also irgendwie versteh nich nur die variante die im Skript ist..die anderen sind so doof -.-...da blick ich gar nimma durch...deshalb versteh ich nicht warum des umständlich ist xd
Also ich habe mir dein aks jetzt nicht angeguckt aber das problem ist klar ^^.
Also in dem gegner(event) hasst du versciedene var. und tabs (switches )
nun kopierst du den gegner und machst neue var. und tabs für den 2ten gegner falls du ein weiteres event benutzt kp wegen pistole oder so musst du dies auch nochmal erweitern um es auf den 2ten gegner anzupassen.
sollte es nicht gut genug erklärt sein poste mal deine events.(als pic ^^ )
und ich sage dir welche du erneuern bzw. bearbeiten musst.
am einfachsten du guckst dir deins mal an also alle var. und tabs.
und versuchst dir dein eigenes aks zu bauen stück für stück.
Das hier funzt ungefähr so:
Gegnerevent auf On touch Event Hero: Wenn der Held gerade im Angriff ist, wird der restliche Code hier drin ignoriert, ansonsten erleidet der Held Schaden
Ein PP auf der Map speichert beständig die Koords von Held und Monster und errechnet gleich die Distanz
Ein Common Event schaut nach, ob der Spieler Enter drückt, wenn ja, wird erst je nachs einer Blickrichtung eine Ani gemacht und anschließend wir Schaden gemacht, wenn die Abstände betimmte Werte haben.
Das Ding ist umständlich geschrieben, du musst praktisch alles, was mit Abständen zu tun hat, kopieren und mit neuen Varis wiederholen bäh
Ich empfehl dir folgendes:
Bestimme erstmal, wo der Schlag landet (also je nach Blickrichtung unterschiedlich) statt die Abstände. Dieses Ergebnis kannst du dann nämlich später für alle Gegner verwenden weil du einfach prüfen musst, ob sie dort sind, wo der Schlag eben landet, vielviel übersichtlicher und eleganter.
Das Ding hier is nur mühselig erweiterbar jedenfalls.
...
Du meinst also ich sollte für den Schlag die Koordinaten berechnen..also sowas wie
Das wäre ja dann wenn der Schlag nach Rechts vom Hero aus gehen würde oder? Aber wie könnte ich dann ausrechnen welchen Gegner es gerade getroffen hat? Wenn es z.B 4 Gegner sind...
Aaaalso:
Wie das Koordinatensystem des Makers funktioniert weißt du hoffentlich. Der Ursprung liegt oben links (0|0) (kannst ja einfach mal im Event-Layer den Cursor an verschiedene Stellen setzten und am unteren Rand des Maker-Fensters nachschauen, was da für Koordinaten stehen. Sollte alles recht leicht verständlich sein.).
Nun hast du den Helden und 4 Gegner. Für jeden davon gibt es 2 Variablen die die interessieren:
Für dein AKS brauchst du sie alle.
Da ich mir dein AKS Dingens nicht angeschaut habe, weiß ich nicht genau wie es dort geregelt ist, ich baue es jetzt einfach mal in ein PP CE (Parallel Process Common Event) ein.
Zu beginn die Abfrage ob der Held die Leertaste (bzw. Enter) gedrückt hat. Es soll ja nur ein Schlag ausgeführt werden, wenn der Spieler dies auch will.
Danach werden sofort alle Variablen eingelesen (dieser Part wird erst dann (und nur dann) ausgeführt, wenn der Spieler die Leertaste gedrückt hat):
(Mag sein das es etwas übertrieben ist, jedesmal alle Gegner mit aufzuführen, aber da es scheinbar zuvor damit Probleme gab, gehe ich lieber auf Nummer sicher )
Nun wollen wir feststellen ob einer der Gegner getroffen wurde. Dazu müssen wir uns das Koordinatensystem des Makers nochmal etwas genauer anschaun.
Sagen wir mal der Held steht auf dem Feld (12|8) und schaut nach rechts. Würde er nun zuschlagen würde der Schlag das Feld rechts neben ihm treffen. Würde dort nun ein Gegner stehen, hätte dieser (welcher ja nun getroffen werden sollte) die Koordinaten (13|8). Wie erreichen wir es also, dass wir mit einer einfachen Abfrage überprüfen können, ob der Held einen der Gegner trifft?
Indem wir nicht die Koordinaten des Helden, sondern die seines Schlages betrachten. Dieser ist ja (zumindest im Normalfall) direkt ein Feld vor ihm. D.h. konkret, dass wir die Koordinaten des Helden an seine Blickrichtung anpassen müssen. Diese Änderung ist leicht durch logisches Denken nachvollziehbar:
Wenn du es nicht sofort verstehst, geh nochmal in den Maker, such dir ein beliebiges Feld aus, schau unten auf die Koordinatenangaben und geh dann jeweils ein Feld in eine der 4 Richtungen und betrachte die Änderung der unten sichtbaren Werte .
Nun aber weiter im Code. So müsste das dann aussehen:
Nun haben wir herausgefunden wo der Schlag des Helden landen wird. Jetzt müssen wir nur noch nachschaun, ob sich einer der Gegner auf diesem Feld befindet. Sollte dem so sein, müssten die Koordinaten des Gegners, denen des Schlages genau entsprechen. Also so:
Damit ist die Sache mit den Gegnern erledigt.
Optional noch ein Beispielhafter
Nun nur noch zu den Gegnerevents. Hierbei kannst du natürlich den obigen Code auf die Gegner umdichten, jedoch geht es auch einfach mit "On Touch (Event / Hero)"-Events.
Gegner 1 | On Touch (Event / Hero) | No starting condition | Step towards Hero
<>Fork Switch "Gegnerangriff" = ON
<><>Show Battle Animation "Gegner XYZ Angriff" at [Hero]
<><>Change Variable "Held HP" - "Gegner 1 Schaden" //bzw: Change HP (Held 1), "Gegner 1 Schaden" dec. [posible Death]
<><>Change Switch "Gegnerangriff" -> OFF
<>End:
Zu guter Letzt noch das PP CE, welches den Gegnerangriff koordiniert:
<>Change Switch "Gegnerangriff" -> ON
<>Wait 0,1 secs
<>Change Switch "Gegnerangriff" -> OFF
<>Wait 1,0 secs
<>
Je nachdem wie schwierig es sein soll, musst du ein bisschen mit den beiden Waits spielen. Außerdem kannst du noch das "Change Switch "Gegneragriff" -> OFF" im Gegnerevent selbst weglassen um es nochmal ein bisschen schwerer zu machen.
So, ich glaube ich habe jetzt alles wichtige erwähnt. Falls noch Fragen sind, ... öhm ... ja ^^°. Dann stell sie
Ganz am Schluss nochmal optional der ganze Code des Helden - Gegner Angriffs PP CE:
<>Enter Password (5) [Wait until key hit]
<>
<>Change Variable "Held X", set [(Hero) X-Coord.]
<>Change Variable "Held Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 1 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 1 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 2 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 2 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 3 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 3 Y", set [(Hero) Y-Coord.]
<>Change Variable "Gegner 4 X", set [(Hero) X-Coord.]
<>Change Variable "Gegner 4 Y", set [(Hero) Y-Coord.]
<>
<>Fork Event [(Hero) Up-Face Dir.]
<><>Change Variable "Held Y" - 1
<>Else:
<>Fork Event [(Hero) Down-Face Dir.]
<><>Change Variable "Held Y" + 1
<>Else:
<>Fork Event [(Hero) Left-Face Dir.]
<><>Change Variable "Held X" - 1
<>Else:
<>Fork Event [(Hero) Rigth-Face Dir.]
<><>Change Variable "Held X" + 1
<>End:
<>
<>Fork Variable "Held X" = "Gegner 1 X"
<><>Fork Variable "Held Y" = "Gegner 1 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 2 X"
<><>Fork Variable "Held Y" = "Gegner 2 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 3 X"
<><>Fork Variable "Held Y" = "Gegner 3 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>Fork Variable "Held X" = "Gegner 4 X"
<><>Fork Variable "Held Y" = "Gegner 4 Y"
<><><>Deine Aktion wie der Gegner getroffen wird (BA und HP verlieren)
<><>End:
<>End:
<>
Wow Danke für die Erklärung...ich verstehe es sogar xD
Also werden die Koordinaten im PP berechnet so das ich se auf der Map nicht mehr brauche oder?..und ich könnte auch bestimmt mehr als 4 Gegner rein bringen ne?