查看: 3642|回复: 12

[已经解决] 关于地图放大脚本的错误

[复制链接]
梦石
0
星屑
5532
在线时间
1090 小时
注册时间
2017-12-30
回帖
49
发表于 2019-7-5 03:38:50 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 空调虎 于 2019-7-6 15:54 编辑

请问有办法解决这个地图放大脚本在我关闭菜单画面时会突然放大一下的效果吗?gif图上为已经使用这个脚本放大为150%的画面,因为我想在游戏中全程使用这个150%的画面,所以希望能正常的让菜单消失。或者有什么别的放大画面的脚本呢。

*发现不使用RGD后就不会有这个问题了,但是原来的game.exe放大很卡
4.gif
[pre lang="ruby"]#==============================================================================
# ■ RGSS3 地图缩放 Ver1.00 by 星潟
#------------------------------------------------------------------------------
# 和标题一样,可以缩放地图。
# 注意,地图缩放状态会存储于存档数据文件中。
#==============================================================================
# 使用脚本:
#------------------------------------------------------------------------------
# map_zoom(150)
#
# 地图大小变为150%。
#------------------------------------------------------------------------------
# map_zoom(300)
#
# 地图大小变为300%。
#------------------------------------------------------------------------------
# map_zoom
#
# 地图大小重置。
#==============================================================================
# 缩放不能小于100%,也不能大于2000%。
# 因此、100为最小值、2000为最大值。
#==============================================================================
class Game_System
  attr_accessor :zoom_mode
  #--------------------------------------------------------------------------
  # ズームモード
  #--------------------------------------------------------------------------
  def zoom_mode
    @zoom_mode ||= 100
  end
end
class Spriteset_Map
  #--------------------------------------------------------------------------
  # ビューポートの作成
  #--------------------------------------------------------------------------
  alias create_viewports_zoommap create_viewports
  def create_viewports
    create_viewports_zoommap
    @zoommap = ZoomMap.new(@viewport1,@viewport2)
  end
  #--------------------------------------------------------------------------
  # 更新処理
  #--------------------------------------------------------------------------
  alias update_zoommap update
  def update
    @zoommap.update
    update_zoommap
  end
  #--------------------------------------------------------------------------
  # 解放処理
  #--------------------------------------------------------------------------
  alias dispose_zoommap dispose
  def dispose
    @zoommap.dispose
    dispose_zoommap
  end
end
class ZoomMap < Sprite_Base
  #--------------------------------------------------------------------------
  # 初期化
  #--------------------------------------------------------------------------
  def initialize(v1,v2)
    super(v2)
    @viewport_data = v1
    @zoom_rate = $game_system.zoom_mode
    @zoom_bitmap = nil
  end
  #--------------------------------------------------------------------------
  # 解放
  #--------------------------------------------------------------------------
  def dispose
    @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed?
    super
  end
  #--------------------------------------------------------------------------
  # 更新処理
  #--------------------------------------------------------------------------
  def update
    self.visible = @zoom_rate != 100
    @zoom_bitmap.dispose if @zoom_bitmap && !@zoom_bitmap.disposed?
    if $game_system.zoom_mode != 100 or @zoom_rate != 100
      if @zoom_rate != $game_system.zoom_mode
        d = (@zoom_rate - $game_system.zoom_mode).to_i
        case d
        when 0..9;i = 1
        when 10..99;i = 2
        when 100..999;i = 3
        else; i = 4
        end
        @zoom_rate += (@zoom_rate < $game_system.zoom_mode) ? i : -i
      end
      zm = @zoom_rate.to_f / 100
      @viewport_data.z += 10000000
      @zoom_bitmap = Graphics.snap_to_bitmap
      self.bitmap = @zoom_bitmap
      w = self.bitmap.width
      h =self.bitmap.height
      self.ox = [[0,((w * zm / 2) - w / 2) / zm + (($game_player.screen_x - w / 2).to_f)].max,(w * zm - w) / zm].min
      self.oy = [[0,((h * zm / 2) - h / 2) / zm + (($game_player.screen_y - 16 - h / 2).to_f)].max,(h * zm - h) / zm].min
      self.zoom_x = zm
      self.zoom_y = zm
      self.visible = true
      @viewport_data.z -= 10000000
    end
    super
  end
end
class Game_Interpreter
  #--------------------------------------------------------------------------
  # ズーム
  #--------------------------------------------------------------------------
  def map_zoom(rate = 100)
    $game_system.zoom_mode = [[rate,100].max,2000].min
  end
end[/pre]
梦石
0
星屑
7066
在线时间
607 小时
注册时间
2017-11-10
回帖
656

极短21参与

