Japanese | English | Korean

Tutorial

MascotCapsule 어플리케이션의 기본구성

지금부터 MascotCapsule을 이용하시는 분을 위한 튜토리얼입니다. 여기에서는 MascotCapsule 어플리케이션의 기본 구성에 대하여 설명하겠습니다.

프레임워크 계열

프레임워크 계열의 사항에 대해서 “프로그램 구성” 및 “애니메이션의 실현” 으로 나누어 간단하게 설명하겠습니다.

프로그램 구성

휴대용 Java 환경에 있어서는 VM 및 실장이 끝난 클래스 라이브러리에 의한 실행 환경을 전제로 어플리케이션을 작성하게 됩니다.
MascotCapsule어플리케이션의 경우 다음 2개의 클래스를 정의하는 것이 솔직하고 알기 쉽다고 생각됩니다.

어플리케이션 클레스

어플리케이션으로서의 기동, 일시정지, 재개, 종료 및 렌더링 캔버스 클래스의 생성 등을 실시합니다. MIDP 환경에 있어서는 MIDlet 클래스를 확장하는 형태로 실장하게 됩니다.

랜더링 캔버스 클래스

실제의 3D렌더링을 실행하기 위한 클래스입니다. 렌더링을 위한 각종 변수 및 메소드를 정의하여 초기화 처리, 화면 갱신 처리, 유저 인터페이스 처리 등을 실행합니다. 구체적으로는 캔버스 클래스를 확장해 실장하게 됩니다.


애니메이션의 실행

애니메이션을 어떻게 실행할지도 중요한 포인트입니다. 아래 화면의 주기적인 갱신 및 더블 버퍼링에 대해 간단하게 설명합니다. 애니메이션은 일정시간마다 화면을 갱신하는 것으로 실시합니다. 일정시간마다 화면 갱신 처리를 기동하기 위한 장치로서는 일반적으로 스레드(thread) 또는 타이머 이벤트를 사용합니다.

스레드(thread)를 이용한다

초기화의 흐름 안에서 스레드(thread)를 생성해 기동합니다. 스레드(thread)의 처리 본체는 관련된 오브젝트의 run() 메소드로서 기술합니다. 렌더링 중에는 영구 루프가 실행되도록 구성합니다. 전형적인 루프 처리는 아래와 같은 내용을 포함합니다.

*렌더링 전 처리 : 각 종 렌더링용 파라미터의 셋업 등
*렌더링 요구 : 통상 repaint() 호출
*일정시간의 sleep : 통상sleep() 를 호출

렌더링 요구(repaint()) 후, 시스템이 적절한 타이밍에 실제의 렌더링 메소드(paint())를 호출해 줍니다. 덧붙여 루프의 사이클 타임에 의해서 frame rate가 정해집니다.

타이머이벤트를 이용한다

초기화의 흐름 안에서 타이머 오브젝트를 생성해 기동합니다. 일정시간마다 가동되는 처리는 타임 아웃 시에 호출 되는 메소드에 기술합니다. 처리로서는 아래와 같은 내용을 포함합니다.

*렌더링 전처리 : 각종 렌더링용 파라미터의 셋업 등
*렌더링 전처리 : 통상 repaint() 호출
*(타이머 재가동): Repeat 지정이 가능하다면 불필요

더블 버퍼링

애니메이션에 대해서는 “더블 버퍼링” 도 중요한 포인트입니다. 다음에 렌더링되는 화면 데이터의 작성과 실제의 화면 렌더링을 따로 하는 것으로 깜박거림이 없는 애니메이션이 가능해집니다.

다만 현행의 MascotCapsule 조합 기종에 대해서는 시스템 자체가 “더블 버퍼링” 을 서포트하고 있는 것이 많을 때도 있어 본서에서는 어플리케이션 측에서의 “더블 버퍼링" 더블 버퍼링 " 실장에 대해서 특별히 설명하고 있지 않습니다. 반드시 필요한 경우에는 시판 서적 등을 참조하여 실장하도록 해 주세요.