Hey,
ich hoffe dies ist hier die richtige Kategorie, sonst bitte verschieben.
Mein Problem: ich schreibe an einer Art Breakoutklon, sprich man hat dieses "Paddel" und muss mit einem Ball die Blöcke zerstören. Gibt es zwar schon 1000 mal aber ist eine gute Übung für 2d Spiele. (Btw kann hier jemand gute Anleitungen für 2d Spiele angeben?).
Mein Problem ist jetzt die Korrekte Kollisionserkennung zwischen Ball und Block. Theoretisch kann man dies ja einfach machen indem ein Quadrat um den Ball annimmt und abfragt ob dieses den Quader des Block schneidet (intersect oder so). Das führt aber bei einem runden Ball zu komischem Verhalten.
Gibt es also eine Funktion um einen Kreis mit einen Rechteck kollidieren zu lassen? Und wie bekomme ich dann raus wo die sich getroffen haben.
Ich hab das momentan folgender Maßen gemacht:
es werden 8 Punkte auf dem Kreis berechnet. Das sind diese (x = Punkt)
00x00
0x0x0
x000x
0x0x0
00x00
Dann schau ich mit .getrect().contains() nach ob einer davon im Block liegt. Wenn ja wird halt die Richtung geändert. Dies funktioniert aber nicht gerade perfekt. Daher die Frage wie mache ich das besser?
ich hoffe dies ist hier die richtige Kategorie, sonst bitte verschieben.
Mein Problem: ich schreibe an einer Art Breakoutklon, sprich man hat dieses "Paddel" und muss mit einem Ball die Blöcke zerstören. Gibt es zwar schon 1000 mal aber ist eine gute Übung für 2d Spiele. (Btw kann hier jemand gute Anleitungen für 2d Spiele angeben?).
Mein Problem ist jetzt die Korrekte Kollisionserkennung zwischen Ball und Block. Theoretisch kann man dies ja einfach machen indem ein Quadrat um den Ball annimmt und abfragt ob dieses den Quader des Block schneidet (intersect oder so). Das führt aber bei einem runden Ball zu komischem Verhalten.
Gibt es also eine Funktion um einen Kreis mit einen Rechteck kollidieren zu lassen? Und wie bekomme ich dann raus wo die sich getroffen haben.
Ich hab das momentan folgender Maßen gemacht:
es werden 8 Punkte auf dem Kreis berechnet. Das sind diese (x = Punkt)
00x00
0x0x0
x000x
0x0x0
00x00
Dann schau ich mit .getrect().contains() nach ob einer davon im Block liegt. Wenn ja wird halt die Richtung geändert. Dies funktioniert aber nicht gerade perfekt. Daher die Frage wie mache ich das besser?