2011-03-16 4 views
0

메신저 게임 만들기, 캐릭터가 총알을 쏘고 display()에서 이와 같이 그려진 적과 충돌합니다.OpenGL에서 '삭제'쿼드

glPushMatrix(); 
     glTranslatef(260, -180, 0.0); 
     e[0] = new Platform(0, 0, 0, 40, 40, 40, 40, 0, textures[17], 260, -180); 
    glPopMatrix(); 

글 머리 기호가 충돌 한 경우 개체를 삭제하거나 그리지 않으려면 어떻게해야합니까? 코드를 작성한 후에야 어떻게해야 할 지에 대한 생각, 감사합니다.

+2

당신은 다시 장면 그래프의 관점에서 생각하고 (확실하지 당신이 원하는 이런 종류의 물건이다). OpenGL이 그런 식으로 작동하지 않는다는 것을 이미 자세히 이야기했습니다. http://stackoverflow.com/questions/5264682/position-moving-2d-object-opengl/5266358#5266358 – datenwolf

답변

1

거기에 드로잉 코드가 표시되지 않지만 일반적인 원칙은 조건부로 드로잉을 건너 뛰는 것입니다. 당신이 개별적으로보다는 오히려 한꺼번에 한 덩어리를 드로잉한다면, 그것을하기 위해 어떤 일이 필요할 수 있습니다. 예를 들어 glDrawArrays에서 glDrawElements으로 전환하면 정의한 쿼드의 하위 집합 만 그릴 수 있습니다.

2
if (bullet hits character){ 
    listOfCharacters.remove(character) 
) 

이상 :

function drawAllCharacters : 
    for each Character in listOfCharacters : 
     draw Character