Frage von Xenob, 49

In meinem Projekt wird eine if-Anweisung einfach übersprungen, obwohl die Wenn-Bedingung zutrifft,woran könnte das liegen?

In meinem Projekt wird eine if-Anweisung einfach übersprungen, obwohl die Wenn-Bedingung zutrifft,woran könnte das liegen? void Kollision::KollisionskontrolleRechteck(int xMaus, int yMaus) {

if (y1KollisionscheckKlassenstufen[1]  >= yMaus >= y2KollisionscheckKlassenstufen[1] && x1KollisionscheckKlassenstufen[1]<=xMaus<=x2KollisionscheckKlassenstufen[1])//Die Folge wenn If true ist wird nicht ausgeführt
{

    m_pRenderTarget->BeginDraw();//Andere Prozedur zum zeichnen nutzen???
    m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
    m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::Blue));
    m_pRenderTarget->EndDraw();
    
}

}

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Missingo1996, 37

Du kannst nicht zwei Abfragen in einem machen soweit ich weis (jedenfalls in denn meisten Programmiersprachen), probier es so:

if((y1KollisionscheckKlassenstufen[1] >= yMaus) && (yMaus >= y2KollisionscheckKlassenstufen[1]) && (x1KollisionscheckKlassenstufen[1] <= xMaus) && (xMaus <=x2KollisionscheckKlassenstufen[1]))

Kommentar von Linkboy007 ,

Doch das klappt aber dann nur mit else deswegen würde ich das so wie du machen

Kommentar von Missingo1996 ,

Mach es trotzdem so, ist üblicher. Man weis nie wo sich sonst ein Fehler einschleicht.

Antwort
von Schachpapa, 21

In C macht a > b > c nicht das was du erwartest. Der Ausdruck vergleicht a mit (b>c) letzteres ist 1 oder 0.

Du mustt schreiben a>b && b>c

Antwort
von Linkboy007, 35

Welche Programmiersprache benutzt du denn?

Kommentar von lollollollollol ,

C, steht zumindest in den Tags

Kommentar von Linkboy007 ,

oh sorry :D hab nicht so viel Erfahrung mit C nur mit Java und so ich würde es aber so wie missingno Programmieren :)

Antwort
von Xenob, 18

Vielen Dank für die schnellen Antworten, es hat geklappt, wie Missingo1996 es beschrieben hat und ich nutze C++, aber es wurden keine Sonderzeichen in den Flaggs erlaubt, deshalb hatte ich C geschrieben.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten