2017-04-10 1 views
2

저는 요요를 에뮬레이트해야하는 OpenGL 클래스 용 프로젝트에서 작업하고 있습니다. 진행 상황을 나타내고 있지만 화면 경계를 검사 할 때로드 블록을 치는 것처럼 보입니다. 나는 일단 공이 화면 하단에 도달하면 부사장이 나오기 시작하고 도와 주시면 감사하겠습니다.OpenGL 검사 화면 경계

위에서 선언 한 3 개의 부동 소수점이 함수에 의해 증가 될 것으로 예상됩니다. 공의 이동을 제한하기 위해 deltay를 확인하려고합니다. 다음은

공, 공의 움직임을 변환하지만

무효 moveYoYo()를 {

glClear(GL_COLOR_BUFFER_BIT); 

//going up 
if(flag == 1) 
{ 
    deltay -= .05; 

    if(deltay <= -.002) 
    { 
     flag = 0; 

    } 

} 
//going down 
if(flag == 0) 
{ 
    deltay += .05; 

    if(deltay >= .002) 
    { 
     flag = 1; 

    } 

} 

glPushMatrix(); 
    glTranslatef(deltax,deltay,deltaz); 
    display(); 
glPopMatrix(); 
glFlush(); 
glutSwapBuffers(); 

}

답변

1

하면 설정 한 경계를지나 이동하는 것입니다 내 기능입니다 화면의 아래쪽과 위쪽 사이에서 공이 튀어 나오길 원한다면 그 이상한 숫자를 사용하려면 방향을 변경하는 하한은 < = -0.002이고 상한은> 1.002이어야합니다. 더 나은 어쨌든 f.e :처럼, 적은 임의의 숫자를 사용하는 것입니다

if (flag == 1) { 
    // Going down 
    deltay -= 0.05f; 
    if (deltay == 0) 
     flag = 0; 
} else if (flag == 0) { 
    // Going up 
    deltay += 0.05f; 
    if (deltay == 1) 
     flag = 1; 
} 

또한 경우에만 0으로 사용 또는 1 왜 안 부울를 사용에 플래그?

+0

감사합니다. !!! 나는 그것을 알아 냈다, 나는 단지 공을 제한 할 수 있는지보기 위해 기묘한 경계를 사용하고 있었다. 내 문제는 나중에 코드에서 버퍼를 교환하는 것을 잊고 있었다! –