Views 1920 Votes 4 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print

 


어제는 깜박하고 강좌를 못 올렸네요 -_-;


 


원래 스프라이트까지 담으려고 했지만 하다보니 내용이 많아져서 생략합니다.


 







 


(3) 더블 버퍼의 생성과 블리팅


 


0) 더블 버퍼(백 버퍼)란?


 


VB의 PictureBox를 이용해 오브젝트를 옮겨 본 적이 있는 분이시라면, 플리커링(깜박임)현상을 아실겁니다. 메모리 상의 비트맵을 직접 화면에 표시하면 그런 플리커링 현상이 일어나지요.


그래서 '더블 버퍼'라는 가상 표면 위에 그림을 그리고, 더블 버퍼를 매우 빠른 속도로 화면에 표시하는 기법을 씁니다.


 


1) 더블 버퍼의 생성


 


더블 버퍼는 메인 표면이 아니니 보조 표면으로 DirectDrawSurface7객체를 생성합니다.


 


Dim ddBackBuffer As DirectDrawSurface7
Private ddsdBackBuffer As DDSURFACEDESC2
Dim rBackBuffer As RECT
ddsdBackBuffer.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN
ddsdBackBuffer.lWidth=640
ddsdBackBuffer.lHeight=480
Set ddBackBuffer = ddraw.Createsurface(ddsdBackBuffer)
rBackBuffer.Bottom = ddsdBackBuffer.lHeight
rBackBuffer.right = ddsdBackBuffer.lWidth

 


2) 더블 버퍼로의 블리팅


 


만약 어떤 스프라이트가 ddSprite에 저장되어 있다고 가정하고, 이를 화면에 표시하기 위해 백 버퍼에 출력한다고 가정합시다. 이 ddSprite의 RECT객체인 rSprite는 ddSprite에서 복사될 범위를 지정합니다.


 


 



ddBackBuffer.Blt rbbRect, ddSprite, rSprite, DDBLT_WAIT


 


여기서 rbbRect가 무엇을 의미하냐면, 바로 백 버퍼 상의 rSprite가 복사될 범위를 지정합니다.


 


* rbbRect의 크기와 rSprite의 크기가 다르면 자동으로 사이즈의 변환이 이루어 집니다.


 


3) 더블 버퍼에서의 블리팅


 


더블 버퍼를 다 채웠다면, 이제 더블 버퍼의 내용을 메인 표면으로 로드해야 겠지요?


 


Picture1라는 PictureBox에 복사한다고 가정하고 프로그램을 작성하여 봅시다.


 


우선 ddScreen이라는 메인 표면을 생성해 여기에 더블 버퍼를 출력할 것입니다.



 



ddraw.SetCooperativeLevel Picture1.hWnd, DDSCL_NORMAL


ddsdScreen.lFlags = DDSD_CAPS


ddsdScreen.ddsCaps.lCaps = DDSCAPS_PRIMARYSURFACE


ddsdScreen.lWidth = SCREENWIDTH


ddsdScreen.lHeight = SCREENHEIGHT


Set ddScreen = ddraw.CreateSurface(ddsdScreen)


rScreen.Bottom = ddsdScreen.lHeight


rScreen.Right = ddsdScreen.lWidth



 


이제 메인 표면이 생성되었으니 여기에 더블 버퍼를 블리팅 해봅시다.


 




objDX.GetWindowRect Picture1.hWnd, rScreen 'Picture1의 RECT를 rScreen으로 리턴해줍니다.


ddScreen.Blt rScreen, ddBackBuffer, rBackBuffer, DDBLT_WAIT



 


 






 


여러분은 이번 강좌까지 DirectDraw객체를 생성하고, 백 버퍼를 생성하여 메인 표면에 백 버퍼의 내용을 출력한는 방법까지 배웠습니다.


 


다음 강좌에서는 스프라이트를 생성하여 이를 백 버퍼에 출력하고, 메인 객체에 표시하는 법을 배울 것이고, 그 다음강좌에서는 직접 프로그램을 작성하여 DirectDraw의 첫 프로그램을 감상하게 되실 겁니다.


 


그럼 다음시간에...

?

  1. 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법

    Date2018.01.02 CategoryRPG Maker Byzero? Views691
    Read More
  2. [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집

    Date2017.07.14 Category언어/기타 By황금상자 Views849
    Read More
  3. rpg vxa 로 겜만들때 데미지 설정 공식[링크]

    Date2017.06.08 CategoryRPG Maker By준E Views794
    Read More
  4. [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템

    Date2017.03.31 CategoryRPG Maker By준E Views2059
    Read More
  5. JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기

    Date2016.12.24 Category언어/기타 Bytitle: 댓글러lklslel Views921
    Read More
  6. 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요

    Date2016.11.08 Category언어/기타 By마나님이 Views978
    Read More
  7. RPG MV에서 플러그인 오류의 원인에 대하여

    Date2016.07.08 CategoryRPG Maker Bytitle: 댓글러lklslel Views2440
    Read More
  8. RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME)

    Date2016.07.08 CategoryRPG Maker By최저 Views1678
    Read More
  9. 게임의 버전을 짜 보자! - 유의적 버전 2.0.0

    Date2016.06.07 Category언어/기타 ByYanggaeng Views1195
    Read More
  10. 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다!

    Date2016.03.12 CategoryRPG Maker By정궈니 Views3017
    Read More
  11. rpgmv 마우스 지원과 터치 지원이 되니.

    Date2015.10.25 CategoryRPG Maker By팡소리 Views1057
    Read More
  12. RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상.

    Date2015.10.25 CategoryRPG Maker ByHT9MAN Views2293
    Read More
  13. RPG게임 뻔한요소들.

    Date2015.10.05 Category언어/기타 Bytitle: 천무천무 Views1712
    Read More
  14. 자바스크립트와 관련해서 참고할 만한 사이트들

    Date2015.10.04 Category언어/기타 ByMARCO Views957
    Read More
  15. 꿀잼이군요!

    Date2015.05.20 Category언어/기타 By사람님[대회참가] Views944
    Read More
  16. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.06 CategoryRPG Maker Bytitle: 자게이하앵 Views1897
    Read More
  17. [RPG2000/3 팁] 간편한 이벤트 단축키

    Date2015.04.05 CategoryRPG Maker Bytitle: 자게이하앵 Views795
    Read More
  18. [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계

    Date2015.04.02 Category언어/기타 Bytitle: 천무천무 Views694
    Read More
  19. 오다 주웠습니다.

    Date2015.03.30 Category언어/기타 By사람님[대회참가] Views990
    Read More
  20. 무료 이미지 사이트 Pixabay!

    Date2015.03.28 Category언어/기타 By나작소 Views970
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 51 Next
/ 51


[privacy statements] | [Terms of Use] | [Contact us] | [Sponsorship] | [Indiside History]

Copyright © 1999 - 2016 INdiSide.com/CL3D Co., Ltd. All Rights Reserved.
Owner : Chunmu(Jiseon Lee) | kernys(Wonbae Kim) | Sasinji(Byungkook Kim)