질문과 답변

Extra Form

제목 그대로입니다 .

제가 아오오니 게임을 만들다가

탈출방법을 찾아내서 파티원들이

쫓아오게 하고싶은데 . .

안되나요 ?

Who's Spirit

?


만들다 보니 지겨워..

Comment '3'
  • ?
    천음술사 2011.01.13 14:03

    '기차놀이 스크립트' 를 이용하면 됩니다.

    스크립트에 '기차' 검색하고 찾아보세여

  • ?
    나방's 2011.01.13 14:48

    #============================================================================== 
    # ■ Member_Train 
    #------------------------------------------------------------------------------ 
    #  동료를 기차처럼 나란히 따라오게 만드는 클레스입니다. 
    #==============================================================================

    module Train_Actor

    # ●투명상태용 스윗치 설정 
    # true 라면 스윗치 제어를 실시한다 
    # TRANSPARENT_SWITCH = true 
    TRANSPARENT_SWITCH = true

    # ●투명상태용 스윗치 번호 
    # TRANSPARENT_SWITCH 가 true 로 , 이 번호의 스윗치가 ON라면 투명하게 된다 
    TRANSPARENT_SWITCHES_INDEX = 100

    # ●엑터의 최대수 
    # 장래적으로 많은 사람 파티를 생기게 되면… 
    TRAIN_ACTOR_SIZE_MAX = 7

    # 정수 
    #Input::DOWN = 2 
    #Input::LEFT = 4 
    #Input::RIGHT = 6 
    #Input::UP = 8 
    DOWN_LEFT = 1 
    DOWN_RIGHT = 3 
    UP_LEFT = 7 
    UP_RIGHT = 9 
    JUMP = 5

    class Game_Party_Actor < Game_Character 
    def initialize 
    super() 
    @through = true 
    end 
    def setup(actor) 
    # 캐릭터의 파일명과 색상을 설정 
    if actor != nil 
    @character_name = actor.character_name 
    @character_hue = actor.character_hue 
    else 
    @character_name = "" 
    @character_hue = 0 
    end 
    # 불투명도와 합성 방법을 초기화 
    @opacity = 255 
    @blend_type = 0 
    end 
    def screen_z(height = 0) 
    if $game_player.x == @x and $game_player.y == @y 
    return $game_player.screen_z(height) - 1 
    end 
    super(height) 
    end 
    #-------------------------------------------------------------------------- 
    # ● 아래에 이동 
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그 
    #-------------------------------------------------------------------------- 
    def move_down(turn_enabled = true) 
    # 아래를 향한다 
    if turn_enabled 
    turn_down 
    end 
    # 통행 가능한 경우 
    if passable?(@x, @y, Input::DOWN) 
    # 아래를 향한다 
    turn_down 
    # 좌표를 갱신 
    @y += 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 왼쪽으로 이동 
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그 
    #-------------------------------------------------------------------------- 
    def move_left(turn_enabled = true) 
    # 왼쪽을 향한다 
    if turn_enabled 
    turn_left 
    end 
    # 통행 가능한 경우 
    if passable?(@x, @y, Input::LEFT) 
    # 왼쪽을 향한다 
    turn_left 
    # 좌표를 갱신 
    @x -= 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 오른쪽으로 이동 
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그 
    #-------------------------------------------------------------------------- 
    def move_right(turn_enabled = true) 
    # 오른쪽을 향한다 
    if turn_enabled 
    turn_right 
    end 
    # 통행 가능한 경우 
    if passable?(@x, @y, Input::RIGHT) 
    # 오른쪽을 향한다 
    turn_right 
    # 좌표를 갱신 
    @x += 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 위에 이동 
    # turn_enabled : 그 자리에서의 향해 변경을 허가하는 플래그 
    #-------------------------------------------------------------------------- 
    def move_up(turn_enabled = true) 
    # 위를 향한다 
    if turn_enabled 
    turn_up 
    end 
    # 통행 가능한 경우 
    if passable?(@x, @y, Input::UP) 
    # 위를 향한다 
    turn_up 
    # 좌표를 갱신 
    @y -= 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 좌하에 이동 
    #-------------------------------------------------------------------------- 
    def move_lower_left 
    # 방향 고정이 아닌 경우 
    unless @direction_fix 
    # 오른쪽 방향이었던 경우는 왼쪽을 , 오름새였던 경우는 아래를 향한다 
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction) 
    end 
    # 하→왼쪽 , 좌→하의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or 
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) 
    # 좌표를 갱신 
    @x -= 1 
    @y += 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 우하에 이동 
    #-------------------------------------------------------------------------- 
    def move_lower_right 
    # 방향 고정이 아닌 경우 
    unless @direction_fix 
    # 좌향이었던 경우는 오른쪽을 , 오름새였던 경우는 아래를 향한다 
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction) 
    end 
    # 하→오른쪽 , 우→하의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or 
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) 
    # 좌표를 갱신 
    @x += 1 
    @y += 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 좌상에 이동 
    #-------------------------------------------------------------------------- 
    def move_upper_left 
    # 방향 고정이 아닌 경우 
    unless @direction_fix 
    # 오른쪽 방향이었던 경우는 왼쪽을 , 하향이었던 경우는 위를 향한다 
    @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction) 
    end 
    # 상→왼쪽 , 좌→상의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or 
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) 
    # 좌표를 갱신 
    @x -= 1 
    @y -= 1 
    end 
    end 
    #-------------------------------------------------------------------------- 
    # ● 우상에 이동 
    #-------------------------------------------------------------------------- 
    def move_upper_right 
    # 방향 고정이 아닌 경우 
    unless @direction_fix 
    # 좌향이었던 경우는 오른쪽을 , 하향이었던 경우는 위를 향한다 
    @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction) 
    end 
    # 상→오른쪽 , 우→상의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or 
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) 
    # 좌표를 갱신 
    @x += 1 
    @y -= 1 
    end 
    end

    attr_writer :move_speed 
    attr_writer :step_anime 
    end

    module Spriteset_Map_Module 
    def setup_actor_character_sprites? 
    return @setup_actor_character_sprites_flag != nil 
    end 
    def setup_actor_character_sprites(characters) 
    if !setup_actor_character_sprites? 
    index_game_player = 0 
    @character_sprites.each_index do |i| 
    if @character_sprites[i].character.instance_of?(Game_Player) 
    index_game_player = i 
    break 
    end 
    end 
    for character in characters.reverse 
    @character_sprites.unshift( 
    Sprite_Character.new(@viewport1, character) 

    end 
    @setup_actor_character_sprites_flag = true 
    end 
    end 
    end

    module Scene_Map_Module 
    def setup_actor_character_sprites(characters) 
    @spriteset.setup_actor_character_sprites(characters) 
    end 
    end

    module Game_Party_Module 
    def set_transparent_actors(transparent) 
    @transparent = transparent 
    end 
    def setup_actor_character_sprites 
    if @characters == nil 
    @characters = [] 
    for i in 1 ... TRAIN_ACTOR_SIZE_MAX 
    @characters.push(Game_Party_Actor.new) 
    end 
    end 
    for i in 1 ... TRAIN_ACTOR_SIZE_MAX 
    @characters[i - 1].setup(actors[i]) 
    end 
    if $scene.class.method_defined?('setup_actor_character_sprites') 
    $scene.setup_actor_character_sprites(@characters) 
    end 
    end 
    def update_party_actors 
    setup_actor_character_sprites 
    transparent = $game_player.transparent 
    if transparent == false 
    if TRANSPARENT_SWITCH 
    transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX] 
    end 
    end 
    for character in @characters 
    character.transparent = transparent 
    character.move_speed = $game_player.move_speed 
    character.step_anime = $game_player.step_anime 
    character.update 
    end 
    end 
    def moveto_party_actors( x, y ) 
    setup_actor_character_sprites 
    for character in @characters 
    character.moveto( x, y ) 
    end 
    if @move_list == nil 
    @move_list = [] 
    end 
    move_list_setup 
    end 
    def move_party_actors 
    if @move_list == nil 
    @move_list = [] 
    move_list_setup 
    end 
    @move_list.each_index do |i| 
    if @characters[i] != nil 
    case @move_list[i].type 
    when Input::DOWN 
    @characters[i].move_down(@move_list[i].args[0]) 
    when Input::LEFT 
    @characters[i].move_left(@move_list[i].args[0]) 
    when Input::RIGHT 
    @characters[i].move_right(@move_list[i].args[0]) 
    when Input::UP 
    @characters[i].move_up(@move_list[i].args[0]) 
    when DOWN_LEFT 
    @characters[i].move_lower_left 
    when DOWN_RIGHT 
    @characters[i].move_lower_right 
    when UP_LEFT 
    @characters[i].move_upper_left 
    when UP_RIGHT 
    @characters[i].move_upper_right 
    when JUMP 
    @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1]) 
    end 
    end 
    end 
    end 
    class Move_List_Element 
    def initialize(type,args) 
    @type = type 
    @args = args 
    end 
    def type() return @type end 
    def args() return @args end 
    end 
    def move_list_setup 
    for i in 0 .. TRAIN_ACTOR_SIZE_MAX 
    @move_list[i] = nil 
    end 
    end 
    def add_move_list(type,*args) 
    @move_list.unshift(Move_List_Element.new(type,args)).pop 
    end 
    def move_down_party_actors(turn_enabled = true) 
    move_party_actors 
    add_move_list(Input::DOWN,turn_enabled) 
    end 
    def move_left_party_actors(turn_enabled = true) 
    move_party_actors 
    add_move_list(Input::LEFT,turn_enabled) 
    end 
    def move_right_party_actors(turn_enabled = true) 
    move_party_actors 
    add_move_list(Input::RIGHT,turn_enabled) 
    end 
    def move_up_party_actors(turn_enabled = true) 
    move_party_actors 
    add_move_list(Input::UP,turn_enabled) 
    end 
    def move_lower_left_party_actors 
    move_party_actors 
    add_move_list(DOWN_LEFT) 
    end 
    def move_lower_right_party_actors 
    move_party_actors 
    add_move_list(DOWN_RIGHT) 
    end 
    def move_upper_left_party_actors 
    move_party_actors 
    add_move_list(UP_LEFT) 
    end 
    def move_upper_right_party_actors 
    move_party_actors 
    add_move_list(UP_RIGHT) 
    end 
    def jump_party_actors(x_plus, y_plus) 
    move_party_actors 
    add_move_list(JUMP,x_plus, y_plus) 
    end 
    end

    module Game_Player_Module 
    def update 
    $game_party.update_party_actors 
    super 
    end 
    def moveto( x, y ) 
    $game_party.moveto_party_actors( x, y ) 
    super( x, y ) 
    end 
    def move_down(turn_enabled = true) 
    if passable?(@x, @y, Input::DOWN) 
    $game_party.move_down_party_actors(turn_enabled) 
    end 
    super(turn_enabled) 
    end 
    def move_left(turn_enabled = true) 
    if passable?(@x, @y, Input::LEFT) 
    $game_party.move_left_party_actors(turn_enabled) 
    end 
    super(turn_enabled) 
    end 
    def move_right(turn_enabled = true) 
    if passable?(@x, @y, Input::RIGHT) 
    $game_party.move_right_party_actors(turn_enabled) 
    end 
    super(turn_enabled) 
    end 
    def move_up(turn_enabled = true) 
    if passable?(@x, @y, Input::UP) 
    $game_party.move_up_party_actors(turn_enabled) 
    end 
    super(turn_enabled) 
    end 
    def move_lower_left 
    # 하→왼쪽 , 좌→하의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or 
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN)) 
    $game_party.move_lower_left_party_actors 
    end 
    super 
    end 
    def move_lower_right 
    # 하→오른쪽 , 우→하의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or 
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN)) 
    $game_party.move_lower_right_party_actors 
    end 
    super 
    end 
    def move_upper_left 
    # 상→왼쪽 , 좌→상의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or 
    (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP)) 
    $game_party.move_upper_left_party_actors 
    end 
    super 
    end 
    def move_upper_right 
    # 상→오른쪽 , 우→상의 어느 쪽인가의 코스가 통행 가능한 경우 
    if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or 
    (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP)) 
    $game_party.move_upper_right_party_actors 
    end 
    super 
    end 
    def jump(x_plus, y_plus) 
    # 새로운 좌표를 계산 
    new_x = @x + x_plus 
    new_y = @y + y_plus 
    # 가산치가 (0,0) 의 경우인가 , 점프처가 통행 가능한 경우 
    if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0) 
    $game_party.jump_party_actors(x_plus, y_plus) 
    end 
    super(x_plus, y_plus) 
    end

    attr_reader :move_speed 
    attr_reader :step_anime 
    end

    end # module Train_Actor

    class Game_Party 
    include Train_Actor::Game_Party_Module 
    end

    class Game_Player 
    include Train_Actor::Game_Player_Module 
    end

    class Spriteset_Map 
    include Train_Actor::Spriteset_Map_Module 
    end

    class Scene_Map 
    include Train_Actor::Scene_Map_Module 
    end


    ㅇㅇ

  • ?
    Spirit 2011.01.21 16:58

    감사합니다 .


