TETRIS FOR QTOPIA
개요 Qtopia에서 실행되는 게임(테트리스) 터치패드 특성에 맞춰 버튼으로 플레이
QT 시그널, 슬롯 방식의 콜백 호출 라이브러리 시그널이 메시지 큐에 도착하면, (슬롯에) 등록된 함수가 실행됨. 시그널이 메시지 큐에 도착하면, (슬롯에) 등록된 함수가 실행됨. 각종 이벤트(Paint, Timer)가 모두 이런 방식으로 호출되므로 손쉽게 제어 가능. QTOPIA는 QT를 기반으로 구축된 라이브러리로 대부분의 코드를 수정없이 윈도우 매니저에서 실행시킬 수 있음
개발 과정 QTOPIA SDK 설치 테트리스 코드 작성 에뮬레이터로 테스트 윈도우 매니저로 업로드 trolltech 사에서 QTOPIA SDK를 GPL 라이센스 하에서 공개했으며, RPM 패키지를 받아 설치 가능 테트리스 코드 작성 C++로 작성 에뮬레이터로 테스트 QVFB –width 640 –height 320 –depth 16 QPE 위의 명령을 차례로 실행하여 보드와 동일한 윈도우 매니저 환경 에뮬레이팅 가능 x86용 gcc로 컴파일 후 실행하면 윈도우 매니저로 실행됨 윈도우 매니저로 업로드 최종적으로 tetris.desktop 파일을 만들어 윈도우 매니저에 업로드
실행 화면 #1 윈도우 매니저에 등록된 테트리스
실행 화면 #2 비트맵을 읽어 초기 화면 표시
실행 화면 #3 게임 화면. 버튼을 클릭하여 진행
실행 화면 #4 게임 종료 상태. Start 버튼으로 재시작 가능
문제점 프레임버퍼 깨짐 문제: 긴 블록이 나올 때 다음 나올 블록을 보여주는 화면이 깨짐. const로 지정된 블록 데이터가 깨지는 것은 이상한 일. 블록 추출 문제: 블록의 배열들이 있고, 현재 시간을 밀리 초로 얻은 후 블록 수로 나누어 임의의 블록을 추출함. 그러나 자주 같은 블록이 연속되어 나오는 경우가 있음
소감 QT는 배우기 쉽고, 강력한 GUI 라이브러리. 도움말도 잘 되어 있음. 개발 시에는 다른 참고서적이 필요없었음 시간 상 문제로 QT용 IDE인 KDevelop를 못 써본것은 아쉬움 QTOPIA 경우, SIGNAL-SLOT을 수동으로 연결해줘야하므로, 큰 프로그램을 개발할 때는 유지보수가 쉽지 않을 것 같음.