PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ersertzen von Bewegung



Hypnotik TaixXx
18.01.2009, 15:28
Hallo!:)

Hätte da mal eine kleine Frage:

Ich will schaffen, dass mehrere Figuren von A nach B gehen.
Da die Strecke lang ist und ein simples Move Event umständlcih und zu unflexibel ist, wollte ich hier nachfragen.:)

Gibt es andere Möglichkeiten, mehrere Events über eine weite Strecke zu bewegen ohne dabei jeden Schritt mit einem Move Event zu steuern?
Das alles soll nicht kompliziert werden, also keine Ki oder ähnliches.;)


Ein Denkansatz meinerseits:
Ist es irgendwie machbar, den Helden durch eine andere Figur zu ersetzen, die man dann auch steuert?

Den Helden würde ich dann beim Ziel positionieren, und die anderen Events, die die Strecke begehen sollen, würde ich auf "Step toward Hero" einstellen.
Smoit würden sie die Strecke gehen.
Ist sowas möglich?


Wenn nicht, gibts es andere Möglichkeiten?
Das wäre wirklich wichtig.

Mfg, Hyp

DNKpp
18.01.2009, 15:35
Dein Lösungsvorschlag würde zwar funktionieren, ist aber suboptimal.
Erstens würde die ganze Zeit die Bildschirmposition zum Helden teleportiert, desweiteren ist das auch nicht wirklich 100% effektiv, weil die Events nur schwer um Hindernisse finden.
Sowas was du vorhast nennt sich Pathfinding und ist äußerst komplex.

Mr.Funkymaus
18.01.2009, 15:58
Hallo!:)

Hätte da mal eine kleine Frage:

Ich will schaffen, dass mehrere Figuren von A nach B gehen.
Da die Strecke lang ist und ein simples Move Event umständlcih und zu unflexibel ist, wollte ich hier nachfragen.:)

Ein Denkansatz meinerseits:
Ist es irgendwie machbar, den Helden durch eine andere Figur zu ersetzen, die man dann auch steuert?

Den Helden würde ich dann beim Ziel positionieren, und die anderen Events, die die Strecke begehen sollen, würde ich auf "Step toward Hero" einstellen.
Smoit würden sie die Strecke gehen.
Ist sowas möglich?


1. Einmal gemacht, hasses hinter dir :o

2. Change Hero?!

3. Probieren.

Mivey
18.01.2009, 15:58
Also Pathfinding zu benutzen geht nur wenn du den Algorythmus ( A* heißt der) mit dem Maker umsetzt ( lachsen hat das gemacht) entweder du lernst damit umzugehen oder du machst simple move events. Im nachhinein ist das wohl weniger arbeit, es sei denn es wären aber tausende events die du bewegen willst^^

noch ein niemand
26.01.2009, 16:55
Das mit den bewegenden Events hab ich nicht ganz verstanden
aber mit dem Helden kann ich dir Helfen.
Ich nehm an du willst ein Event als Held benutzen.
Jetzt kommt es darauf an wie du steuern willst.Willst du das
gleiche Moving wie Normal haben dann einfach Keys abfragen.


Key Input Proc: [1:Bewegen]
<>Cond Branch Var[1:Bewegen] is equal to 1
<>Move Event, (Zu bewegendes Event) , Move Down
<>Else Handler
<>Cond Branch Var[1:Bewegen] is equal to 2
<>Move Event, (Zu bewegendes Event) , Move Left
<>Else Handler
<>Cond Branch Var[1:Bewegen] is equal to 3
<>Move Event, (Zu bewegendes Event) , Move Right
<>Else Handler
<>Cond Branch Var[1:Bewegen] is equal to 4
<>Move Event, (Zu bewegendes Event) , Move Up



Den Bildschirm dann aber auch noch dazu zu bringen sich mitzubewegen
ist kompliziert!
Wir nehmen jetzt nur das Move Down sonst wird das hier zu lang!


<>Variable Oper: [1:x] Set, This Event X Coord.
<>Variable Oper: [2:y] Set, This Event Y Coord.
<>Key Input Proc: [1:Bewegen]
<>Cond Branch Var[1:Bewegen] is equal to 1
<>Move Event, (Zu bewegendes Event) , Move Down
<>Variable Oper: [3:x2] Set, This Event X Coord.
<>Variable Oper: [4:y2] Set, This Event Y Coord.
<>Branch if Var [4:y2] is V[2] Not
<>Variable Oper [2:y] -1
<>Variable Oper [5:panscreenchangey] - 1
<>Branch if Switch [7:screenonheroevent] is ON
<>Pan Screen: Up 1 Tiles, Speed 3
End:

#Die Bewegung nach unten wurde jetzt mit einem - in der Variable
,,panscreenchangey" gespeichert.Jetzt bringen wir das Event dazu
den Bildschirm anhand der Variable auf das Event zu bewegen.
Jetzt wirds leider mühsam!#


Beispiel:Das Event stand vorher auf X=24 Y=12.
Durch das gehen nach unten hat das Event nun folgende Position X=24 Y=11
Der Bildschirm war auf diese Koordinaten gerichtet da
panscreenchangex = 24 und panscreenchangey = 12.
Jetzt heißt es panscreenchangex = 24 und panscreenchangey = 11.

Also müssen wir jetzt jede Position auf der Map abfragen:



Ganz oben, bei der ersten Position steht:

<>Branch if Switch [7:screenonheroevent] is OFF
<>Switch Operation [7:screenonheroevent] ON
<>Branch if Var [6:panscreenchangex] is 1
<>Pan Screen: Right 1 Tiles, Speed 3
#nach oben sinkt der Überprüfungswert von panscreenchangey#
<>Branch if Var [5:panscreenchangey] is 6
<>Pan Screen: Up 6 Tiles, Speed 3
: End
#Speed 3 ist der einzige Wert bei dem der Bildschirm bei dauernder Bewegung nicht ruckelt#
<>Branch if Var [5:panscreenchangey] is 7
<>Pan Screen: Up 7 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 8
<>Pan Screen: Up 8 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 9
<>Pan Screen: Up 9 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 10
<>Pan Screen: Up 10 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 11 #Hier ist unser Wert#
<>Pan Screen: Up 11 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 12
<>Pan Screen: Up 12 Tiles, Speed 3
: End
<>Branch if Var [5:panscreenchangey] is 13
<>Pan Screen: Up 13 Tiles, Speed 3
: End
#nach unten steigt Überprüfungswert von panscreenchangey#


Der Bildschirm bewegt sich damit auf das Event.
Jetzt wurde das Event erfasst.Der oben fett blau gedruckte Abschnitt kommt
jetzt ins Spiel.Er bewegt den Bildschirm mit dem Helden.


Falls das ein bisschen zu komplitziert war kann ich auch gerne noch ein
Demo-Event-Projekt hochladen.

Jetzt aber genug mit diesem ewig langen Post.