List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12389
RMVX 안녕하세요 제가 아직 초보라서 이벤트 처리를 잘 못하는데요... 7 by네바 2011.01.13 981
RMVX RPG VX 스킬 관련 질문... 2 광전사 2011.01.13 1410
기타 네트워크 Rpg 1 file 징요팻 2011.01.13 2563
RMXP 파티원들이 뒤를 기차처럼 졸졸 따라오게 하려면 ? 3 Spirit 2011.01.13 1155
RM2k 흐미 1 알이즈웰 2011.01.13 1852
RMVX 공격 게이지바 같은걸 사용하고싶은데.. 1 에테로피드 2011.01.13 1507
기타 글 받는 프로그램으로 리소스 올리는법좀... 1 게케메쿠루 2011.01.12 1054
RMXP XP 맵칩관련 질문 1 로돌프 2011.01.12 777
RMVX 사이드뷰VER.3.3관련 3 구운사과 2011.01.12 798
RMXP 지현서 1 지현서 2011.01.12 961
RMXP 오니 장소 바뀌어도 따라오기 2 크하하 2011.01.12 1055
RMVX 아이콘세트에 관해 질문 3 엑설런트 2011.01.12 799
RMVX 능력치를 제한하는법 1 크류 2011.01.12 776
RMVX vx캐릭터 이미지 이거 어디에 있죠?.. 2 뿡링 2011.01.12 966
RMXP 스텟을 비례해서 데미지 줄순없나요? 에테로피드 2011.01.12 799
RMVX 표지판 만드는법... 3 광전사 2011.01.12 1223
RMVX 스크립트 조건분기 중 통행관련 조건분기 질문 4 도심 2011.01.11 1023
RMVX rpg vx에 대해... 1 아르케미스트 2011.01.11 700
RMXP 오니 투명이벤트 1 제이슨데롤로 2011.01.11 700
RMVX 정신력 같은 능력치가 떨어지면 죽는 이벤트 2 크류 2011.01.11 633
Board Pagination Prev 1 ... 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 ... 516 Next
/ 516