조회 수 868 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
#┌───────────────────────────────────────
#│
#│  TRCS.17
#│  "Game_Character 修正" ver1.00β (2005.11.05 h12)
#│  by NO
#│  http://chobi.net/~no/
#│  
#└───────────────────────────────────────

#┌───────────────────────────────────────
#│β版仕?
#│  ?マップチップ、キャラクタ?との?たり判定を修正します。
#│  ?イベントとの?たり判定部分が未解決です。
#└───────────────────────────────────────


#==============================================================================
# ■ Game_Character
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # ○ オブジェクト初期化
  #--------------------------------------------------------------------------
  def trcs17_initialize initialize
    # キャラクタ?サイズの判定フラグ初期化
    @big = false
    # キャラクタ?グラフィックが表示されているセルの座標
    @x_list = []
    @y_list = []
    # 呼び?す
    trcs17_initialize
  end
  #--------------------------------------------------------------------------
  # ○ キャラクタ?サイズが基準以上か?
  #--------------------------------------------------------------------------
  def big?
    return @big
  end
  #--------------------------------------------------------------------------
  # ○ キャラクタ?グラフィックが表示されているセルの座標
  #--------------------------------------------------------------------------
  def cell_list
    return @x_list, @y_list
  end
  #--------------------------------------------------------------------------
  # ○ 通行可能判定
  #     x : X 座標
  #     y : Y 座標
  #     d : 方向 (0,2,4,6,8)  ※ 0 = 全方向通行不可の場合を判定 (ジャンプ用)
  #--------------------------------------------------------------------------
  alias trcs17_passable? passable?
  def passable?(x, y, d)
    # キャラクタ?ファイル名が定義されている場合
    unless @character_name == ""
      # キャラクタ?グラフィックオブジェクトを定義
      character = RPG::Cache.character(@character_name, @character_hue)
      # 倍率計算
      div_x = character.width / (32 * 4)
      div_y = character.height / (48 * 4)
      div_x = 1 if div_x < 1
      div_y = 1 if div_y < 1
      # x, yともに1倍の場合
      if div_x == 1 and div_y == 1
        # 呼び?す
        return trcs17_passable?(x, y, d)
      else
        # [基準サイズ以上である]をセット
        @big = true
        # [キャラクタ?グラフィックが表示されているセルの座標]の配列
        @x_list = [0]
        @y_list = [0]
        # 現位置において、
        # キャラクタ?グラフィックが表示されている全セルのx座標の算出
        # → グラフィックの幅は左右に等しい (基準の3倍ならば □■□)
        for i in 1..div_x / 2
          @x_list.unshift(-i)  if i == 1 and d != 6 # 本?の座標が移動の邪魔になるため
          @x_list.push(i)      if i == 1 and d != 4 # 本?の座標が移動の邪魔になるため
        end
        # 現位置において、
        # キャラクタ?グラフィックが表示されている全セルのy座標の算出
        # → y座標は?方向(負)に[基準のn倍]
        for i in 1...div_y
          @y_list.unshift(-i) if i == 1 and d != 2 # 本?の座標が移動の邪魔になるため
        end
        # 評?値の初期化
        bool = true
        # 二重ル?プで各座標を渡す
        for i in 0...@x_list.size
          for j in 0...@y_list.size
            x2 = @x_list[i]
            y2 = @y_list[j]
            # 呼び?す & ??値の評?
            # → 一度でもfalseになったら通行不可
            bool &= trcs17_passable?(x + x2, y + y2, d)
          end
        end
        # 評?値を返す
        return bool
      end
    else
      # 呼び?す
      return trcs17_passable?(x, y, d)
    end
  end
end

출처: 게임공작소
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
» RPGXP 스크립트 커다란 그래픽 좁은 길 못지나가는 스크립트 청담 2013.09.24 868 0
47 RPGMV 플러그인 커스텀 숫자 입력 패드 1 file 러닝은빛 2018.10.19 1020 0
46 RPGXP 스크립트 컬러 비트맵 타이틀 스크립트 3  운 2015.01.20 854 1
45 RPGMV 플러그인 컷신 플러그인 스트레이보우 2020.10.30 1945 0
44 RPGXP 스크립트 퀘스트 스크립트 21  운 2013.10.12 3103 2
43 RPGMV 플러그인 퀘스트 시스템 플러그인! Gameus' Quest System 1 file willmv 2015.11.07 1577 0
42 RPGXP 스크립트 퀘스트스크립트 2 1 file A.M.S 2010.10.24 2511 1
41 RPGXP 스크립트 퀘스트스크립트 2 file A.M.S 2010.10.24 2635 1
40 RPGMV 플러그인 크리티컬 데미지 배수 설정 3 file 백난화백 2015.11.01 875 0
39 RPGXP 스크립트 타이틀 로고 띄우기 + 로고 SE 가능(예제있음) 6 데노제 2013.12.13 2393 3
38 RPGXP 스크립트 타이틀 로딩 스크립트  운 2014.12.07 1080 0
37 RPGVX Ace 스크립트 타이틀 메뉴 위치 바꾸기 vx 및 vx ace 여줄가리 2015.09.21 2009 0
36 RPGMV 플러그인 타이틀 스크린 스킵 file 공원소년 2015.11.03 1020 0
35 RPGXP 스크립트 타이틀 스크립트 3  운 2014.12.05 1034 0
34 RPGMV 플러그인 타이틀 커맨드에 '게임종료'를 추가해줍니다. file 파란별빛 2015.10.26 114030 0
33 RPGMV 플러그인 텍스트 입력창(Keyboard Input Dialog) 1 file 러닝은빛 2016.08.09 1427 1
32 RPGVX Ace 스크립트 텍스트 파일생성 1 휴리드 2013.09.30 654 0
31 RPGXP 스크립트 텔레포트 스크립트 1 2013.10.01 896 0
30 RPGXP 스크립트 특정범위내에들어오면이동하기 2 file A.M.S 2010.10.14 3082 0
29 RPGXP 스크립트 특정범위내에들어오면이동하기 file A.M.S 2010.10.14 2343 0
Board Pagination Prev 1 ... 6 7 8 9 10 11 12 13 14 15 Next
/ 15






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

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