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

Project1

 找回密码
 注册会员
搜索
查看: 2945|回复: 7

[已经解决] 关于地图缩放脚本

[复制链接]

Lv2.观梦者

梦石
0
星屑
389
在线时间
52 小时
注册时间
2016-1-6
帖子
31
发表于 2019-2-1 03:13:32 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ZodiacS 于 2019-2-1 03:12 编辑

有一些需要,就按照教程通过dll改了分辨率为1024*768。
但是随之而来的问题就是分辨率变大,角色视野也变得太大,导致一些剧情事件处理的时候容易穿帮……
所以想通过缩放地图来限制主角视野(只放大地图,不放大窗口和菜单)
搜了下本站找到了这个脚本,但是会报错
RUBY 代码复制
  1. #==============================================================================
  2. # ■ RGSS3 マップズーム Ver1.00 by 星潟
  3. # ■ RGSS3 地图缩放 Ver1.00 by 星潟 翻译:戏蹑群星斗
  4. #------------------------------------------------------------------------------
  5. #地图缩放。就是这样。
  6. #由于缩放状态保存的数据将被保留(就是存档会保留缩放)。请注意
  7. #==============================================================================
  8. # 使用事件命令的脚本。
  9. #------------------------------------------------------------------------------
  10. # map_zoom(150)
  11. ## 在这种情况下,它会放大到150%。
  12. #------------------------------------------------------------------------------
  13. # map_zoom(300)
  14. ## 在这种情况下,它会放大到300%。
  15. #------------------------------------------------------------------------------
  16. # map_zoom
  17. ## 在这种情况下,放大解除。
  18. #==============================================================================
  19. # 100未満のズーム(縮小)や2000%を超えるのズームには制限をかけてあります。
  20. # 因此,100是最小值,最大值2000。
  21. #==============================================================================
  22. class Game_System
  23.   attr_accessor :zoom_mode
  24.   #--------------------------------------------------------------------------
  25.   # ズームモード
  26.   #--------------------------------------------------------------------------
  27.   def zoom_mode
  28.     @zoom_mode ||= 150
  29.   end
  30. end
  31. class Spriteset_Map
  32.   #--------------------------------------------------------------------------
  33.   # ビューポートの作成
  34.   #--------------------------------------------------------------------------
  35.   alias create_viewports_zoommap create_viewports
  36.   def create_viewports
  37.     create_viewports_zoommap
  38.     @zoommap = ZoomMap.new(@viewport1,@viewport2)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # 更新処理
  42.   #--------------------------------------------------------------------------
  43.   alias update_zoommap update
  44.   def update
  45.     @zoommap.update
  46.     update_zoommap
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # 解放処理
  50.   #--------------------------------------------------------------------------
  51.   alias dispose_zoommap dispose
  52.   def dispose
  53.     @zoommap.dispose
  54.     dispose_zoommap
  55.   end
  56. end
  57. class ZoomMap < Sprite_Base
  58.   #--------------------------------------------------------------------------
  59.   # 初期化
  60.   #--------------------------------------------------------------------------
  61.   def initialize(v1,v2)
  62.     super(v2)
  63.     @viewport_data = v1
  64.     @zoom_rate = $game_system.zoom_mode
  65.     @zoom_bitmap = nil
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # 解放
  69.   #--------------------------------------------------------------------------
  70.   def dispose
  71.     @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed?
  72.     super
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # 更新処理
  76.   #--------------------------------------------------------------------------
  77.   def update
  78.     self.visible = @zoom_rate != 100
  79.     @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed?
  80.     if $game_system.zoom_mode != 100 or @zoom_rate != 100
  81.       if @zoom_rate != $game_system.zoom_mode
  82.         d = (@zoom_rate - $game_system.zoom_mode).to_i
  83.         case d
  84.         when 0..9;i = 1
  85.         when 10..99;i = 2
  86.         when 100..999;i = 3
  87.         else; i = 4
  88.         end
  89.         @zoom_rate += (@zoom_rate < $game_system.zoom_mode) ? i : -i
  90.       end
  91.       zm = @zoom_rate.to_f / 100
  92.       @viewport_data.z += 10000000
  93.       @zoom_bitmap = Graphics.snap_to_bitmap
  94.       self.bitmap = @zoom_bitmap
  95.       w = self.bitmap.width
  96.       h =self.bitmap.height
  97.       self.ox = [[0,((w * zm / 2) - w / 2) / zm + (($game_player.screen_x - w / 2).to_f)].max,(w * zm - w) / zm].min
  98.       self.oy = [[0,((h * zm / 2) - h / 2) / zm + (($game_player.screen_y - 16 - h / 2).to_f)].max,(h * zm - h) / zm].min
  99.       self.zoom_x = zm
  100.       self.zoom_y = zm
  101.       self.visible = true
  102.       @viewport_data.z -= 10000000
  103.     end
  104.     super
  105.   end
  106. end
  107. class Game_Interpreter
  108.   #--------------------------------------------------------------------------
  109.   # ズーム
  110.   #--------------------------------------------------------------------------
  111.   def map_zoom(rate = 100)
  112.     $game_system.zoom_mode = [[rate,100].max,2000].min
  113.   end
  114. end


