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

Project1

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

[有事请教] 求助,将此防卡脚本加开关

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1018
在线时间
226 小时
注册时间
2022-4-22
帖子
30
跳转到指定楼层
1
发表于 2023-5-14 10:38:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100星屑
本帖最后由 金碧辉黄 于 2024-4-4 00:47 编辑

有钱悬赏了!再发一次这个帖吧
我还是需要求助
RUBY 代码复制
  1. #============================================================================
  2. # ■ VX_事件图形刷新简化    —— By 诡异の猫
  3. #============================================================================
  4. #    脚本内容: 只刷新视野内的事件图形,改善大地图事件过多卡机情况.
  5. #============================================================================
  6. class Sprite_Character < Sprite_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 判定图形是否再视野内
  9.   #--------------------------------------------------------------------------
  10.   def in_view?
  11.     add_x = (self.width-32)*4 + 256
  12.     add_y = self.height*8
  13.     begin_x = $game_map.display_x - add_x
  14.     begin_y = $game_map.display_y - add_y
  15.     end_x = $game_map.display_x + 4352 + add_x
  16.     end_y = $game_map.display_y + 3328 + add_y
  17.     limit_x = $game_map.width * 256 - 256 + add_x
  18.     limit_y = $game_map.height * 256 - 256 + add_y
  19.     char_x = @character.real_x
  20.     char_y = @character.real_y
  21.     if end_x <= limit_x
  22.       return false if char_x < begin_x or char_x > end_x
  23.     end
  24.     if end_y <= limit_y
  25.       return false if char_y < begin_y or char_y > end_y
  26.     end
  27.     if end_x > limit_x and end_y > limit_y
  28.       return false if char_x < begin_x and char_x > end_x - limit_x
  29.       return false if char_y < begin_y and char_y > end_y - limit_y
  30.     end
  31.     return true
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 更新画面
  35.   #--------------------------------------------------------------------------
  36.   def update
  37.     super
  38.     if in_view?
  39.       update_bitmap
  40.       self.visible = (not @character.transparent)
  41.       update_src_rect
  42.       self.x = @character.screen_x
  43.       self.y = @character.screen_y
  44.       self.z = @character.screen_z
  45.       self.opacity = @character.opacity
  46.       self.blend_type = @character.blend_type
  47.       self.bush_depth = @character.bush_depth
  48.     end
  49.     update_balloon
  50.     if @character.animation_id != 0
  51.       animation = $data_animations[@character.animation_id]
  52.       start_animation(animation)
  53.       @character.animation_id = 0
  54.     end
  55.     if @character.balloon_id != 0
  56.       @balloon_id = @character.balloon_id
  57.       start_balloon
  58.       @character.balloon_id = 0
  59.     end
  60.   end
  61. end

我想加开关,打开开关使脚本有效,关闭开关则无效,帮个忙吧我真的需要

最佳答案

查看完整内容

它本身是个节能脚本嘛 原理是通过在update里面添加了事件精灵是否在视窗范围内的判断,来决定要不要刷新时间精灵。 我理解你需要让这个脚本的无效的意思是 每一帧更新时,无论事件在不在视窗范围内,都要对它的精灵进行刷新 按照这种理解,用开关xxx来作为脚本生效条件的话 只需要在in_view?方法中最前方(你这里贴的脚本的10行与11行之间)添加一句 这样当开关xxx关闭时,in_view?的判断总为真,事件精灵一定会被刷新。 或者 ...

Lv4.逐梦者

梦石
0
星屑
8449
在线时间
773 小时
注册时间
2018-11-3
帖子
8
2
发表于 2023-5-14 10:38:01 | 只看该作者
它本身是个节能脚本嘛
原理是通过在update里面添加了事件精灵是否在视窗范围内的判断,来决定要不要刷新时间精灵。

我理解你需要让这个脚本的无效的意思是
每一帧更新时,无论事件在不在视窗范围内,都要对它的精灵进行刷新

按照这种理解,用开关xxx来作为脚本生效条件的话
只需要在in_view?方法中最前方(你这里贴的脚本的10行与11行之间)添加一句
  1. return true unless $game_switches[xxx]
复制代码

这样当开关xxx关闭时,in_view?的判断总为真,事件精灵一定会被刷新。

或者在update方法中将第38行
  1. if in_view?
复制代码

改为
  1. if in_view? or not $game_switches[xxx]
复制代码

这个从效果上来说与上面的办法没差,
但是它保留了方法in_view?在开关xxx关闭时的有效性
如果你在其他地方有单独调用这个in_view?方法,并且不希望它受开关xxx状态的影响
就使用下面这种办法吧

点评

这个就是我需要的,感谢感谢,再次抱歉没能及时回复消息,这段时间我学习去了(明年高考hh) 另外版主结贴  发表于 2023-6-9 23:23

评分

参与人数 1+1 收起 理由
金碧辉黄 + 1 认可答案

查看全部评分

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1018
在线时间
226 小时
注册时间
2022-4-22
帖子
30
3
 楼主| 发表于 2023-6-9 22:48:47 | 只看该作者
Istrien 发表于 2023-5-14 13:41
它本身是个节能脚本嘛
原理是通过在update里面添加了事件精灵是否在视窗范围内的判断,来决定要不要刷新时 ...

回来了,本以为这个现在没多少人用,没想到还有人,感动,我去试试,效果好就悬赏
(现在我这个号有点不稳定一进入新的页面就让我重新登,我好了会再次回复你的)
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1018
在线时间
226 小时
注册时间
2022-4-22
帖子
30
4
 楼主| 发表于 2023-6-9 23:24:56 | 只看该作者
版主结贴,已经解决
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-21 23:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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