조회 수 1757 추천 수 5 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

 


비주얼 베이직.


 


쉬운 언어입니다. VC++보다 배우기 쉽다는 데 장점이 있지요.


 


저는 VC와 VB를 같이 씁니다만, VB를 더 자주 씁니다.


 


하지만 느립니다. 느리다고 게임을 만들 수 없을까요?


 


아닙니다. DirectX와 API를 이용하면 VB로도 충분히 게임을 만들 수 있습니다.


 


그럼..시작해 볼까요?


 


 





 


(0) 준비


 


우선 VB에서 DirectDraw를 이용하기 위해서는 DirectX 7 Type Library를 참조하셔야 겠지요.


 


그리고 VB를 실행시키고, 새 프로젝트를 만듭니다.


 


그리고... 끝입니다.


 


제 강좌에서는 마우스를 쓰실 일이 거의 없으실 것입니다.


 


(1) DirectDraw 객체의 생성, 그리고 표면의 생성


 


1. DirectDraw 객체 생성하기


 


DirectDraw를 사용하기 전에 해야 할 일은 우선 DirectX 7 객체를 생성하셔야 합니다.


 


DirectX 7 객체는 다음과 같이 선언합니다.


 


Dim objDX As New DirectX7

 


그리고 이 DirectX7 객체를 이용해서 DirectDraw객체를 생성해 봅시다.


 


Dim objDX As New DirectX7
Dim objDD As DirectDraw
Set objDD = objDX.DirectDrawCreate("")

 


* DirectX7객체의 DirectDrawCreate함수는 DirectDraw7 객체를 만들고 리턴 해 줍니다.


 


2. DirectDraw 표면 만들기


 


DirectDraw 객체를 생성했으면 이제 DirectDraw의 표면을 생성해 봅시다.


 


DirectDraw의 표면은 다음과 같이 선언합니다.


 


 


Dim ddSurface As DirectDrawSurface7

 


그럼 이 ddSurface 변수에 객체를 만들어야 겠지요.


 


이 표면은 DirectDraw7의 CreateSurface함수를 이용해 만들 수 있습니다.


 


CreateSurface 함수는 다음과 같이 선언됩니다.


 


 


CreateSurface( dd As DDSURFACEDESC2 ) As DirectDrawSurface7

 


이 함수는 표면의 너비, 높이, 투명색 등을 정의한 DDSURFACEDESC2 구조체를 인자로 받아서 표면을 생성해 참조를 리턴해줍니다.


 


그럼 이 CreateSurface함수를 이용해 표면을 만들어 봅시다.


 


 


Dim ddSurface As DirectDrawSurface7
Dim ddsd As DDSURFACEDESC2
ddsd.ddsCaps.lCaps = DDSCAPS_PRIMARTSURFACE - ①
ddsd.lWidth = 640
ddsd.lHeight = 480
Set ddsurface = objDD.CreateSurface(ddsd)

 


 


ddsd의 값을 보면 너비 640, 높이 480으로 정의한 것을 볼 수 있습니다.


 


그러면 ①은 뭘까요?


 


바로 표면이 '메인 표면'인지, '보조 표면'인지 정의해줍니다.


 


즉 '보조 표면'에서는 더블 버퍼나 스프라이트 등을 정의하는 표면이 되겠고,


 


'메인 표면'은 화면(혹은 더블 버퍼에 출력된 화면)을 그리는 표면이 되겠지요.


 


위의 코드에서는 DDSCAPS_PRIMARYSURFACE옵션을 사용해 메인 표면을 정의한 것을 알 수 있는데,


 


보조 표면은 DDSCAPS_OFFSCREENPLAIN 옵션을 이용해 정의할 수 있습니다.


 


* 표면을 만드는 또 다른 사용법


 


만약에 표면에 스프라이트를 로딩하려고 한다면, CreateSurface함수를 이용하고, Blt함수 (이는 다음 강의에서 다룰 것입니다)를 이용해 직접 뿌려줘야 할 것입니다.


 


