조회 수 1145 추천 수 8 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부 수정 삭제


여러가지 만지다가 완벽하게 터득한 스킬입니다.
상당히 유용하게 쓰일것입니다.

윈도우란?
윈도우98, 윈도우Xp 할때 보면 전부다 '윈도우'란 말을 사용합니다.
왜냐하면 윈도우(창)로 이루어진 시스템이니까요.

제가 강의 하려고 하는건, 이러한 윈도우가 아니라, RPGXP에서
나오는 윈도우 입니다. 게임을 실행하고 X버튼을 눌러보세요.
윈도우가 뜨죠?

이러한 윈도우드를 만들겁니다.
몇가지 변수나, 좌표개념만 알면 간단하게 만들어 낼수 있습니다.


일단 기본적인 예를 들어보겠습니다.

class Window_Practice < Window_Base
  def initialize
    super(0, 0, 128, 128)
  end
end

제가 만든 '정사각형'윈도우 입니다.
이것을 사용해서 강의 하겠습니다.



모든 윈도우의 슈퍼클래스는 Window_Base 입니다.

class Window_Steps < Window_Base

여기서 < 를 해석하면 '右가 左 초과'가 되는데, 이것처럼, 오른쪽이 더 크다라는
의미입니다. 그래서 오른쪽이 슈퍼 클래스 자리가 되는것입니다.



이젠 뭘 해야할까요? 그렇습니다. 윈도우를 만들어야 합니다.

  def initialize
    super(0, 0, 128, 128)
  end

Window_Base에 가보시면 알겠지만, Window_Base에서 initialize라는
메소드의 정의를 모두 해줬기 때문에, 우린 여기다가 대입만 하면 됩니다.
def는 메소드란 뜻입니다.



super()

이 부분에서 윈도우의 크기가 정해집니다. (a, b, c, d)라고 할때,
a = x좌표(이건 배치에서 다룰거니, 0으로 해두세요.)
b = y좌표(a와 마찬가지)
c = 가로
d = 세로
입니다. 어차피 배치에서는 (0, 0) 일때를 생각하니, a와 b 부분은 0으로 해두세요.
안그러면 배치에서 위치한 값+a에서 정한 값이 x가 됩니다. 그러면 너무 복잡하거든요.
그리고 c와 d는 필수로 해야합니다. 이게 0이면 윈도우가 아예 없는것입니다.



별로 필요가 없을지도 모르지만, 일단 이 initialize의 원리를 설명하도록 하겠습니다.
위에서 말했듯이, initialize라는 메소드는 Window_Base에서 미리 설정해놨기 때문에,
우린 이걸 간편하게 사용할수 있습니다.
일단 Window_Base에서 initialize 메소드를 어떻게 설정했는지 보도록 합시다.

  def initialize(x, y, width, height)
    super()
    @windowskin_name = $game_system.windowskin_name
    self.windowskin = RPG::Cache.windowskin(@windowskin_name)
    self.x = x
    self.y = y
    self.width = width
    self.height = height
    self.z = 100
    Font.default_size = 20
    Font.default_name = ["굴림체","고딕체"]
  end

2째줄 까지는 다 아시겠죠?
그리고 3~4째줄은, 윈도우의 스킨을 정하는 곳입니다. $game_system.windowskin_name
이란것은 데이터 베이스의 '설정'탭에서 설정해 놓은 윈도우 스킨입니다.
이렇게 정하는것 외에도, "graphics/windowskin/001-....."과 같은 방식으로 하는게
있는데, 그냥 데이터 베이스에서 바꾸십시오.
4번째 줄은 3째줄에서 정해놓은 변수를 실제 스프라이트로 옮기는 것입니다(Cache).

그리고 5~8째 줄은 변수의 정의 입니다.
첫째줄에 있는 네가지 변수가 뭘 의미하는지를 정하는 것이지요. self.x 같은것을
프로퍼티라고 하는데, '이러한 메소드는 없지 않나?'라고 물으면 '있으니까!"라고
대답할것입니다. 그렇습니다. 이건 그냥 있기 때문에 사용하는 것입니다.
왜 있냐고요? 창조도시에 '창'자가 들어가있는 원리와 같습니다. 있으니까 있는거죠.
깊게 파고들면 복잡하니, 그냥 제쳐둡시다.

Font는 처음 한국에 RXP가 들어왔을때 부터 RXP를 사용했다면
전부다 아실겁니다. 쉽게 말해 폰트를 설정하는 것이지요. 이게 없다면 글씨가
보이질 않습니다. 이건 3탄에 소개하겠습니다.




여기 까지 하셨으면 자기가 원하는 크기의 윈도우를 마음대로
만드실수 있습니다. 간단하죠?

글을 짧게 쓰려다가 결국엔 길게 썼네요.....
너무 길면 사람들이 안보는것 같아서...




※주위 : initialize는 원래 윈도우용 메소드가 아닙니다. 슈퍼 클래스에서 기본을
정의해두고, 서브 클래스에서 바꿔가며 사용하도록 만든 것이지요.
?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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