查看: 3021|回复: 4

[已经解决] 关于视野限制脚本与显示图片冲突的问题

[复制链接]
梦石
2
星屑
34497
在线时间
614 小时
注册时间
2014-7-18
回帖
647

MZ评测员开拓者

发表于 2015-7-8 22:08:48 | 显示全部楼层 |阅读模式

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

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

×
我在制作的游戏中使用了视野限制的脚本,但是在我执行显示图片功能时,发现视野限制遮住了图片,只露出了视野没有限制的部分,如何改一下脚本,使这种情况不再发生。
我是这样想的:在显示图片时就释放视野限制(dispose),可以吗?
但是,我还不知道在哪里加(本人已有基础的脚本知识,正在进行进一步学习...)

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-7-8 22:17:52 | 显示全部楼层
1.别这么干
2.在视野限制中搜索 z 或者self.z ,调整其z坐标的数值

点评

我怀疑是 viewport 的问题  发表于 2015-7-9 07:42

评分

参与人数 1星屑 +150 收起 理由
taroxd + 150 认可答案

查看全部评分

回复

使用道具 举报

梦石
2
星屑
34497
在线时间
614 小时
注册时间
2014-7-18
回帖
647

MZ评测员开拓者

 楼主| 发表于 2015-7-8 22:21:36 | 显示全部楼层
喵呜喵5 发表于 2015-7-8 22:17
1.别这么干
2.在视野限制中搜索 z 或者self.z ,调整其z坐标的数值

那应该修改成多少呢?
我这上面是Z=199

点评

谢谢,已经解决了。 话说好想学过z坐标端口...  发表于 2015-7-9 17:20
地面是0,0以上都可以  发表于 2015-7-8 22:37
回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2015-7-8 22:35:22 | 显示全部楼层
Galv's Visibility Range
  1. #------------------------------------------------------------------------------#
  2. #  Galv's Visibility Range
  3. #------------------------------------------------------------------------------#
  4. #  For: RPGMAKER VX ACE
  5. #  Version 1.1
  6. #------------------------------------------------------------------------------#
  7. #  2014-02-11 - Version 1.1 - added z level setting
  8. #  2013-05-31 - Version 1.0 - release
  9. #------------------------------------------------------------------------------#
  10. #  This script can make the player only able to see in a certain radius around
  11. #  themself. The rest is darkness. This size and opacity of this darkness is
  12. #  controlled using variables and turned on/off using a switch.
  13. #
  14. #  Put this script below Materials and above main.
  15. #  Requires an image that can be found in the demo on galvs-scripts.com. Images
  16. #  for this script go in your /Graphics/System folder.
  17. #------------------------------------------------------------------------------#

  18. #------------------------------------------------------------------------------#
  19. #  SCRIPT CALL
  20. #------------------------------------------------------------------------------#
  21. #  visimage("ImageName")       # Can change the image used
  22. #------------------------------------------------------------------------------#


  23. ($imported ||= {})["Galv_Vis_Range"] = true
  24. module Galv_Vis

  25. #------------------------------------------------------------------------------#
  26. #  SETTINGS - Don't forget to set these to unused variables and switch!
  27. #------------------------------------------------------------------------------#

  28.   SWITCH = 5000      # This switch turns the visibility range on/off. Default OFF

  29.   SIZEVAR = 5000     # This variable controls how far player can see. Default 100

  30.   OPACITYVAR = 2  # This variable controls the darkness opacity.   Default 255
  31.    
  32.    
  33.   Z_LEVEL = 0      # Make this higher or lower to change the z level
  34.                    # (to make it appear above or below other stuff)

  35. #------------------------------------------------------------------------------#
  36. #  END SETTINGS
  37. #------------------------------------------------------------------------------#

  38. end # Galv_Vis


  39. class Spriteset_Map
  40.   alias galv_vis_sm_initialize initialize
  41.   def initialize
  42.     create_visrange if $game_switches[Galv_Vis::SWITCH]
  43.     galv_vis_sm_initialize
  44.   end
  45.    
  46.   def create_visrange
  47.     @visrange = Sprite.new
  48.     @visrange.bitmap = Cache.system($game_system.visimage)
  49.     @visrange.ox = @visrange.bitmap.width / 2
  50.     @visrange.oy = @visrange.bitmap.height / 2
  51.     @visrange.z = Galv_Vis::Z_LEVEL
  52.   end
  53.    
  54.   alias galv_vis_sm_update update
  55.   def update
  56.     galv_vis_sm_update
  57.     update_visrange
  58.   end
  59.    
  60.   def update_visrange
  61.     if $game_switches[Galv_Vis::SWITCH]
  62.       create_visrange if !@visrange
  63.       @visrange.x = $game_player.screen_x
  64.       @visrange.y = $game_player.screen_y - 16
  65.       @visrange.opacity = $game_variables[Galv_Vis::OPACITYVAR]
  66.       zoom = [$game_variables[Galv_Vis::SIZEVAR].to_f * 0.01,0.5].max
  67.       @visrange.zoom_x = zoom
  68.       @visrange.zoom_y = zoom
  69.     else
  70.       dispose_visrange
  71.     end
  72.   end
  73.    
  74.   alias galv_vis_sm_dispose dispose
  75.   def dispose
  76.     galv_vis_sm_dispose
  77.     dispose_visrange
  78.   end
  79.    
  80.   def dispose_visrange
  81.     return if !@visrange
  82.     @visrange.bitmap.dispose
  83.     @visrange.dispose
  84.     @visrange = nil
  85.   end
  86. end # Spriteset_Map


  87. module DataManager
  88.   class << self
  89.     alias galv_vis_dm_setup_new_game setup_new_game
  90.   end
  91.    
  92.   def self.setup_new_game
  93.     galv_vis_dm_setup_new_game
  94.     $game_system.init_visvars
  95.   end
  96. end # DataManager


  97. class Scene_Map
  98.   attr_accessor :spriteset
  99. end

  100. class Game_System
  101.   attr_accessor :visimage

  102.   def init_visvars
  103.     @visimage = "VisRange"
  104.     $game_variables[Galv_Vis::OPACITYVAR] = 255
  105.     $game_variables[Galv_Vis::SIZEVAR] = 100
  106.   end
  107. end


  108. class Game_Interpreter
  109.   def visimage(img)
  110.     $game_system.visimage = img
  111.     SceneManager.scene.spriteset.dispose_visrange
  112.   end
  113. end
复制代码

放在Graphics\System
VisRange.png
VisRange.png
VisRangeRed.png
VisRangeRed.png
指定视野限制開関(予設5000)
紅黒切換
脚本
visimage("VisRangeRed")
visimage("VisRange")
指定视野限制大小変数(予設5000)
Z値(脚本内
回复

使用道具 举报

梦石
2
星屑
34497
在线时间
614 小时
注册时间
2014-7-18
回帖
647

MZ评测员开拓者

 楼主| 发表于 2015-7-9 17:23:15 | 显示全部楼层
tseyik 发表于 2015-7-8 22:35
Galv's Visibility Range

放在Graphics\System
VisRange.png

我不是在求烛光系统的脚本,
是解决问题,请先搞清楚ME的意图...
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部