Wozu ein Event?


Und Kollisionsabfrage eines Pictures, genau das meinte ich


hmmm ich hab aber vergessen, die Szene-Koordinatenumrechnung für größere Maps zu sagen ok...

Nummer 1: Gespeichert werden von dem Picture die Koordinaten auf der Karte, allerdings Pixelweise sowie der Vektor
Nummer 2: Die Koordinaten können praktischerweise gleich auf den Hero gesetzt werden bzw auf seine Mapkoordinaten mal 16 minus 8
Nummer 3: Vektoren sind unabhängig von der Fortgeschrittenheit eines Koordinatensystems, d.h. für sie kann man die Scene-Werte nehmen.
Ein Vektor sieht dann so aus dass du einfach die Scene Werte des Helden und des Ziels speicherst, was schonmal die Richtung des Vektors angibt
zur Länge komme ich nacher
Nummer 4: Die Scene Werte des Pictures rechnest du für jeden "Schritt" des Pics auf seinem Vektor so aus:
Pixelwert des Helden bestimmen (Heldenkoords * 16 - 8), davon den gespeicherten Pixelwert des Pics abziehen, anschließend den Scene-Wert des Heldens bestimmen und die Pixelwertdifferenz von selbigem Abziehen, schon hast du den Scene-Wert des Pics.
Nummer 5: Bewegung
Die Bewegung solltest du in winzigen Ticks machen, d.h. jeden Tick wird das Bild auf eine neue Position gesetzt die jeweils um den Vektor verschoben ist.
Ein Vektor sieht ungefähr so aus: (5|2), d.h. 5 Pixel in Richtung X und 2 in Richtung Y
das Problem bei der Ausrechnung des Vektors ist die Länge, die muss nämlich auf einen bestimmten Wert (seine Geschwindigkeit durch die Zeitdauer eines Ticks) gebracht werden.
Das sieht dann so aus: Vektor0 = ursprünglich bestimmter Vektor mit falscher länge, Vektor1 = Vektor mit Richtiger Länge, x0/y0 = X/Y-Wert von Vektor0
Vektor 1 = Vektor0 * Geschwindigkeit des Projektils / Zeit eines Ticks / |Vektor0|

|Vektor0| = sqrt(x0²+y0²)
soa, hier ist das Problem, sqrt, also Squareroot/Wurzel.
Wurzeln kann man im Maker so ermitteln, dass man einfach prüft, welche Zahl mal sich selbst der Zahl unter der Wurzel am nächsten ist

und da sind wir schon bei einem weiteren Problem, sowas würde Kommazahlen ausspucken. Folglich musst du folgendes machen:
Die gespeicherten Werte müssen um einen bestimmten Faktor (Zehnerfaktor) erhöht sein, z.B. 100. Wenn das Pic angezeigt wird, wird der gespeicherte Wert durch diesen Faktor geteilt.

Soa, ich hoffe mal, du hast verstanden, was ich geschrieben habe ^^