Du brauchst nur einmal X und Y. Wenn man rautenartig schlagen soll (auf alle Felder, die der Held mit zwei Schritten erreichen kann), prüf einfach, ob die Summe der Differenzen der Positionen einen bestimmten Wert nicht überschreitet (DiffX = HeroX - MonsterX, wenn negativ, mit -1 malnehmen, DiffY analaog, DiffX += DiffY, fork (DiffX < ...) {Treffer})
dasselbe funzt auch mit Scene-Werten, die ich für Treffer Koordinaten vorziehe weil sie wesentlich genauer sind