赞 | 0 |
VIP | 164 |
好人卡 | 42 |
积分 | 1 |
经验 | 25008 |
最后登录 | 2017-9-16 |
在线时间 | 1141 小时 |
Lv1.梦旅人 梦·贤者
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 1141 小时
- 注册时间
- 2007-12-15
- 帖子
- 4100
|
我爱吴悦淇 发表于 2013-1-17 19:22
要怎么显示地图名呢?我已经在Game_Map开头添加了那一句,然后在脚本draw_text......内添上您给的那句, ...
虽然是老帖子,但是大概的思路我还是说一下。
1.你需要定义一个变量来显示地图名,我这里为了偷懒,不另外定义变量,只是利用地图的id。(详见后文)
2.你需要有一个描绘地图名的“容器”,可以用Sprite,也可以用Window,这里使用Window。
3.你需要定义一个Window,当然不是从零开始,这里有现成的基类Window_Base让你继承。当然,写代码也可以偷懒,找一个类似功能的简单Window,例如Window_Status,先照抄,然后改。在refresh方法中,加入了一个分歧,根据不同的地图id显示不同的信息。
4.你需要在你的地图场景中显示出这个Window,于是你需要增添一些代码先初始化,再释放(并不需要update)。
5.大功告成!
当然,上面说起来和做起来都好像很简单,但是,这一切都是基于你对ruby的基本语法还有默认脚本的结构有一个大致的了解之后,才会很容易做到。所以,先看默认脚本,再试着改,最后就能自己写了。加油!
详见脚本。- class Game_Map
- attr_reader :map_id
- end
- class Window_MapName < Window_Base
- def initialize
- super(0, 0, 160, 64)
- self.contents = Bitmap.new(width - 32, height - 32)
- self.opacity = 0
- refresh
- end
- def refresh
- self.contents.clear
- self.contents.font.color = Color.new(0,0,200)
- case $game_map.map_id
- when 1: map_name = "地图1"
- when 2: map_name = "地图2"
- when 3: map_name = "新地图"
- end
- self.contents.draw_text(0,0,160-32,32,map_name,1)
- end
- end
- class Scene_Map
- alias old_main main
- def main
- @map_name_window = Window_MapName.new
- @map_name_window.x = 640 - @map_name_window.width
- @map_name_window.y = 480 - @map_name_window.height
- old_main
- @map_name_window.dispose
- end
- end
复制代码 |
评分
-
查看全部评分
|