javascript:;
报错行数45行
想请问解决方法,或者如果有更好的脚本也行
烦请各位大佬指教
QQ图片20190201030702.png

Lv1.梦旅人

梦石
0
星屑
230
在线时间
19 小时
注册时间
2018-5-15
帖子
1
发表于 2019-2-1 09:17:15 | 显示全部楼层
我试了一下,单独运行没出错。你这个问题可能是和其他脚本冲突了。

评分

参与人数 1星屑 +20 收起 理由
VIPArcher + 20 塞糖

查看全部评分

咸鱼本鱼
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4863
在线时间
485 小时
注册时间
2018-6-18
帖子
613
发表于 2019-2-1 09:22:35 手机端发表。 | 显示全部楼层
可能这个脚本只支持默认分辨率吧?
默认分辨率对RPG来说已经足够大了!不是战略游戏的话,太大的分辨率严重影响代入感……
觉得窗口小的话完全可以全屏玩。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7803
在线时间
1832 小时
注册时间
2017-10-23
帖子
352
发表于 2019-2-1 09:44:23 | 显示全部楼层
把窗口变大   然后想再把地图和人物变大?  弄半天卡死 也没提高清晰度 不如alt+回车  

544*416 是rpg的比例    rpgmaker从640 降到了544  实践之后的比例。 MV也只是在544比416 的基础上扩大1.5倍。    640 和800 更倾向于 gal图片 类   544对图片立绘不友善。 点阵rpg  544*352    掌机 手机 比例反而是最好的比例
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
389
在线时间
52 小时
注册时间
2016-1-6
帖子
31
 楼主| 发表于 2019-2-1 11:12:15 | 显示全部楼层
RMVXA 发表于 2019-2-1 09:22
可能这个脚本只支持默认分辨率吧?
默认分辨率对RPG来说已经足够大了!不是战略游戏的话,太大的分辨率严重 ...

并不是,主要是自己画的立绘素材放进640*480的分辨率里面变得模糊不清,很难受
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
389
在线时间
52 小时
注册时间
2016-1-6
帖子
31
 楼主| 发表于 2019-2-1 11:19:32 | 显示全部楼层
xiaohuangdi 发表于 2019-2-1 09:44
把窗口变大   然后想再把地图和人物变大?  弄半天卡死 也没提高清晰度 不如alt+回车  

544*416  ...

emmmmmm我提高分辨率主要是想提高立绘的清晰度,人物点阵图什么的无所谓
卡倒是不怎么卡
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
389
在线时间
52 小时
注册时间
2016-1-6
帖子
31
 楼主| 发表于 2019-2-1 11:20:44 | 显示全部楼层
RMVXA 发表于 2019-2-1 09:22
可能这个脚本只支持默认分辨率吧?
默认分辨率对RPG来说已经足够大了!不是战略游戏的话,太大的分辨率严重 ...

不是窗口小……自己画的CG放进游戏里模糊不清感觉挺难受的
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
389
在线时间
52 小时
注册时间
2016-1-6
帖子
31
 楼主| 发表于 2019-2-1 11:30:27 | 显示全部楼层
Dean_Shimiur 发表于 2019-2-1 09:17
我试了一下,单独运行没出错。你这个问题可能是和其他脚本冲突了。

注释掉了冲突脚本,可以运行,谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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