조회 수 1017 추천 수 3 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

이번 강의에서는 햄 엔진을 이용한 Keyboard 및 Mouse 처리 코드를 작성해보겠습니다.

 

프로토 타입

 

일단 햄엔진에 포함된 입력관련 객체 및 함수 입니다.

 

GetCursorPos() : 마우스의 위치를 얻음

SetCurPos(int iX,int iY) : 마우스의 위치를 설정함 ( 화면 구역안에서의 좌표임. )

SetCurVisible(BOOL bShow) : 마우스를 보여줄것인지 말것인지 결정.(DoEvents 함수 내에서만 작동)

GetCurVisible() : 마우스의 표시 상태 알아보기

m_Mouse.GetKeyState(0) : 왼쪽 마우스의 상태를 얻음

m_Mouse.GetKeyState(1) : 오른쪽 마우스의 상태를 얻음

m_Keyboard.GetKeyState(키보드 값) : 키보드 값의 상태를 얻음

m_Mouse.SetLockState(코드값,TRUE); // 마우스의 중복 방지를 위한 마우스 잠금. ( 마우스 버튼을 떼면 잠금 자동 풀림 )

m_Mouse.SetLockState(코드값,FALSE); // 마우스 잠금 해제

m_Keyboard.SetLockState(코드값,BOOL bShow); // 위와 같은 원리임

 

실제 구현

 

 

 - 키보드 -

그리고 이젠 간단한 타자 프로그램을 위한 키보드 입력을 구현해보겠습니다.

 

if(m_Keyboard.GetKeyState(DIK_ENTER)) { // 엔터 키를 눌렀을 경우

  ComputeData(); // 타자수를 계산하라고 알림

  m_Keyboard.SetLockState(DIK_ENTER,TRUE); // 엔터 키를 계속 누르면 이 if 문 내용이 작동되는 것을 방지.

 // 다시 엔터키를 떼었다가 눌러야지 잠금이 풀림.

}

 

그리고, 다음으로는 일반 게임에서 사용되는 앉았다, 일어나는 키를 구현해보겠습니다.

if(m_Keyboard.GetKeyState(DIK_INSERT)) { // Insert 키를 눌렀을 경우

  SitDown(); // 앉으라는 함수

  m_Keyboard.SetLockState(DIK_INSERT,TRUE); // Insert 키를 계속 누르면 이 if 문 내용이 작동되는 것을 방지.

 // 다시 Insert 키를 떼었다가 눌러야지 잠금이 풀림.

}

 

 - 마우스 -

다음으로는 FPS 게임에서 마우스가 보이지 않고, 항상 가운데에 위치하는 것을 구현해보겠습니다.

그리고, 키보드를 누르고 있으면 계속 반응이 되지 않게, 키보드 잠금을 해보겠습니다.

SetCurVisible(FALSE); // 보이지 않게 요청함.

SetCurPos(400,300); // 800X600 화면에서는 400, 300 위치가 가운데 이다.

if(m_Mouse.GetKeyState(0)) { // 마우스 왼쪽 버튼을 눌렀을 경우

  Attack();

  m_Mouse.SetLockState(0,TRUE); // 마우스 왼쪽 키를 계속 누르면 이 if 문 내용이 작동되는 것을 방지.

 // 다시 마우스 왼쪽 키를 떼었다가 눌러야지 잠금이 풀림.

}

 

이상으로 햄 엔진을 이용한 간단한 마우스/키보드 입력 처리를 해보았습니다.

 

Thanks for reading this lecture.

?

  1. 다른 컴퓨터에서 자신에 케릭터 키우기

    Date2005.08.13 Category언어/기타 By게임시작 Views1278
    Read More
  2. 게이지바 만들기 ( HP, MP, EXP 가로형)

    Date2005.08.13 CategoryRPG Maker ByCC Views2717
    Read More
  3. 인터넷으로 케릭터제작하기[2번에있는거펌]

    Date2005.08.13 Category언어/기타 By사토루 Views1539
    Read More
  4. [RPG2000,2003]게이지쉽게 만드는법

    Date2005.08.12 CategoryRPG Maker By사토루 Views1679
    Read More
  5. 일단 예제를 만들어보십쇼5칸이내로 가면 죽는 시스템

    Date2005.08.11 Category언어/기타 Byのㅏ②뜨 Views350
    Read More
  6. 아주~~아주~~(커 치킨;;)쉬운 액션알피지배우기

    Date2005.08.11 CategoryRPG Maker By사토루 Views1712
    Read More
  7. 지뢰 만들기

    Date2005.08.10 Category언어/기타 By※TheWow※ Views818
    Read More
  8. 겁나게~~(매우 고추장)쉬운 자동회복

    Date2005.08.10 CategoryRPG Maker By사토루 Views788
    Read More
  9. 격투내기 시스템을 만들어보자 !!

    Date2005.08.10 CategoryRPG Maker By루솔리티 Views965
    Read More
  10. 스위치 그들은 무엇이란 말인가

    Date2005.08.09 Category언어/기타 By사토루 Views667
    Read More
  11. RPG게임만들때 필요한 [ Tip ]

    Date2005.08.08 CategoryRPG Maker By사토루 Views1275
    Read More
  12. RPG테스트 플레이 할때 [ Tip ]

    Date2005.08.08 CategoryRPG Maker By사토루 Views431
    Read More
  13. 게이지바 공식입니다

    Date2005.08.08 CategoryRPG Maker ByCC Views1610
    Read More
  14. RPG게임에 필요한 기호

    Date2005.08.08 CategoryRPG Maker By사토루 Views904
    Read More
  15. 글씨에 색깔을 넣어보자

    Date2005.08.07 Category언어/기타 By사토루 Views1035
    Read More
  16. 여러가지 문자나타내기,테스트 플레이 팁!!!

    Date2005.08.07 Category언어/기타 By혼돈의하늘32 Views415
    Read More
  17. 문장에 주인공 이름 뜨게 하기

    Date2005.08.07 Category언어/기타 By사토루 Views1289
    Read More
  18. HP 자동으로 치유되기 -액알-

    Date2005.08.07 Category언어/기타 By카르니카 Views421
    Read More
  19. Ham Engine Library : 키보드 입력과 마우스 입력 처리

    Date2005.08.03 Category언어/기타 By하앙e Views1017
    Read More
  20. 간단한 점프를 설정해볼까 ?

    Date2005.08.02 Category언어/기타 By다크세이버™ Views977
    Read More
Board Pagination Prev 1 ... 41 42 43 44 45 46 47 48 49 50 51 Next
/ 51






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

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