设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1264|回复: 4
打印 上一主题 下一主题

跟班的不紧跟着了

 关闭 [复制链接]

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
跳转到指定楼层
1
发表于 2008-6-9 20:00:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
http://rpg.blue/web/htm/news452.htm
这个跟随脚本是4方向的,我动了下成下面的样子
  1. class Game_Character
  2. attr_accessor :move_speed
  3. end

  4. class Game_Map
  5. attr_accessor :oldroute
  6. attr_accessor :oldeventsnums
  7. attr_reader   :map
  8. alias initialize_old initialize
  9. def initialize
  10.    initialize_old
  11.    @oldroute = []
  12.    @oldeventsnums = 0
  13. end
  14. end

  15. class Game_Player < Game_Character
  16. alias update_old update
  17. def update
  18.    last_moving = moving?
  19.    unless moving? or $game_system.map_interpreter.running? or
  20.           @move_route_forcing or $game_temp.message_window_showing
  21.      case Input.dir8
  22.      
  23.     when 2
  24.        if passable?(@x, @y, 2)
  25.          $game_map.oldroute.push([@x,@y,2])
  26.          if $game_map.oldroute.size == $game_party.actors.size
  27.            $game_map.oldroute.shift
  28.          end
  29.        end
  30.        move_down
  31.      
  32.      when 1
  33.       if passable?(@x, @y, 1)
  34.          $game_map.oldroute.push([@x,@y,1])
  35.          if $game_map.oldroute.size == $game_party.actors.size
  36.            $game_map.oldroute.shift
  37.          end
  38.        end
  39.        move_lower_left
  40.        when 7
  41.        if passable?(@x, @y, 7)
  42.          $game_map.oldroute.push([@x,@y,7])
  43.         if $game_map.oldroute.size == $game_party.actors.size
  44.            $game_map.oldroute.shift
  45.          end
  46.        end
  47.        move_upper_left
  48.        when 3
  49.        if passable?(@x, @y, 3)
  50.          $game_map.oldroute.push([@x,@y,3])
  51.          if $game_map.oldroute.size == $game_party.actors.size
  52.           $game_map.oldroute.shift
  53.          end
  54.        end
  55.        move_lower_right
  56.       
  57.      when 4
  58.        if passable?(@x, @y, 4)
  59.          $game_map.oldroute.push([@x,@y,4])
  60.          if $game_map.oldroute.size == $game_party.actors.size
  61.            $game_map.oldroute.shift
  62.          end
  63.        end
  64.        move_left
  65.      
  66.      when 6
  67.        if passable?(@x, @y, 6)
  68.          $game_map.oldroute.push([@x,@y,6])
  69.          if $game_map.oldroute.size == $game_party.actors.size
  70.            $game_map.oldroute.shift
  71.          end
  72.        end
  73.        move_right
  74.      when 8
  75.        if passable?(@x, @y, 8)
  76.          $game_map.oldroute.push([@x,@y,8])
  77.          if $game_map.oldroute.size == $game_party.actors.size
  78.            $game_map.oldroute.shift
  79.          end
  80.        end
  81.        move_up
  82.      end
  83.    
  84.    end
  85.    update_old
  86. end
  87. end

  88. class Interpreter
  89. def command_129
  90.    actor = $game_actors[@parameters[0]]
  91.    if actor != nil
  92.      if @parameters[1] == 0
  93.        if @parameters[2] == 1
  94.          $game_actors[@parameters[0]].setup(@parameters[0])
  95.        end
  96.        $game_party.add_actor(@parameters[0])
  97.        $scene.del_follow
  98.        $scene.follow_system
  99.      else
  100.        $game_party.remove_actor(@parameters[0])
  101.        $scene.del_follow
  102.        $scene.follow_system
  103.      end
  104.    end
  105.    return true
  106. end
  107. end

  108. class Scene_Map
  109. alias main_old main
  110. def main
  111.    @spriteset = Spriteset_Map.new
  112.    if $game_variables[1000] == 0
  113.      follow_system
  114.      $game_variables[1000] = 1
  115.    end
  116.    main_old
  117. end

  118. alias update_old update
  119. def update
  120.    follow_system_update
  121.    update_old
  122. end

  123. alias transfer_player_old transfer_player
  124. def transfer_player
  125.    $game_temp.player_transferring = false
  126.    if $game_map.map_id != $game_temp.player_new_map_id
  127.      del_follow
  128.      $game_map.setup($game_temp.player_new_map_id)
  129.    end
  130.    $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)
  131.    follow_system
  132.    transfer_player_old
  133. end

  134. def follow_system
  135.    $game_map.oldeventsnums = $game_map.events.size
  136.    if $game_party.actors.size>=2
  137.      for i in 2..$game_party.actors.size
  138.        # 为事件加上名字考虑做srpg用
  139.        name = "我军,"+i.to_s
  140.        character_name = $game_party.actors[i-1].character_name
  141.        party_event($game_player.x,$game_player.y,name,character_name)
  142.        $game_map.oldroute.push([$game_player.x,$game_player.y,$game_player.direction])
  143.      end
  144.    end
  145. end

  146. def del_follow
  147.    $game_map.oldroute.clear
  148.    for i in 1..($game_map.events.size-$game_map.oldeventsnums)
  149.      $game_map.events.delete($game_map.oldeventsnums+i)
  150.    end
  151. end

  152. def party_event(x,y,name,character_name)
  153.    $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,produce_party_event(x,y,name,character_name))
  154.    $game_map.map.events[$game_map.events.size] = produce_party_event(x,y,name,character_name)
  155.    @spriteset.dispose
  156.    @spriteset = Spriteset_Map.new
  157. end

  158. def produce_party_event(x,y,name,character_name)
  159.    e = RPG::Event.new(x,y)
  160.    e.id = $game_map.events.size
  161.    e.name = name
  162.    e.pages = [RPG::Event::Page.new]   
  163.    e.pages[0].graphic = RPG::Event::Page::Graphic.new
  164.    e.pages[0].graphic.character_name = character_name   
  165.    e.pages[0].through = true
  166.    return e
  167. end

  168. def follow_system_update
  169.    num = $game_map.oldeventsnums
  170.    n = $game_player.move_speed
  171.    s=$game_map.oldroute.size-1
  172.    if s>=0
  173.      $game_map.events[num+1].move_speed = n
  174.      if $game_map.events[num+1].x>$game_map.oldroute[s][0]
  175.        $game_map.events[num+1].move_left
  176.      elsif $game_map.events[num+1].x<$game_map.oldroute[s][0]
  177.        $game_map.events[num+1].move_right
  178.      elsif $game_map.events[num+1].y>$game_map.oldroute[s][1]
  179.        $game_map.events[num+1].move_up
  180.      elsif $game_map.events[num+1].y<$game_map.oldroute[s][1]
  181.        $game_map.events[num+1].move_down
  182.      end
  183.    end
  184.    if s>=1
  185.      $game_map.events[num+2].move_speed = n
  186.      if $game_map.events[num+2].x>$game_map.oldroute[s-1][0]
  187.        $game_map.events[num+2].move_left
  188.      elsif $game_map.events[num+2].x<$game_map.oldroute[s-1][0]
  189.        $game_map.events[num+2].move_right
  190.      elsif $game_map.events[num+2].y>$game_map.oldroute[s-1][1]
  191.        $game_map.events[num+2].move_up
  192.      elsif $game_map.events[num+2].y<$game_map.oldroute[s-1][1]
  193.        $game_map.events[num+2].move_down
  194.      end
  195.    end
  196.    if s>=2
  197.      $game_map.events[num+3].move_speed = n
  198.      if $game_map.events[num+3].x>$game_map.oldroute[s-2][0]
  199.        $game_map.events[num+3].move_left
  200.      elsif $game_map.events[num+3].x<$game_map.oldroute[s-2][0]
  201.        $game_map.events[num+3].move_right
  202.      elsif $game_map.events[num+3].y>$game_map.oldroute[s-2][1]
  203.        $game_map.events[num+3].move_up
  204.      elsif $game_map.events[num+3].y<$game_map.oldroute[s-2][1]
  205.        $game_map.events[num+3].move_down
  206.      end
  207.    end
  208. end
  209. end
复制代码

4方向的是跟的紧

8方向是实现了,不过人物跟随却不是紧紧跟着了


《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址

Lv1.梦旅人

蚂蚁卡卡

梦石
0
星屑
116
在线时间
66 小时
注册时间
2007-12-16
帖子
3081
2
 楼主| 发表于 2008-6-11 01:24:47 | 只看该作者
大家别害怕 我只是改动了前几行
剩下的我也没动  不知道 怎么弄 高手帮帮我
《隋唐乱》完整解密版点击进入
米兰,让我怎么说离开……

曾经我也是一个有志青年,直到我膝盖中了一箭……

《隋唐乱》博客地址
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-6-11
帖子
25
3
发表于 2008-6-11 02:15:46 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-18
帖子
1423
4
发表于 2008-6-11 07:48:32 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
1 小时
注册时间
2008-1-4
帖子
260
5
发表于 2008-6-11 18:45:32 | 只看该作者
这个效果不是挺好吗
轩辕3里 也是这样啊,角色快了,后面的跟随就被落在远处了....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-8-3 18:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表