2학기 C언어 프로젝트를 아주아주 간략하게!! 기록합니다
주제 - 실시간 대전 오목 게임
2차 중간발표 구현 내용을 담겠습니다.
일단 이번 발표에서는 게임 자체를 구현하는 게 목표였습니다.
멀티 기능 같은 부가 기능은 제외시키구용.
구현 목표
1. 방향키를 통해 돌 이동시키기
2. 스페이스바로 착수하기
3. 움직일 때 바로바로 화면에 반영되기
3-1. 대신 깜빡이지 않도록 하기
3-2. 화면이 지워지지도 않도록 하기
4. 착수하면 순서가 알아서 바뀌도록 하기
사실 쉬울 줄 알았습니다.
어렵더군요. . .
일단
오목돌을 커서 위치와 동일하게 만들기
움직일 때 화면이 지워지지 않도록 하기
화면이 안 지워지더라도 깜빡임이 없어야 됨
너무 어려움
결론적으로 이중 버퍼링을 통해서 구현했음...
이중 버퍼링(Double Buffering)이란?
말 그대로 버퍼를 두 개를 사용하는 거임.
그럼 여기에서 또 버퍼란 무엇이냐? 임시저장공간입니다.
위키피디아의 정의를 보자면
- 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역
이라고 나오는데 그림으로 이해하면 쉽습니다.
그래픽적 요소를 구현할 때 한 개의 화면으로 그림을 바꾸고 바꾸고 하다보면 깜빡임이 생깁니다.
예를 들어서 오목 돌이 이동할 때마다 깜빡이는 거죠.
그런데 이중 버퍼링을 사용하면?
기존 화면을 띄워뒀다가 입력(혹은 데이터)이 완료되면 화면에 전송해줍니다.
깜빡이는 과정을 다른 화면에서 미리 처리해뒀으니 깜빡일 일이 없
참고할 만한 티스토리 글들... 첨부합니다.
https://ontheway.tistory.com/52
'C언어' 카테고리의 다른 글
[C언어] 서식문자 기록 (0) | 2024.06.28 |
---|---|
[C프로그래밍] 1학기 프로젝트 기록 (2) (0) | 2024.06.07 |
[C프로그래밍] 1학기 프로젝트 기록 (1) (0) | 2024.06.07 |
댓글