그러나 CreateSurfaceFromFile함수를 이용하면 편리하게 사용할 수 있습니다.


 


CreateSurfaceFromFile함수는 다음과 같이 선언됩니다.


 


 


CreateSurfaceFromFile ( file As string, dd As DDSURFACEDESC2 ) As DirectDrawSurface7

 


file(파일의 경로)를 제외한 모든 것은 CreateSurface와 같이 사용하시면 됩니다.


 







 


이쯤에서 1강은 마쳐야 겠네요.


 


다음 강좌에선 DirectDraw 표면에 직접 블리팅 하는 법을 배우게 될 것입니다.


 


그럼 다음강에서 ~~

?

  1. 액션알피지 왕초보도 따라하는.. -스킬만들기-

    Date2005.09.08 Category언어/기타 ByLifeⓘⓢGood Views1789
    Read More
  2. 귀찮아‡님의 자동세이브 스크립트의 한글화

    Date2007.08.20 Category언어/기타 ByJ.Clifford Views1771
    Read More
  3. 초보의 로그인박스로 웹사이트에서 인증하는 방법 설명

    Date2005.05.28 CategoryRPG Maker By챔피온 Views1770
    Read More
  4. MFC 색상표

    Date2006.09.12 Category언어/기타 By피군 Views1770
    Read More
  5. 액션 게임을 만들어 보자!

    Date2006.09.27 CategoryRPG Maker By『연금술사』 Views1766
    Read More
  6. [DX/VB] DirectDraw? 별거 아냐! (1) DirectDraw객체의 생성과 표면의 생성

    Date2007.07.29 Category언어/기타 By악희 Views1757
    Read More
  7. 대화창을 화사하게 장식해볼까요? 장식은 정말 쉽죠?

    Date2006.08.17 CategoryRPG Maker By노친네 Views1748
    Read More
  8. 액알 의견들을 모집합니다.

    Date2006.08.03 Category언어/기타 By비밀소년 Views1746
    Read More
  9. 웨이브 파일 용량 줄이는 법

    Date2005.07.01 CategoryRPG Maker By아마란스 Views1741
    Read More
  10. 게이지바 만들기

    Date2005.06.24 Category언어/기타 By블리쳐 Views1740
    Read More
  11. [스크립트 문제]RPGXP에서 타일셋의 우선순위 문제 해결

    Date2007.07.19 CategoryRPG Maker ByNovelist Views1739
    Read More
  12. 게임제작 시작하시는분들을위한 강좌!(외부링크)

    Date2013.09.23 CategoryRPG Maker Bydiget Views1738
    Read More
  13. [DX&C++] 화면에 글씨를 써볼까요.

    Date2007.05.22 Category언어/기타 ByZeprod Views1735
    Read More
  14. 플레이어가 자기의 이름을 정한다 . [영어]

    Date2005.05.21 Category언어/기타 ByNorid Views1718
    Read More
  15. ARM 어셈블리 강좌 #0: 무념

    Date2006.08.17 Category언어/기타 By원스타 Views1718
    Read More
  16. 아주~~아주~~(커 치킨;;)쉬운 액션알피지배우기

    Date2005.08.11 CategoryRPG Maker By사토루 Views1712
    Read More
  17. RPG 만들기로 애니메이션 만들기

    Date2005.08.19 CategoryRPG Maker ByCC Views1708
    Read More
  18. 아르바이트를 만들자 . - 1

    Date2005.05.20 CategoryRPG Maker ByNorid Views1702
    Read More
  19. 대기중에 캐릭터가 움직이게/못움직이게 하려면?

    Date2007.08.24 Category언어/기타 By유진 Views1700
    Read More
  20. [한단계 도약] 변수 번호의 스위치

    Date2007.09.13 Category언어/기타 ByA. 미스릴 Views1694
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 51 Next
/ 51






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)