Project1
标题: 用脚本使地图上的图片消失 [打印本页]
作者: 涂鸦boy 时间: 2011-8-13 19:44
标题: 用脚本使地图上的图片消失
本帖最后由 涂鸦boy 于 2011-8-13 20:01 编辑
这是一个显示地图坐标的脚本,自行试探为其加入背景(24~28行),问题出现了:当开关关闭后背景图还在,求解
附上调试用背景图(Graphics/xybg.png):
- #==========================================================================
- # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。别以为加密就可以del哦
- #==========================================================================
- XY_SWITCH = 25 # 当25号开关打开,本脚本才开始工作。
- #==============================================================================
- # ■ Window_XY
- #------------------------------------------------------------------------------
- # 显示坐标的窗口。
- #==============================================================================
- class Window_xy < Window_Base#注意前面那个window_xy是文件名
- #--------------------------------------------------------------------------
- # ● 初始化窗口
- #--------------------------------------------------------------------------
- def initialize
- super(0, 0, 130, 280)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
- self.contents = Bitmap.new(width - 32, height - 32)
- self.back_opacity = 255 # 这个是背景透明
- self.opacity = 255 # 这个是边框和背景都透明
- self.contents_opacity = 255 # 这个是内容透明
- self.visible = false
- refresh
- @sp = Sprite.new
- @sp.bitmap = Bitmap.new("Graphics/xybg.png") #坐标背景
- @sp.z = 1 #优先级
- @sp.y = 0 #横坐标
- @sp.x = 0 #纵坐标
- @x = $game_player.x
- @y = $game_player.y
- @id = $game_map.map_id
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- if $game_switches[XY_SWITCH] #确定开关是否打开,可以自己改变开关
- @x = $game_player.x #获取角色X坐标
- @y = $game_player.y #获取角色Y坐标
- @id = $game_map.map_id #获取地图编号
- self.contents.clear #清除以前的东西
- $mapnames = load_data("Data/MapInfos.rxdata") #读取地图名文件
- map_name = $mapnames[@id].name #获得地图名
- self.contents.font.size = 13
- self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
- self.contents.draw_text(4, -1, 70, 18, map_name,1)
- self.contents.font.color = system_color#颜色,暗蓝色
- self.contents.draw_text(7, 45, 80, 18, "X:")#显示X这个字的位置,引号里面的内容随便改,比如"X坐标地址"
- self.contents.font.color = Color.new(225, 225, 225, 255)#颜色,这里是白色~
- self.contents.draw_text(-6, 45, 40, 18, @x.to_s,2)
- self.contents.font.color = system_color#上面那个是X坐标的变量,可以自己更改变量名~
- self.contents.draw_text(44, 45, 24, 18, "Y:")#显示Y这个字~
- self.contents.font.color = Color.new(225, 225, 225, 255)
- self.contents.draw_text(-18, 45, 90, 18, @y.to_s,2)
- end
- end
- #--------------------------------------------------------------------------
- # ● 判断文字刷新。节约内存用
- #--------------------------------------------------------------------------
- def judge
- return true if @x != $game_player.x
- return true if @y != $game_player.y
- return true if @id != $game_map.map_id
- return false
- end
- end
- ###########################################################################
- # 下面的东西不需要掌握~ #
- ###########################################################################
- class Scene_Map
- alias xy_66rpg_main main
- def main
- @xy_window = Window_xy.new
- @xy_window.x = 2
- @xy_window.y = -2
- @xy_window.opacity = 0
- xy_66rpg_main
- @xy_window.dispose
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- alias xy_66rpg_update update
- def update
- xy_66rpg_update
- if $game_switches[XY_SWITCH]
- @xy_window.visible = true
- @xy_window.refresh if @xy_window.judge
- else
- @xy_window.visible = false
- end
- end
- end
- #==========================================================================
- # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。别以为加密就可以del哦
- #==========================================================================
复制代码