Project1

标题: 华丽镜头移动脚本 VX化 [打印本页]

作者: 趙雲    时间: 2008-2-28 07:16
标题: 华丽镜头移动脚本 VX化
本帖最后由 雪流星 于 2009-7-15 00:10 编辑
  1. #==============================================================================
  2. # ■ 华丽镜头移动脚本  by 黑暗之神Kaiser.DS
  3. #------------------------------------------------------------------------------
  4. #  1-插入此段脚本到Main前面
  5. #   2-功能
  6. #     a-[镜头平滑移动到事件/角色]
  7. #       在事件里的[设置移动路线]里选择需要镜头转向的角色输入脚本kds即可
  8. #     b-[镜头跟随事件]
  9. #       在事件里的[设置移动路线]选择好需要跟随的事件后输入脚本kds_move_start开
  10. #       始跟随,当不想跟随时再输入kds_move_over
  11. #==============================================================================
  12. class Game_Map
  13.   attr_accessor   :display_x                # 显示 X 坐标 * 256
  14.   attr_accessor   :display_y                # 显示 Y 坐标 * 256
  15. end
  16. $平滑移动 = nil
  17. class Scene_Map
  18.   alias kds_update update
  19.   def update
  20.     kds_update
  21.     if $平滑移动 != nil
  22.       cen_x = Game_Character::CENTER_X
  23.       cen_y = Game_Character::CENTER_Y
  24.       max_x = ($game_map.width - 17) * 256
  25.       max_y = ($game_map.height - 13) * 256
  26.       display_x = [0, [$平滑移动.x * 256 - cen_x, max_x].min].max
  27.       display_y = [0, [$平滑移动.y * 256 - cen_y, max_y].min].max
  28.       if $game_map.display_x != display_x
  29.          if ($game_map.display_x - display_x).abs < 22
  30.            $game_map.display_x = display_x
  31.          else
  32.            $game_map.display_x += (display_x - $平滑移动.old_display_x)/32
  33.          end
  34.       end
  35.       if $game_map.display_y != display_y
  36.          if ($game_map.display_y - display_y).abs <= 22
  37.             $game_map.display_y = display_y
  38.          else
  39.             $game_map.display_y += (display_y - $平滑移动.old_display_y)/32
  40.          end
  41.       end
  42.       if $game_map.display_x == display_x  and $game_map.display_y == display_y
  43.          $平滑移动.center($平滑移动.x, $平滑移动.y)
  44.          $平滑移动 = nil
  45.       end
  46.       return
  47.     end
  48.   end  
  49. end
  50. class Game_Character
  51.   CENTER_X = (544 / 2 - 16) * 8     # 画面中央的 X 坐标 * 8
  52.   CENTER_Y = (416 / 2 - 16) * 8     # 画面中央的 Y 坐标 * 8
  53.   attr_accessor :old_display_x
  54.   attr_accessor :old_display_y
  55.   attr_accessor :kds_move
  56.   def center(x, y)
  57.     max_x = ($game_map.width - 17) * 256
  58.     max_y = ($game_map.height - 13) * 256
  59.     $game_map.display_x = [0, [x * 256 - CENTER_X, max_x].min].max
  60.     $game_map.display_y = [0, [y * 256 - CENTER_Y, max_y].min].max
  61.   end
  62.   def kds
  63.     @old_display_x = $game_map.display_x
  64.     @old_display_y = $game_map.display_y
  65.     case @id
  66.     when 0
  67.       $平滑移动 = $game_player
  68.     else
  69.       $平滑移动 = $game_map.events[@id]
  70.     end
  71.   end
  72.   def kds_move_start
  73.       @kds_move = ""
  74.   end
  75.   def kds_move_over
  76.       @kds_move = nil
  77.   end
  78.   alias kds_update update
  79.   def update
  80.     last_real_x = @real_x
  81.     last_real_y = @real_y
  82.     kds_update
  83.     if @kds_move != nil
  84.      if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  85.        $game_map.scroll_down(@real_y - last_real_y)
  86.      end
  87.      if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  88.        $game_map.scroll_left(last_real_x - @real_x)
  89.      end
  90.      if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  91.       $game_map.scroll_right(@real_x - last_real_x)
  92.      end
  93.      if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  94.        $game_map.scroll_up(last_real_y - @real_y)
  95.      end
  96.     end
  97.   end  
  98. end
  99. #==============================================================================
复制代码


适用默认分辨率。

范例,进入游戏后和左边的女生对话
http://rpg.blue/upload_program/f ... 范例_84746575.rar
作者: 光郎    时间: 2008-2-28 15:37
恩…平滑的电影视角么?不知道能否添加动态模糊特效呢?Bitmap应该有的~楼主加油啊。
作者: Beside    时间: 2008-2-28 18:39
支持原分辨率...我用又要改坐标
作者: 八云紫    时间: 2008-2-28 20:40
好东西哦,收下了。正在为地图卷动发愁呢,谢谢趙雲大人。
作者: 趙雲    时间: 2008-2-28 23:15
改坐标又不麻烦,我是先写640然后改成544的。
作者: 火鸡三毛老大    时间: 2008-2-29 01:39
以下引用趙雲于2008-2-28 15:15:40的发言:

改坐标又不麻烦,我是先写640然后改成544的。

9494   一点都不难...有的RM基础的一般都会.......{/gg}
作者: 3121362    时间: 2008-2-29 03:25
很棒 lz加油 谢谢收下咯!~
作者: 风雪优游    时间: 2008-2-29 05:11
不错,早点出来就更好了~

