Entwickler-Ecke
C# - Die Sprache - Frage zu rectangle
Stratego - Sa 10.09.11 01:08
Titel: Frage zu rectangle
Hallo ich habe zwei rectangles, wenn sie sich berühren soll ein leben abgezogen werden, aber da sie beide nicht nr 1 px groß sind ( oder warum auch immer das so ist) werden die leben ganz abgezogen.
Die boolesche Variable verloren ist auf false gesetzt und wird true wenn sie sich berühren. Hat jemand eine Idee wie ich das hinbekomme, das ich nur 1 Leben verliere...
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| if (player_rect.Intersects(enemy_rect2)) {
verloren = true; }
if (verloren == true) { life -= 1; } |
jaenicke - Sa 10.09.11 01:57
Du kannst dir merken, dass die Berührung da ist. Und bei folgenden Prüfungen ignorierst du das, setzt aber die Variable zurück, wenn die Berührung nicht mehr da ist. Berühren sich die Objekte erneut wird so auch wieder ein Punkt abgezogen.
Stratego - Sa 10.09.11 11:07
Habe ich mir auch schon überlegt, wie prüfe ich wenn sich die beiden rectangles nicht mehr berühren?
stes - Sa 10.09.11 11:15
Hi,
du kannst doch einfach eine Variable entsprechend belegen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| bool habenSichBeruehrt = false;
bool beruehrenSich= player_rect.Intersects(enemy_rect2);
if (!habenSichBeruehrt && beruehrenSich) { habenSichBerueht = true; } else if (habenSichBeruehrt && !beruehrenSich) { habenSichBeruehrt = false; } |
Gruß
stes
Stratego - Sa 10.09.11 11:40
Stimmt, vielen Dank!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!