ich glaube nicht, dass mir hier sehr viele helfen können (ausser Cali, der was zum Knobeln sucht

Sub Kollision(X As Double, Y As Double, Richtung As String)
Select Case Richtung
Case "Rechts": If Objekt(X, Y).Bild = "G" And Objekt(X, Y).X - 40 <= Charakters(1).X Then Rechtsaus = True Else Rechtsaus = False
Case "Links": If Objekt(X, Y).Bild = "G" And Objekt(X, Y).X + 40 >= Charakters(1).X Then Kollisi = True Else Kollisi = False
Case "Oben": If Objekt(X, Y).Bild = "G" And Objekt(X, Y).Y + 40 >= Charakters(1).Y Then Kollisi = True Else Kollisi = False
Case "Unten": If Objekt(X, Y).Bild = "G" And Objekt(X, Y).Y - 40 <= Charakters(1).Y Then Kollisi = True Else Kollisi = False
End Select
@Cali: Die Select Case hab ich nur im Moment drin, dass ich den Überblick behalten kann.
Ich erkläre die Formel mal für die anderen, damit sie evtl. auch mitknobeln dürfen

Also, es sieht folgendermassen aus:
An diese Funktion werden Angaben der Charakter-Position und je nach zu prüfender Richtung die Map-Position, also Charakterposition X + 1 z.B.
Machen wir das Beispiel für die rechte Seite:
Die X-Werte werden durch 40 geteilt und abgerundet. Dann wird 1 dazugezählt. Somit hat man die X-Koordinate des Prüfobjiekts. Jetzt sind wir in der Funktion. Zuerst wird geprüft, ob das Objekt überhaupt blockt.
Jetzt würde es eigentlich schon funktionieren, aber es fehlt der Feinschliff, deshalb wird noch geprüft, ob der Abstand zum Objekt kleinergleich 40 ist -> Kollision. An den Unteren Ecken funktioniert das wunderbar, aber durch die oberen Ecken kann man einfach so durchlaufen. Dann füge ich eben noch etwas ein:
If Charakters(1).Y / 40 >= Y Then Kollision
Hier wird geprüft, ob der Abstand von Charakter Y zu Objekt Y kleiner als 40 ist, damit man nicht einfach an der oberen Ecke durchlaufen kann. Funktioniert aber nicht! Ich habe alle möglichen Formeln versucht, aber es geht einfach nicht! (Ach ja, hier wird Charakter Y nicht abgerundet, damit es genau wird.)
In 20 Minuten bin ich 1 Woche weg, nehme Laptop mit, suche nen Hotspot