发表于 2019-7-5 08:02:51 | 显示全部楼层
用排除法呀,一个个脚本拿掉实验。
回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2019-7-5 09:35:29 | 显示全部楼层
默认菜单没有问题吗?
是否在菜单打开前调用了地图缩放?
但是看gif中,似乎根本和它无关了一样(gif图中的 $game_system.zoom_mode 的值是多少?)
以及这个地图放大……居然是每一帧截图放大再显示???
回复

使用道具 举报

梦石
0
星屑
5532
在线时间
1090 小时
注册时间
2017-12-30
回帖
49
 楼主| 发表于 2019-7-5 12:47:49 | 显示全部楼层
百里_飞柳 发表于 2019-7-5 09:35
默认菜单没有问题吗?
是否在菜单打开前调用了地图缩放?
但是看gif中,似乎根本和它无关了一样(gif图中的 ...

试了一下默认菜单也会这样,打开前我是放大画面到150%,开新工程试了一下好像也不是因为我分辨率调成800*600的原因。
$game_system.zoom_mode我没改过,就是默认的那样。

点评

其实我不确定,你这个回弹的结果是放缩多少时的?菜单关闭后那个放缩比例你复原了吗?gif里回弹后的才是150%缩放?  发表于 2019-7-5 14:42
回复

使用道具 举报

梦石
0
星屑
5532
在线时间
1090 小时
注册时间
2017-12-30
回帖
49
 楼主| 发表于 2019-7-5 14:59:13 | 显示全部楼层
百里_飞柳 发表于 2019-7-5 09:35
默认菜单没有问题吗?
是否在菜单打开前调用了地图缩放?
但是看gif中,似乎根本和它无关了一样(gif图中的 ...

哦哦不好意思是我形容的有问题,说是回弹,其实是会在关闭菜单的时候画面会突然放大一下再关闭(gif上那样),很别扭,我希望能自然得关闭菜单,因为我的游戏想要全程使用这个150%的画面。这个问题就是在画面已经放大(150%)的情况下出现的,不使用脚本改变画面的话不会有这个问题。

点评

那么那个突兀的放大,是什么倍率的?也是150%吗?还是突然冒出的比150%更大的倍率  发表于 2019-7-5 17:51
回复

使用道具 举报

梦石
0
星屑
5532
在线时间
1090 小时
注册时间
2017-12-30
回帖
49
 楼主| 发表于 2019-7-5 19:07:50 | 显示全部楼层
百里_飞柳 发表于 2019-7-5 09:35
默认菜单没有问题吗?
是否在菜单打开前调用了地图缩放?
但是看gif中,似乎根本和它无关了一样(gif图中的 ...

这个放大的倍率我就看不出了,然后我重新录了一个gif,先是用物品的公共事件打开图片然后关闭变大,之后是打开主菜单然后关闭变大。(由二级菜单转到主菜单时不会变大)
5.gif
回复

使用道具 举报

梦石
0
星屑
9862
在线时间
580 小时
注册时间
2017-9-28
回帖
203
发表于 2019-7-6 07:19:37 | 显示全部楼层
本帖最后由 hyrious 于 2019-7-6 07:45 编辑

我用默认菜单跑了一下貌似没问题(
GIF.gif
查了一下也不是 VXAce_SP1 里修复的内容,所以
应该是跟你的自定义菜单冲突了……


绝 liao,我去整了一份葱菜单,结果也还是没问题(截图位置不准之类的先不管)
GIF.gif

点评

感谢, 麻烦了XDD  发表于 2019-7-6 08:09
喵喵喵
回复

使用道具 举报

老黄鸡

梦石
4
星屑
45700
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2019-7-6 07:40:03 | 显示全部楼层
看起来使用的是RGD,试试更新到最新版RGD启动程序试试,之前有一个版本修复了snap_to_bitmap与RGSS不一致的问题

评分

参与人数 1赞 +1 收起 理由
hyrious + 1 我没想到

查看全部评分

RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
0
星屑
5532
在线时间
1090 小时
注册时间
2017-12-30
回帖
49
 楼主| 发表于 2019-7-6 08:07:09 | 显示全部楼层
本帖最后由 空调虎 于 2019-7-6 08:16 编辑
fux2 发表于 2019-7-6 07:40
看起来使用的是RGD,试试更新到最新版RGD启动程序试试,之前有一个版本修复了snap_to_bitmap与RGSS不一致的 ...


感谢,最新是网站上的1.3.2的吧?我刚才开了个新工程发现默认的确实可以用(之前应该是图标没变导致我以为没更换RGD),替换为RGD后反而开始出问题了(放大)。
然后我把新工程的game.exe替换上去,也算解决了这个问题了

点评

就是不用RGD好卡啊。。。  发表于 2019-7-6 08:09
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部