在事件里的[设置移动路线]里选择需要镜头转向的角色输入脚本kds

第一个功能测试的时候怎么无效呢?
作者: 3121362    时间: 2008-2-29 05:15
平移我会使用 但是不知道镜头一直跟随的事件怎么设置?  我设置的对吗?

作者: 趙雲    时间: 2008-2-29 09:15
以下引用风雪优游于2008-2-28 21:11:40的发言:

不错,早点出来就更好了~


在事件里的[设置移动路线]里选择需要镜头转向的角色输入脚本kds

第一个功能测试的时候怎么无效呢?


[本贴由作者于 2008-2-28 21:19:21 最后编辑]


测试有效,悠游是不是没设置好呢
以下引用3121362于2008-2-28 21:15:20的发言:

平移我会使用 但是不知道镜头一直跟随的事件怎么设置?  我设置的对吗?

嗯,就是这样
最好在之后加上
设置移动路线,角色
脚本 kds

切换回来
作者: 3121362    时间: 2008-3-1 02:07
如果按照您说的 镜头会来回的 颠倒 镜头来回的切换  没有“等待移动结束”就是不行啊!~
    如果可以的话 希望 赵云 大哥能帮忙做个范例 (a b 两个功能)
  实在是冒昧了~~!
作者: 趙雲    时间: 2008-3-1 04:44
不大理解楼上的意思,就两种功能,范例在顶楼了。
作者: 3121362    时间: 2008-3-3 01:09
您给的范例 我打开时显示“找不的文字” 可能您给我的是日版的吧      能给份汉化的吗?
   我是在是迫切需要  不好意思了 又要麻烦您了 唉 新手的烦恼啊!~
作者: 巫术    时间: 2008-3-3 02:51
同楼上找不到字体...
作者: 风雪优游    时间: 2008-3-4 23:52
设置移动路线,事件XXX
脚本 kds

无法把镜头移动到事件那里哦
作者: 风雪优游    时间: 2008-3-4 23:56
发布完成,+2VIP
作者: 一个    时间: 2008-7-4 22:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: 白字老先生    时间: 2008-7-28 06:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: wuzhijun    时间: 2008-7-29 18:15
看不懂啊,我真是菜到不行

作者: 零月霜殇    时间: 2008-8-2 06:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: zianyygy12    时间: 2008-9-9 10:29
顶哦·· [LINE]1,#dddddd[/LINE]版主对此帖的评论:『请不要灌水』,积分『-5』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
作者: abwhywhy    时间: 2008-9-11 03:48
太正了~謝謝拉~!
作者: drgdrg    时间: 2008-9-11 06:53
为什么打不开范例……

“找不到字体”
作者: 龙轩    时间: 2008-9-12 21:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: chenlin3799    时间: 2008-9-13 21:58
以下引用drgdrg于2008-9-10 22:53:42的发言:

为什么打不开范例……

“找不到字体”

呵呵..刚刚开也遇到这个问题...
不过只要把Main的第7行改成
  1. unless Font.exist?("黑体")
复制代码

就可以了,只不过是字比较细而已,而且范例里面也没有对话的说..
作者: drgdrg    时间: 2008-9-14 00:25
以下引用chenlin3799于2008-9-13 13:58:00的发言:

呵呵..刚刚开也遇到这个问题...
不过只要把Main的第7行改成unless Font.exist?("黑体")

就可以了,只不过是字比较细而已,而且范例里面也没有对话的说..


还是有BUG……

和左下方的大叔说话会出错

还有,镜头怎么移动?随NPC移动那个就是示范了吗?
作者: 莉可    时间: 2008-9-14 00:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: chenlin3799    时间: 2008-9-14 05:22
以下引用drgdrg于2008-9-13 16:25:12的发言:


以下引用chenlin3799于2008-9-13 13:58:00的发言:

呵呵..刚刚开也遇到这个问题...
不过只要把Main的第7行改成unless Font.exist?("黑体")

就可以了,只不过是字比较细而已,而且范例里面也没有对话的说..



还是有BUG……

和左下方的大叔说话会出错

还有,镜头怎么移动?随NPC移动那个就是示范了吗?

回1:那个应该是SHOP脚本自身的错误吧..我试了下,在与女的对话后(镜头移动后)再跟大叔说话会出现错误提示,然后我又重新玩了一次,没有触发镜头移动,但与大叔对话仍然会出现BUG..
再然后我又复制了范例,把这个脚本删了,然后与大叔对话仍然出现BUG...(而且这个范例好象跟那个大叔没关系吧。。。= =)
所以说这个BUG和该脚本是没有关系的...
回2:请看脚本说明...
作者: drgdrg    时间: 2008-9-14 06:43
以下引用chenlin3799于2008-9-13 21:22:12的发言:

回1:那个应该是SHOP脚本自身的错误吧..我试了下,在与女的对话后(镜头移动后)再跟大叔说话会出现错误提示,然后我又重新玩了一次,没有触发镜头移动,但与大叔对话仍然会出现BUG..
再然后我又复制了范例,把这个脚本删了,然后与大叔对话仍然出现BUG...(而且这个范例好象跟那个大叔没关系吧。。。= =)
所以说这个BUG和该脚本是没有关系的...
回2:请看脚本说明...

1.囧……估计因为对大叔无爱关注太少{/cy}{/cy}{/cy}
2.哦,知道了…
其实我的意思是范例工程里面应该要包含脚本的全部功能演示……
作者: 桑田百合    时间: 2009-7-8 10:23
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1