Ihr verstehts irgendwie alle falsch ^^
Ich möchte nicht die kollisionsabfrage eines Events, sondern eines Pictures bzw eine gute möglichkeit ein Event direkt auf das Ziel zuzubewegen. Wenn du verstehst ^^
Ihr verstehts irgendwie alle falsch ^^
Ich möchte nicht die kollisionsabfrage eines Events, sondern eines Pictures bzw eine gute möglichkeit ein Event direkt auf das Ziel zuzubewegen. Wenn du verstehst ^^
--"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"
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 ^^
Danke für die Super erklärung.
Allerdings habe ich bedenken bei Nummer 1 ^^ wie soll ich denn die koords eines Pics Speichern?
--"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"
Du bastelst einen Parallel Process der die Koords speichert und jeden Tick das Bild anzeigt auf den passenden Koords, Move Event lässt du ganz weg
HA!Zitat von Dhan
Sogar mit nachkommastelle:
Rechtsklick -> Ziel speichern unter
Ja, mir war langweilig!
(auf die Idee bin ich aber selber gekommen.... die is mir glaube ich während nem Cooper-Test gekommen...)
--Ich hatte mal eine Signatur, aber dann bin ich volljährig geworden und hätte Steuern zahlen müssen.