---
---
Geändert von FF I Weißmagier (24.02.2008 um 19:11 Uhr)
ähm... 215-160=45...ja... welche rundungsregeln hast du da angewendet???
bei mir ist 215-160 immernoch 55...
also ich nehm mal an wen der wert des helden vorher 160 war
und nachher -50, ist/war der wert der gegners 210...
du hast nur falsch abgezogen, wenn du auf 50 kommen willst...
denn 160-210=-50
ist klar dass der held getroffen wird, da du ja nur fragst ob der
errechnete wert kleiner als 30 ist, und -50<30...
und 210-160=50, und 50 wollen wir ja haben, da 50>30...
also speicher erst den wert des monsters in eine extravariable, oder
lass sie wo sie ist und zieh dann den wert des Helden ab...
üH
--"Der einzige Unterschied zwischen einem Verrückten und mir ist der, dass ich nicht verrückt bin." Salvador Dalí
üH sein KS <<>> üH sein Kit
also du solltest auf jeden Fall noch abfragen, ob die errechnete Vari kleiner 0 ist und wenn ja, dann rechnest du sie mal -1. Dann kannst du auch bei deiner einen Abfrage bleiben und brauchst nicht mit einbeziehen, ob die Vari negativ ist.
--"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"
Für Probleme dieser Art ist es immer gut, sich eine Anzeige zu scripten, die die Werte der jeweiligen Variablen die ganze Zeit über anzeigt. Es ist zwar umständlich, aber manchmal erkennt man dann ganz schnell, wo der Fehler liegt. Allerdings ist das Scripten der Anzeige natürlich mit einigem Aufwand verbunden, aber wenn du erstmal eine hast, kannst du sie später eventuell auch für andere Probleme verwenden.
-edit-
(Du könntest auch F9 drücken, um die Werte der Variablen zu überprüfen)
die differenz zwischen 160 und -50 beträgt 210, was sicher nicht zufällig der x wert des gegners ist.Zitat von FF I Weißmagier
wenn bei mir solch ein fehler auftritt, dann liegt es meistens daran, dass ich mit den falschen variablen operiere. check erstmal gründlich, ob deine berechnungen die richtigen variablen verwenden.
ehrlich gesagt versteh ich den gedanken hinter diesem skript nicht, da es nur ein auschschnitt daraus zu sein scheint.
kannst du nicht das skript posten, wie du es im maker selber gemacht hast?
was ich jetzt schon sagen kann:
ich würde nicht zuerst fragen, wer auf welcher seite steht. setze die werte des helden immer als mittelpunkt, von denen du die werte des gegners abziehst. wenn der gegner links steht, ist der verbliebene wert positiv, wenn sie negativ ist, also minus, dann steht er rechts.
bsp:
monster 10x, held 20x
20x - [10x] = 10x
da 10x positiv ist, steht der gegner links.
monster 20x, held 10x
10x - [20x] = -10x
-10x ist negativ, also das gegenteil von oben, ergo: gegner rechts.
um dann einen bereich zu erzeugen, also die "kollisions-zone", musst du den wert mit zwei variablen abfragen. mal angenommen der radius ist 30 (also vom held aus in jede richtung 30, ein durchmesser von 60), dann fragst du, ob der wert grösser als -30 UND kleiner als 30 ist.
erst wenn diese beiden forks zutreffen, findet das weitere kollisons-prozedere statt.
aber das ist nur eine möglichkeit von vielen.
poste erstmal das skript, dann kann ich dir auch helfen.![]()
Geändert von Blackadder (30.04.2005 um 23:28 Uhr)
also so wie du das beschreibst kann es eigentlich nicht gehen, da dann nur eine Kollision stattfindet, wenn die beiden Pictures auch die gleiche y Koordinate haben...
Naja siehe das was ich oben geschrieben hab. Außerdem lässt sich mit dem Maker schwerlich ein "radius" d.h. ein Kreis als Kollisionsfeld berechnen.Zitat
Du könntest allerdings den x und den y Wert des Gegners berechnen, dann die Differenz zum Hero nehmen und wenn´etwas negatives rauskommt mal -1 rechnen. Jetzt müsstest du den Unterschied der und der y Koordinate kennen. Dann ergibt sich folgende Formel:
Pytaghoras wir danken dir...
du solltest dann mit dem Taschenrechner ausrechnen wie groß die Entfernung sein darf (in deinem Fall 900). Aaaalso fragst du dann ab, ob Entfernung kleiner/= 900 ist und fertig.
Nochmal alles im Überblick:
Hoffe du kannst es verwenden.
greetz Beril
--"Unverständlichkeit ist kein Zeichen für tiefgehende Gedanken"