Project1

标题: 用脚本使地图上的图片消失 [打印本页]

作者: 涂鸦boy    时间: 2011-8-13 19:44
标题: 用脚本使地图上的图片消失
本帖最后由 涂鸦boy 于 2011-8-13 20:01 编辑

这是一个显示地图坐标的脚本,自行试探为其加入背景(24~28行),问题出现了:当开关关闭后背景图还在,求解

附上调试用背景图(Graphics/xybg.png):
  1. #==========================================================================
  2. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #==========================================================================

  4. XY_SWITCH = 25 # 当25号开关打开,本脚本才开始工作。

  5. #==============================================================================
  6. # ■ Window_XY
  7. #------------------------------------------------------------------------------
  8. #  显示坐标的窗口。
  9. #==============================================================================
  10. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  11. #--------------------------------------------------------------------------
  12. # ● 初始化窗口
  13. #--------------------------------------------------------------------------
  14. def initialize
  15.    super(0, 0, 130, 280)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  16.    self.contents = Bitmap.new(width - 32, height - 32)
  17.    self.back_opacity = 255  # 这个是背景透明
  18.    self.opacity = 255       # 这个是边框和背景都透明
  19.    self.contents_opacity = 255      # 这个是内容透明
  20.    self.visible = false
  21.    refresh
  22.    @sp = Sprite.new
  23.    @sp.bitmap = Bitmap.new("Graphics/xybg.png") #坐标背景
  24.    @sp.z = 1    #优先级
  25.    @sp.y = 0    #横坐标
  26.    @sp.x = 0    #纵坐标
  27.    @x = $game_player.x
  28.    @y = $game_player.y
  29.    @id = $game_map.map_id
  30. end

  31. #--------------------------------------------------------------------------
  32. # ● 刷新
  33. #--------------------------------------------------------------------------
  34. def refresh
  35.    if $game_switches[XY_SWITCH] #确定开关是否打开,可以自己改变开关
  36.      @x = $game_player.x #获取角色X坐标
  37.      @y = $game_player.y #获取角色Y坐标
  38.      @id = $game_map.map_id  #获取地图编号
  39.     self.contents.clear #清除以前的东西
  40.     $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
  41.     map_name = $mapnames[@id].name #获得地图名
  42.     self.contents.font.size = 13
  43.     self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
  44.     self.contents.draw_text(4, -1, 70, 18, map_name,1)
  45.     self.contents.font.color = system_color#颜色,暗蓝色
  46.     self.contents.draw_text(7, 45, 80, 18, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  47.     self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
  48.     self.contents.draw_text(-6, 45, 40, 18, @x.to_s,2)
  49.     self.contents.font.color = system_color#上面那个是X坐标的变量,可以自己更改变量名~
  50.     self.contents.draw_text(44, 45, 24, 18, "Y:")#显示Y这个字~
  51.     self.contents.font.color = Color.new(225, 225, 225, 255)
  52.     self.contents.draw_text(-18, 45, 90, 18, @y.to_s,2)
  53.    end
  54. end
  55. #--------------------------------------------------------------------------
  56. # ● 判断文字刷新。节约内存用
  57. #--------------------------------------------------------------------------
  58. def judge
  59.    return true if @x != $game_player.x
  60.    return true if @y != $game_player.y
  61.    return true if @id != $game_map.map_id
  62.    return false
  63. end
  64. end
  65. ###########################################################################
  66. #                           下面的东西不需要掌握~                         #
  67. ###########################################################################

  68. class Scene_Map
  69. alias xy_66rpg_main main
  70. def main
  71.    @xy_window = Window_xy.new
  72.    @xy_window.x = 2
  73.    @xy_window.y = -2
  74.    @xy_window.opacity = 0
  75.    xy_66rpg_main
  76.    @xy_window.dispose
  77. end
  78. #--------------------------------------------------------------------------
  79. # ● 刷新画面
  80. #--------------------------------------------------------------------------
  81. alias xy_66rpg_update update
  82. def update
  83.    xy_66rpg_update
  84.    if $game_switches[XY_SWITCH]
  85.      @xy_window.visible = true     
  86.      @xy_window.refresh if @xy_window.judge
  87.    else
  88.      @xy_window.visible = false
  89.    end
  90. end
  91. end
  92. #==========================================================================
  93. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。别以为加密就可以del哦
  94. #==========================================================================
复制代码
dsu_plus_rewardpost_czw
作者: fux2    时间: 2011-8-13 20:32
关闭的时候要释放那张图.
  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  3. #==========================================================================

  4. XY_SWITCH = 25 # 当25号开关打开,本脚本才开始工作。

  5. #==============================================================================
  6. # ■ Window_XY
  7. #------------------------------------------------------------------------------
  8. #  显示坐标的窗口。
  9. #==============================================================================
  10. class Window_xy < Window_Base#注意前面那个window_xy是文件名
  11. #--------------------------------------------------------------------------
  12. # ● 初始化窗口
  13. #--------------------------------------------------------------------------
  14. attr_accessor:sp
  15. def initialize
  16.    super(0, 0, 130, 280)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  17.    self.contents = Bitmap.new(width - 32, height - 32)
  18.    self.back_opacity = 255  # 这个是背景透明
  19.    self.opacity = 255       # 这个是边框和背景都透明
  20.    self.contents_opacity = 255      # 这个是内容透明
  21.    self.visible = false
  22.    refresh
  23.    @sp = Sprite.new
  24.    @sp.bitmap = Bitmap.new("Graphics/xybg.png") #坐标背景
  25.    @sp.z = 1    #优先级
  26.    @sp.y = 0    #横坐标
  27.    @sp.x = 0    #纵坐标
  28.    @x = $game_player.x
  29.    @y = $game_player.y
  30.    @id = $game_map.map_id
  31. end

  32. #--------------------------------------------------------------------------
  33. # ● 刷新
  34. #--------------------------------------------------------------------------
  35. def refresh
  36.    if $game_switches[XY_SWITCH] #确定开关是否打开,可以自己改变开关
  37.      @x = $game_player.x #获取角色X坐标
  38.      @y = $game_player.y #获取角色Y坐标
  39.      @id = $game_map.map_id  #获取地图编号
  40.     self.contents.clear #清除以前的东西
  41.     $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
  42.     map_name = $mapnames[@id].name #获得地图名
  43.     self.contents.font.size = 13
  44.     self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
  45.     self.contents.draw_text(4, -1, 70, 18, map_name,1)
  46.     self.contents.font.color = system_color#颜色,暗蓝色
  47.     self.contents.draw_text(7, 45, 80, 18, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
  48.     self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
  49.     self.contents.draw_text(-6, 45, 40, 18, @x.to_s,2)
  50.     self.contents.font.color = system_color#上面那个是X坐标的变量,可以自己更改变量名~
  51.     self.contents.draw_text(44, 45, 24, 18, "Y:")#显示Y这个字~
  52.     self.contents.font.color = Color.new(225, 225, 225, 255)
  53.     self.contents.draw_text(-18, 45, 90, 18, @y.to_s,2)
  54.    end
  55. end
  56. #--------------------------------------------------------------------------
  57. # ● 判断文字刷新。节约内存用
  58. #--------------------------------------------------------------------------
  59. def judge
  60.    return true if @x != $game_player.x
  61.    return true if @y != $game_player.y
  62.    return true if @id != $game_map.map_id
  63.    return false
  64. end
  65. end
  66. ###########################################################################
  67. #                           下面的东西不需要掌握~                         #
  68. ###########################################################################

  69. class Scene_Map
  70. alias xy_66rpg_main main
  71. def main
  72.    @xy_window = Window_xy.new
  73.    @xy_window.x = 2
  74.    @xy_window.y = -2
  75.    @xy_window.opacity = 0
  76.    xy_66rpg_main
  77.    @xy_window.dispose
  78. end
  79. #--------------------------------------------------------------------------
  80. # ● 刷新画面
  81. #--------------------------------------------------------------------------
  82. alias xy_66rpg_update update
  83. def update
  84.    xy_66rpg_update
  85.    if $game_switches[XY_SWITCH]
  86.      @xy_window.visible = true     
  87.      @xy_window.refresh if @xy_window.judge
  88.    else
  89.      @xy_window.sp.visible = false
  90.      @xy_window.visible = false
  91.    end
  92. end
  93. end
  94. #==========================================================================
  95. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。别以为加密就可以del哦
  96. #==========================================================================
复制代码

作者: 涂鸦boy    时间: 2011-8-13 20:38
fux2 发表于 2011-8-13 20:32
关闭的时候要释放那张图.

万分感谢~




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