조회 수 1050 추천 수 1 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

RPG2K엔 없는 RPGXP의 빡세게 치명적인 단점이 있다.


x와 y에 대한 것이다-_-


일단


  def move_down(turn_enabled = true)
    # 아래를 향한다
    if turn_enabled
      turn_down
    end
    # 통행 가능한 경우
    if passable?(@x, @y, 2)
      # 아래를 향한다
      turn_down
      # 좌표를 갱신
      @y += 1
      # 보수 증가
      increase_steps
    # 통행 불가능한 경우
    else
      # 접촉 이벤트의 기동 판정
      check_event_trigger_touch(@x, @y+1)
    end
  end


이 스크립트를 보자


저기 굵은 글씨를 주목할 필요가 있다


move_down은 한번 실행하면 반복적으로 실행해서 y를 계속 다운시킨다.


엔터브레인 스크립터 누구냐?


뭐 이렇게 짜는 지 참 ㄱ-


저게 무슨 문제가 있냐? 하면 액알 같은거 만들때입니다.


원거리 공격 같은걸 만들때 실제적으론 마주치지 않았는데 이동중인 애는 x값이나 y값이 조낸 비정상적입니다.


두 칸이 가로로 있다고 가정할때  주인공이 왼쪽 칸에서 오른쪽칸으로 반 이동하는 중이라면


주인공의 x값은 0이나 1이어야 정상이죠?


하지만 x값이 약 16정도가 됩니다.


얼마나 심각한지 아시겠음?[..]


그래서 마주쳤는데도 그냥 지나가 엉뚱한데서 히트판정이 나는 개안습의 상황이 연출되는 것입니다.


근본적인 문제라고 생각-_-


이 문제로 인해 문제가 생기면 진짜


혈압이 짝짝 오릅니다


진짜 누가 이렇게 만들었냐[..]


x와 y를 좋게 만들러면 이 시스템을 갈아엎어야 하는데


존내 복잡할 뿐더러 제게 그런 실력이 없습니다.


방법은 저 스크립트에 휘둘리지 않는 x와 y를 만드는 것.


그 x와 y를 orig_x, orig_y로 합시다.


왜냐고? orig=original=오리지날=원형


...넘어가죠[..]


Game_Character 1 부분에서
  attr_reader   :orig_x                   # 맵 X 좌표 (Moving중에도 변하지 않음)
  attr_reader   :orig_y                   # 맵 Y 좌표 (Moving중에도 변하지 않음)


를 붙입시다.


저게 뭐냐?


인스턴스 변수는 클레스 안에서만 쓸 수 있는 폐쇠적인(?) 변수입니다.


하지만 저렇게 해놓으면


만일 class 돌날라봤자 안에 인스턴스 술을열어볼래가 있으면


돌날라봤자 안에서만 @술을열어볼래 를 쓸 수 있습니다만


만일


  attr_reader   :술을열어볼래


또는


  attr_accessor   :술을열어볼래


를 위에 단 후에


댈러맨디 = 돌날라봤자.new


댈러맨디.술을열어볼래


 


를 통해 인스턴스변수를 쓸 수 있습니다-_-;;


 


Q:attr_reader와 attr_accessor의 차이는 대체 뭡니까?


A:내가 묻고 싶은 말입니다 ㅠㅠ 대체 차이가 뭡니까 ㅠㅠ


 


어쨋든 위의 저걸 붙이구요


 


  def original_xy_take
    unless moving?
      @orig_x = @x
      @orig_y = @y
    end
  end


 


붙이는 법은 Game_Character 1의 구석진 곳에 쳐넣으면 됩니다.


대충 잘 붙이시리라 믿고


@x와 @orig_x는 같고


@y와 @orig_y는 같게 하는겁니다.


그러면 그게 그거 아냐? 할 수 있습니다.
unless moving?가 그에 대한 답.


moving?이 뭘 뜻하는지는 다 아시죠? XP의 x와 y가 이상해지는 문제는 이동중일때만 해당됩니다.


unless는 if의 반대. 그니까 이동중이 아닐때만 x와 y를 이어받는


그러므로 RPG2K의 x,y처럼 제구실을 할 수 있게 된다는 거죠.


Game_Character 2에 def update가 있죠?


그 안 어딘가에다 original_xy_take를 쳐박으세요.


그래야 저 original_xy_take 함수를 실행하죠.(RPG2K의 이벤트 불러오기와 같은 기능)


 


저 orig_x와 orig_y는 마주치기 판정, 액알 등에서 문제가 발생하지 않고 잘 굴러가게 해줄 겁니다.


그럼 ㅅㄱㅎㅅㅇ 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
1004 RPG Maker 물체 밀어서 움직이는 이벤트 조금 더 쉽게 하는 법 zero? 2018.01.02 644
1003 언어/기타 [마지막 3명 모집] [취업연계무료교육] VR/AR 게임 콘텐츠 전문가 양성 과정 교육생 모집 file 황금상자 2017.07.14 702
1002 RPG Maker rpg vxa 로 겜만들때 데미지 설정 공식[링크] 준E 2017.06.08 740
1001 RPG Maker [꿀팁] 간단하게 만들 수 있는 실시간 전투 시스템 1 file 준E 2017.03.31 2019
1000 언어/기타 JSON parser 변환데이터 저장시 생기는 Object Too Deep 해결하기 title: 댓글러lklslel 2016.12.24 851
999 언어/기타 앙뜨프리너십에서 해커톤 부트캠프 모집중이네요 file 마나님이 2016.11.08 908
998 RPG Maker RPG MV에서 플러그인 오류의 원인에 대하여 1 title: 댓글러lklslel 2016.07.08 2359
997 RPG Maker RPG MV 게임 도중에 윈도우 스킨 파일 자체를 통째로 바꿔버리는 방법 (출처: HIME) 최저 2016.07.08 1627
996 언어/기타 게임의 버전을 짜 보자! - 유의적 버전 2.0.0 Yanggaeng 2016.06.07 1123
995 RPG Maker 텍스트 대화 도중 메뉴 여는 방법을 알아냈습니다! 2 file 정궈니 2016.03.12 2938
994 RPG Maker rpgmv 마우스 지원과 터치 지원이 되니. 2 팡소리 2015.10.25 1011
993 RPG Maker RPG Maker MV 와 AJAX를 이용한 웹통신 관련 영상. 2 HT9MAN 2015.10.25 2246
992 언어/기타 RPG게임 뻔한요소들. 8 title: 천무천무 2015.10.05 1644
991 언어/기타 자바스크립트와 관련해서 참고할 만한 사이트들 3 MARCO 2015.10.04 921
990 언어/기타 꿀잼이군요! 3 사람님[대회참가] 2015.05.20 873
989 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 title: 자게이하앵 2015.04.06 1833
988 RPG Maker [RPG2000/3 팁] 간편한 이벤트 단축키 1 file title: 자게이하앵 2015.04.05 748
987 언어/기타 [강의링크] 대비법칙-색상대비-밀당의 재미 약한 반대색 설계 title: 천무천무 2015.04.02 636
986 언어/기타 오다 주웠습니다. 9 사람님[대회참가] 2015.03.30 917
985 언어/기타 무료 이미지 사이트 Pixabay! 9 file 나작소 2015.03.28 909
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(김원배) | 사신지(김병국)