foreach Schleife bei Collision funktioniert nicht

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Thunderbolt.

    foreach Schleife bei Collision funktioniert nicht

    Ich habe eine foreach Schleife geschrieben, undzwar diese hier:

    C#-Quellcode

    1. if (Entinitys > 0)
    2. {
    3. foreach (PictureBox Entinity in Enemys)
    4. {
    5. if (Schiff.Bounds.IntersectsWith(Entinity.Bounds))
    6. {
    7. if (Entinity.Tag == "Gegner Schwach")
    8. {
    9. TakeDamage(25);
    10. }
    11. else if (Entinity.Tag == "Gegner Mittel")
    12. {
    13. TakeDamage(50);
    14. }
    15. else if (Entinity.Tag == "Gegner Stark")
    16. {
    17. TakeDamage(75);
    18. }
    19. }
    20. }
    21. }


    If soll nur überprüfen ob Entinitys (wenn das so richtig geschrieben ist) existieren. Ist ja sinnlos Kollision zu überprüfen wenn keine existieren.
    Enemys ist ein PictureBox Array. Das Problem ist: wenn keine Entinitys existieren läuft alles einwandfrei, wenn ich jedoch einen Spawne stürzt er ab und sagt bei:

    C#-Quellcode

    1. if (Schiff.Bounds.IntersectsWith(Entinity.Bounds))


    ensteht eine NullReferenceException, eigentlich müsste es ja gehen da dann ein Entinity existiert und die If Abfrage false zurückgeben müsste weil ich sie nicht "berühre", aber Visual Studio gibt eben den Fehler aus. Liegt es vielleicht daran dass ich weit von der anderen PictureBox entfernt bin? Und bitte keine Antworten wie: "Benutz doch GDI!!!!", ich möchte eben mal Pictureboxen ausprobieren.

    Vielen Dank im vorraus!
    Gruß,
    DragonSlayerMarc
    There are only 10 types of people in the world: Those who understand binary and those who don't.
    Kann nicht sein da Schiff eine PictureBox auf der Form ist!

    EDIT: MouseOver zeigt Spiel.Schiff (Spiel ist die Form)
    There are only 10 types of people in the world: Those who understand binary and those who don't.

    DragonSlayerMarc schrieb:

    Entinitys (wenn das so richtig geschrieben ist
    Entity und im Plural Entities.

    Geh mal mit der Maus auf die einzelnen Ausdrücke und lass dir den Wert davon anzeigen.
    Mit freundlichen Grüßen,
    Thunderbolt
    Ich kam gestern Abend selbst auf das Problem:

    Wenn 1 Entity existiert gibt der erste Durchgang der foreach Schleife false zurück, soweit sogut.
    Da aber keine 2., 3., 4., 5. u.s.w. existiert also null ist kommt die Exception! Ich bin auch ein Trottel.
    Trotzdem Danke.

    Gruß,
    DragonSlayerMarc
    There are only 10 types of people in the world: Those who understand binary and those who don't.

    DragonSlayerMarc schrieb:

    Und bitte keine Antworten wie: "Benutz doch GDI!!!!", ich möchte eben mal Pictureboxen ausprobieren.
    Er will selbst rausfinden, dass das eine Performance wie'n Stein gibt.
    Mit freundlichen Grüßen,
    Thunderbolt