Project1
标题:
用了近大远小脚本之后显示地图名的问题
[打印本页]
作者:
君迁子
时间:
2009-4-15 21:43
标题:
用了近大远小脚本之后显示地图名的问题
近大远小脚本里面需要在地图名后加★和数值来实现行走图近大远小的效果,在菜单加了个显示地图名的窗口,但是那些内容也一起显示出来了,有没有方法在显示地图名的时候隐藏那些内容?
行走图近大远小脚本
#==============================================================================
# 近大远小 V 1.1 BY 亿万星辰
#==============================================================================
# 似乎很多人都很喜欢类似天之痕里人物在地图上的位置的不同,人物大小的相应改变。
# 所以写了这个……一开始我还说很难实现…… =。= 汗,被自己推翻了……
# 看来勇于探索的精神还是要有的……
#
# 不废话了,说下使用方法:
# 因为考虑到不可能所有的地图都用到这个效果,所以使用了这样的方法。如果想要实现
# 这个效果的,那么请在地图名中加入“★”这个标志,这样就会按照近大远小来处理人
# 物,否则效果不变。
# 根据一位朋友的建议,不可能每幅地图的比例都一样,所以加设了下面的一些设置,
# 下面举几个例子,大家一看便知:
# MAP001 无近大远小效果
# MAP001★0.5~1.0 屏幕最上方比例为原始大小的0.5倍,最下方为1.0倍
# MAP001★1.0~2.0 屏幕最上方比例为原始大小的1.0倍,最下方为2.0倍
# 另外,人物在放大后会略显毛边儿,这也是没办法的,呵呵~~
# 此脚本对NPC同样适用……具体可参考演示。
# 不过也有不足,即使这样修改了大小,游戏中的各种人物还是占据一格的大小,当人变
# 小时, 彼此之间距离会有些大……
#==============================================================================
class Scene_Title
alias stars_main main
def main
stars_main
$data_mapinfos = load_data("Data/MapInfos.rxdata")
end
end
class Sprite_Character < RPG::Sprite
alias stars_update update
def update
stars_update
id = $game_map.map_id
name = $data_mapinfos[id].name
if name.include?("★")
rage = name.split(/★/)[1]
min_rate = rage.split(/~/)[0].to_f
max_rate = rage.split(/~/)[1].to_f
rate = min_rate + (@character.y.to_f / $game_map.height.to_f * (max_rate - min_rate))
self.zoom_x = self.zoom_y = rate
end
end
end
复制代码
地图名显示窗口
#==============================================================================
# ■ Window_Mapname
#------------------------------------------------------------------------------
# Draws the Map name
#==============================================================================
class Window_Mapname < Window_Base
#--------------------------------------------------------------------------
# Set up
#--------------------------------------------------------------------------
def initialize
super(0, 0, 200, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = 0
#self.z = 10
refresh
end
#--------------------------------------------------------------------------
# Draws info on screen
#--------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.font.size = 20
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 60, 32, "位点",0)
self.contents.font.size = 18
self.contents.font.color = text_color(4)
self.contents.draw_text(4, 0, 170, 32, $game_map.name,1)
end
end
复制代码
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
TERENCE
时间:
2009-4-16 03:40
你给的地图名显示窗口的脚本
感觉怪怪的
不但不能用
$game_map.name
也没这种东西嘿??
我现在有办法帮你解决此问题,
但你给的地图名显示窗口的脚本怪怪的...??
作者:
君迁子
时间:
2009-4-16 03:55
#========================================
#■ Game_Map
#----------------------------------------
# Setting functions for the Map
#========================================
class Game_Map
def name
$map_infos[@map_id]
end
end
复制代码
忘了一段这个=v=b
是从以前有个FF7菜单里面弄出来的|||||
作者:
TERENCE
时间:
2009-4-16 04:11
地图名显示窗口中的
self.contents.draw_text(4, 0, 170, 32, $game_map.name,1)
換成.....
newstr = $game_map.name.split(/★/)
self.contents.draw_text(4, 0, 170, 32, newstr[0],1)
試試 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
君迁子
时间:
2009-4-16 04:15
可以了!多谢{/hx}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1