赞 | 4 |
VIP | 44 |
好人卡 | 11 |
积分 | 12 |
经验 | 54954 |
最后登录 | 2021-10-2 |
在线时间 | 1276 小时 |
Lv3.寻梦者 ○赛
- 梦石
- 0
- 星屑
- 1249
- 在线时间
- 1276 小时
- 注册时间
- 2013-1-22
- 帖子
- 2246
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 天地有正气 于 2013-9-7 14:48 编辑
- $地名 = "no"
- $地名X坐标 = 120
- $地名Y坐标 = 10
- $地名不透明度 = 180
- $地名内容不透明度 = 255
- $地名宽 = 420
- $地名高 = 64
- class Window_WindowName < Window_Base
- def initialize
- super(0, 0, 0, 0)
- self.opacity = $地名不透明度
- self.x = $地名X坐标
- self.y = $地名Y坐标
- self.contents_opacity = $地名内容不透明度
- self.width = $地名宽
- self.height = $地名高
- self.contents = Bitmap.new(width - 32, height - 32)
- refresh
- end
- def refresh
- self.contents.clear
- cx = contents.text_size($地名).width
- self.contents.font.color = Color.new(255, 255, 255)
- self.contents.draw_text($地名宽/2-cx/2-16, 0, cx, 32, $地名.to_s)
- end
- end
- class Scene_Map
- #--------------------------------------------------------------------------
- # ● 主处理
- #--------------------------------------------------------------------------
- def main
- # 生成活动块
- @spriteset = Spriteset_Map.new
- # 生成信息窗口
- @message_window = Window_Message.new
- @window_windowname = Window_WindowName.new
- # 执行过渡
- Graphics.transition
- # 主循环
- loop do
- # 刷新游戏画面
- Graphics.update
- # 刷新输入信息
- Input.update
- # 刷新画面
- update
- # 如果画面切换的话就中断循环
- if $scene != self
- break
- end
- end
- # 准备过渡
- Graphics.freeze
- # 释放活动块
- @spriteset.dispose
- # 释放信息窗口
- @message_window.dispose
- @window_windowname.dispose
- # 标题画面切换中的情况下
- if $scene.is_a?(Scene_Title)
- # 淡入淡出画面
- Graphics.transition
- Graphics.freeze
- end
- end
- #--------------------------------------------------------------------------
- # ● 刷新画面
- #--------------------------------------------------------------------------
- def update
- # 循环
- loop do
- # 按照地图、实例、主角的顺序刷新
- # (本更新顺序不会在满足事件的执行条件下成为给予角色瞬间移动
- # 的机会的重要因素)
- $game_map.update
- $game_system.map_interpreter.update
- $game_player.update
- # 系统 (计时器)、画面刷新
- $game_system.update
- $game_screen.update
- # 如果主角在场所移动中就中断循环
- unless $game_temp.player_transferring
- break
- end
- # 执行场所移动
- transfer_player
- # 处理过渡中的情况下、中断循环
- if $game_temp.transition_processing
- break
- end
- end
- # 刷新活动块
- @spriteset.update
- # 刷新信息窗口
- @message_window.update
- @window_windowname.update
- # 游戏结束的情况下
- if $game_temp.gameover
- # 切换的游戏结束画面
- $scene = Scene_Gameover.new
- return
- end
- # 返回标题画面的情况下
- if $game_temp.to_title
- # 切换到标题画面
- $scene = Scene_Title.new
- return
- end
- # 处理过渡中的情况下
- if $game_temp.transition_processing
- # 清除过渡处理中标志
- $game_temp.transition_processing = false
- # 执行过渡
- if $game_temp.transition_name == ""
- Graphics.transition(20)
- else
- Graphics.transition(40, "Graphics/Transitions/" +
- $game_temp.transition_name)
- end
- end
- # 显示信息窗口中的情况下
- if $game_temp.message_window_showing
- return
- end
- # 遇敌计数为 0 且、且遇敌列表不为空的情况下
- if $game_player.encounter_count == 0 and $game_map.encounter_list != []
- # 不是在事件执行中或者禁止遇敌中
- unless $game_system.map_interpreter.running? or
- $game_system.encounter_disabled
- # 确定队伍
- n = rand($game_map.encounter_list.size)
- troop_id = $game_map.encounter_list[n]
- # 队伍有效的话
- if $data_troops[troop_id] != nil
- # 设置调用战斗标志
- $game_temp.battle_calling = true
- $game_temp.battle_troop_id = troop_id
- $game_temp.battle_can_escape = true
- $game_temp.battle_can_lose = false
- $game_temp.battle_proc = nil
- end
- end
- end
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 不是在事件执行中或菜单禁止中
- unless $game_system.map_interpreter.running? or
- $game_system.menu_disabled
- # 设置菜单调用标志以及 SE 演奏
- $game_temp.menu_calling = true
- $game_temp.menu_beep = true
- end
- end
- # 调试模式为 ON 并且按下 F9 键的情况下
- if $DEBUG and Input.press?(Input::F9)
- # 设置调用调试标志
- $game_temp.debug_calling = true
- end
- # 不在主角移动中的情况下
- unless $game_player.moving?
- # 执行各种画面的调用
- if $game_temp.battle_calling
- call_battle
- elsif $game_temp.shop_calling
- call_shop
- elsif $game_temp.name_calling
- call_name
- elsif $game_temp.menu_calling
- call_menu
- elsif $game_temp.save_calling
- call_save
- elsif $game_temp.debug_calling
- call_debug
- end
- end
- end
- end
复制代码 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以上为不负责任的脚本、、、、、、、虽然也能用。。。。真正的在下面:- # 超烂地图名显示 by 小周
- # 功能:显示地图名,可以自定义一些属性。
- =begin
- 这是一个不负责任的地图名显示,虽然只有短短的十几行,
- 但这是小周写的第一个还算是比较实用的功能。特点是注
- 释比较全面,适合刚想研究脚本的和小周一样的新手查看
- 研究。
- =end
- class Window_WindowName < Window_Base
- # 用 class 新建一个类用来显示地图
- # 这里的 “< Window_Base”意思是
- # 说这个 Window_WindowName 新类是
- # Window_Base 的子类
- # 这样写好处是可以继承 Window_Base
- # 的定义,从而少些很多内容。
- def initialize
- # 初始化 新建一个方法
- super(0, 0, 0, 0)
- # 使用继承自Window_Base的方法
- # 框中数字的顺序为 x,y,width(宽),height(高)
- # 但是因为后面可以自己修改所以这里写什么都无所谓
- self.opacity = $地名不透明度
- # 定义窗口的不透明度
- # self是指本身的意思
- # 小贴士:如果遇到不理解的代码可以用有道词典查
- # 意思基本相同
- # 理解意思后就能够容易的明白代码的意思了
- # 而这里的不透明度使用的是全局变量
- # 这样做可以方便修改不透明度
- self.x = $地名X坐标
- # X值加入全局变量,这就是为什么可以随意调整X坐标的原因
- self.y = $地名Y坐标
- # Y值加入全局变量,这就是为什么可以随意调整Y坐标的原因
- self.contents_opacity = $地名内容不透明度
- # 内容不透明度的值代入全局变量,方便修改
- self.width = $地名宽
- # 宽度代入全局变量,方便修改
- self.height = $地名高
- # 高度代入全局变量,方便修改
- self.contents = Bitmap.new(width - 32, height - 32)
- # 其实这个我也不怎么理解,总之写窗口一定要有这句
- # 不然如果在窗口里面描绘文字、字符串等内容时会有
- # 显示不全的状况。
- refresh
- # 跳转到下面的刷新
- end
- # def的end
- def refresh
- # 刷新 建立一个新方法
- self.contents.clear
- # 清空内容
- cx = contents.text_size($地名).width
- # 计算地名的宽
- self.contents.font.color = Color.new(255, 255, 255)
- # 设置字体颜色
- self.contents.draw_text($地名宽/2-cx/2-16, 0, cx, 32, $地名.to_s)
- # 描绘地名 地名后要加.to_s使地名变成一个字符串
- # draw_text后面的格式也是x,y,width,height,这是对于
- # 这个窗口而言的数值,
- # cx是文字的宽度
- # 刚才已经计算过了
- # 第一个$地名宽/2-cx/2-16是我想了好久才想出来的
- # 一个使文字居中的算法,这样写能够使字居中
- # 如果想使文字靠左,把它们改为0就行了。
- end
- # def的end
- end
- # class的end
复制代码 这些注释写的应该都很明白了吧= =这是小周学写脚本后第二个小功能(第一个请见讨论区)
但是如果想让他显现出来的话就在这个脚本下面加上另一段Scene_Map的修改:这样,,,还是不行。。。
请在这两个脚本之前在加入这些内容:- $地名 = "农村"
- $地名X坐标 = 120
- $地名Y坐标 = 10
- $地名不透明度 = 180
- $地名内容不透明度 = 255
- $地名宽 = 420
- $地名高 = 64
复制代码 这些是属性的设定,可以自己更改。
如果想在游戏中更改的话只要用事件命令中的“脚本”就可以了
对了,还要注意,地图名是要手动修改“$地名”的,别忘了。
如果不想现实的话,只要将地名不透明度和地名内容不透明度
设为零就好了,(可以设置第一次进入时先不显示地名,而是显示图片)
最后,说一下这个脚本的冲突性应该是=0的,此脚本拓展性很高,自己
加一点内容就可以做到一些效果,注释写得都很明白了。
------------------------------------------------------------------------------------------------------------------------
很无耻的给我们百度rmxp团队吧打打广告:
点击进入,百度RMXP团队吧!!! |
|