2012-06-21 3 views
0

그래서 화면을 클릭하고 즉시 객체를 만들 수있는 응용 프로그램을 만들고 있습니다. 어떻게해야합니까? 생성하려는 객체의 속성, 렌더링하려는 각 특정 도형의 클래스 및 이전 클래스의 추상 클래스를 포함하는 별도의 클래스를 만들었습니다. 하지만 기본적으로 나는 특정 지점을 클릭 할 수 있기를 원하며 그 지점을 중심으로 지정된 모양을 렌더링합니다.opengl 2.0에서 즉시 객체를 렌더링하는 방법

답변

0

먼저 활동이 OnTouchListener 구현할 수 있도록하고 folllowing 메서드를 재정의하는 것은 당신이 검색 할 수있는 터치 좌표 : 터치 이벤트에

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    if (event.getAction() == MotionEvent.ACTION_DOWN) { 
    touchX = (int) event.getX(); 
    touchY = (int) event.getY(); 
    } 

    return true; 
} 

, 당신은 다음 원하는 모양의 패스를 그립니다 메소드를 호출 할 수 touchX 및 touchY 값을 입력하고 번역을 수행하십시오.

+0

그래, 고마워,하지만 나는 주로 어떤 종류의 버퍼 나 쉐이더를 만들어 별도의 클래스에있는 객체를 렌더링해야하는지 궁금해했다. 내 주요 활동에서 어떤 것을 재활용 할 수 있고 내가 새로 만들 필요가있는 것은 무엇입니까? – scssquatch

+0

귀하의 활동에 ** GLSurfaceView.Renderer **를 구현하는 내부 클래스를 생성하십시오. 모든 셰이더 핸들, 행렬 등을 관리하고 렌더링하려는 셰이프를 전달하십시오. 모양 클래스 자체의 모양에 대한 버퍼 (positionBuffer, colorBuffer, texCoordBuffer, normalBuffer)를 보유 할 수 있습니다. – baeschti

+0

누구나 정답을 알고 싶다면 알아 냈습니다. 당신은 위치와 색상 핸들을 전달하고, 위치를 설정하고, vertexAtrribPointer를 만들고, glEnableVertexAttribAarray를 수행하고, 색상 위치를 설정해야합니다. 위의 속성 배열을 사용하여 색상을 지정합니다. 그런 다음 glDrawArrays 또는 요소를 사용하여 객체를 그립니다. 또한 꼭지점에서 바이트 버퍼를 만들어 위치 0에 배치해야했습니다. – scssquatch

관련 문제