幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2975|回复: 11

[RM2K&2K3] 有没有办法固定屏幕

[复制链接]

19

主题

98

帖子

777

积分

⑤进阶

积分
777
发表于 2009-2-25 22:50:38 | 显示全部楼层 |阅读模式
也就是某些时候固定屏幕

不跟随主角移动
回复

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-2-26 00:10:20 | 显示全部楼层
你做个事件呗,换成主角的行走图,主角的图变为空
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

88

主题

4889

帖子

38万

积分

版主

年度最佳拖稿王

Rank: 7Rank: 7Rank: 7

积分
386227

声命组铜赏

QQ
发表于 2009-2-26 00:48:43 | 显示全部楼层
做个事件的图形代替主角 然后主角透明 开穿透 然后设置移动路线
回复 支持 反对

使用道具 举报

19

主题

98

帖子

777

积分

⑤进阶

积分
777
 楼主| 发表于 2009-2-26 12:58:16 | 显示全部楼层

这样的话就好办了咯
主要是玩家控制主角啊!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-2-26 13:17:41 | 显示全部楼层
事件为自动执行
条件分歧方向键上按下
    事件向上移动
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

19

主题

98

帖子

777

积分

⑤进阶

积分
777
 楼主| 发表于 2009-2-26 14:29:43 | 显示全部楼层

这方法。。。。也算吧

有没有修改脚本方面的 因为要经常用到
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-2-26 15:36:53 | 显示全部楼层
加一个开关。。。把case dir4 后面加一个case再来一个变量记录事件号。。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-2-26 15:44:03 | 显示全部楼层
汇报一下,我说的这个方法有待商榷。。。。。改的东西多。。。。。汇报完毕

事件的方法比较好
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

19

主题

98

帖子

777

积分

⑤进阶

积分
777
 楼主| 发表于 2009-2-26 16:01:33 | 显示全部楼层
好吧
我认可了
回复 支持 反对

使用道具 举报

7

主题

111

帖子

908

积分

⑤进阶

积分
908
发表于 2009-2-27 11:17:37 | 显示全部楼层
  作为你上次给我极限脚本的答谢送你一个 华丽的镜头脚本

#   -功能
#     a-[镜头平滑移动到事件/角色]
#       在事件里的[设置移动路线]里选择需要镜头转向的角色输入脚本kds即可
#     b-[镜头跟随事件]
#       在事件里的[设置移动路线]选择好需要跟随的事件后输入脚本kds_move_start开
#       始跟随,当不想跟随时再输入kds_move_over
#==============================================================================
class Game_Map
  attr_accessor   :display_x                # 显示 X 坐标 * 256
  attr_accessor   :display_y                # 显示 Y 坐标 * 256
end
$平滑移动 = nil
class Scene_Map
  alias kds_update update
  def update
    kds_update
    if $平滑移动 != nil
      cen_x = Game_Character::CENTER_X
      cen_y = Game_Character::CENTER_Y
      max_x = ($game_map.width - 17) * 256
      max_y = ($game_map.height - 13) * 256
      display_x = [0, [$平滑移动.x * 256 - cen_x, max_x].min].max
      display_y = [0, [$平滑移动.y * 256 - cen_y, max_y].min].max
      if $game_map.display_x != display_x
         if ($game_map.display_x - display_x).abs < 22
           $game_map.display_x = display_x
         else
           $game_map.display_x += (display_x - $平滑移动.old_display_x)/32
         end
      end
      if $game_map.display_y != display_y
         if ($game_map.display_y - display_y).abs <= 22
            $game_map.display_y = display_y
         else
            $game_map.display_y += (display_y - $平滑移动.old_display_y)/32
         end
      end
      if $game_map.display_x == display_x  and $game_map.display_y == display_y
         $平滑移动.center($平滑移动.x, $平滑移动.y)
         $平滑移动 = nil
      end
      return
    end
  end  
end
class Game_Character
  CENTER_X = (544 / 2 - 16) * 8     # 画面中央的 X 坐标 * 8
  CENTER_Y = (416 / 2 - 16) * 8     # 画面中央的 Y 坐标 * 8
  attr_accessor ld_display_x
  attr_accessor ld_display_y
  attr_accessor :kds_move
  def center(x, y)
    max_x = ($game_map.width - 17) * 256
    max_y = ($game_map.height - 13) * 256
    $game_map.display_x = [0, [x * 256 - CENTER_X, max_x].min].max
    $game_map.display_y = [0, [y * 256 - CENTER_Y, max_y].min].max
  end
  def kds
    @old_display_x = $game_map.display_x
    @old_display_y = $game_map.display_y
    case @id
    when 0
      $平滑移动 = $game_player
    else
      $平滑移动 = $game_map.events[@id]
    end
  end
  def kds_move_start
      @kds_move = ""
  end
  def kds_move_over
      @kds_move = nil
  end
  alias kds_update update
  def update
    last_real_x = @real_x
    last_real_y = @real_y
    kds_update
    if @kds_move != nil
     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
       $game_map.scroll_down(@real_y - last_real_y)
     end
     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
       $game_map.scroll_left(last_real_x - @real_x)
     end
     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
      $game_map.scroll_right(@real_x - last_real_x)
     end
     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
       $game_map.scroll_up(last_real_y - @real_y)
     end
    end
  end  
end
#==============================================================================

测试发现和多人脚本有一点点的冲突=。= 我的那个多人脚本 不过问题不大就是镜头回到主角身上不行 可以用 事件里的镜头移动回去
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-18 20:11 , Processed in 0.036426 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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