Welcome to our Community
Wanting to join the rest of our members? Feel free to sign up today.
Sign up

Frage Unit Collision C# Windows Forms Application

SaikaVA

Otaku Novize
Hallo vielleicht ist hier jemand der sich damit auskennt. Ich schreibe gerade an meinem Flappy Bird Abklatsch. Es funktioniert soweit. Geschrieben ist es in C# als Windows Form Application, weil ich lernen wollte die IDE zu benutzen. Mein Problem ist folgendes:

Das Spiel wird beendet, wenn der Vogel das Objekt berührt, in diesem Fall die Pipe. Bei mir sind es aber Charaktere, genauer gesagt Bilder im PNG. Ich lasse also 2 PictureBoxen kollidieren. Weil es aber Charaktere sind und keine rechteckigen Gegenstände, kollidieren Sie miteinander ohne sich zu berühren, da die Pictureboxen ja rechteckig sind.

Ich habe das Problem versucht zu lösen, indem ich die Bilder zurechtschneiden wollte. Musste dann leider feststellen, dass Bilder immer rechteckig sein müssen.
https://www.animes.so/titel/objekt-...und-auch-nicht-transparent.24473/#post-478154

Hier ist der Code mit dem ich die Kollision feststelle:
//check for collision
if (flappyRiko.Bounds.IntersectsWith(ground.Bounds))
{
EndGame();
}

Ich mache das alles in meiner Freizeit zum Lernen und hoffe, dass ich die Frage nicht auf Stackoverflow stellen muss :)
 

so1ko

☣️ Anti-Spam-Bot & Troll vong Dienst ☢️
Seelenverkäufer
Ex-Mitarbeiter
31 Aug. 2014
490
435
93
20
❤ Bei Kid ❤
www.animes.so
Wenn du Flappybird kopierst, kann es ja nur rechts, oben, links oder unten kollidieren. Das heißt, du kannst dir deinen Charakter so zurechtlegen, dass diese Seiten entsprechend sichtbare Ausbuchsungen haben. Alternativ kannst du auch die Hitboxen von den Röhren kleiner stellen, sodass es erst kollidiert, wenn der Charakter etwas drin ist.
Komplett richtig wäre es, wenn du die Hitbox deines Charaktermodells auf ihn projizierst, sodass nicht die PNG kollidiert, sondern eine eigens von dir erstellte Hülle.
 
  • Like
Reaktionen: SaikaVA

SaikaVA

Otaku Novize
Danke, deine Antwort hat mir geholfen. Ich hab auf den Pictureboxen, einfach Pictureboxen raufgelegt, ihnen die gleiche Logik gegeben und deren Visible einfach auf false gesetzt. Jetzt kollidieren nur die Hitboxen miteinander und die Bilder folgen ihnen einfach. Ich muss jetzt nur noch hinkriegen, dass das Bild des Spielcharakters über dem Kollisionsobjekt liegt beim Tod. Ist es möglich eine Picturebox immer über den anderen anzeigen zu lassen?