forklaring af syntax i if sætning
Hej,jeg har kastet mig over bogen "Beginning .Net game programming in C#" hvilket er en ganske udemærket bog. En af bogens eksempler er en tetris klon. Spillepladen er 16 firkanter bred og har en højde=height. En block består af 4 Square. Hver square kender sin egen position på spillepladen. For at tjekke for kollision hver gang en blok flytter sig tester hver square om et felt er tomt ved at kalde metoden IsEmpty. Returnerer alle IsEmpty true på alle blokkens fire squares så er det ok at flytte blokken.
Mit forståelses problem opstår i metoden IsEmpty. Her vælger man at lave et int[] (arrBitGameField) af størrelsen Height. Det lyder også fornuftigt nok idet en int indeholder 16 bits = bredden på en linie på spillepladen. Men nu til sagen. metoden IsEmpty ser således ud:
public bool IsEmpty(int x, int y)
{
if(tjek om brikken er uden for spillepladen)
returner false;
else
if((arrBitGameField[y] & (1<<x)) != 0)
{
return false;
}
return true;
}
efter at have gennemlæst metoden ca. 10 gange har jeg stadig ikke fået fuld klarhed over hvad det er linien:
if((arrBitGameField[y] & (1<<x)) != 0)
egentlig tester....eller rettere logikken i betingelsen. Er der nogle der kan forklare mig det.
