Project1

标题: 角色名与地图名 [打印本页]

作者: a6363635    时间: 2011-6-6 10:24
标题: 角色名与地图名
我想有很多人知道A Story这个范例游戏吧。很多游戏的图大多都是从那COPY来的。当然这是题外话了。我想请教的事地图名字的
显示问题。我发现他的方法是与修改角色名连接起来的。修改角色名就可修改地图名。不过一些迷宫图他是采用直接显示图片的貌似。这个我是会的。我就是想知道具体是怎么实现修改角色名来显示地图名的。我的确看见他的脚本里有。不过还是不懂。他的地图名做的就像空之轨迹和伊苏一样。上面中文下面英文,当中一条线。当然直接用事件并行处理显示图片可以做到。
不过个人觉得这样会大大提高游戏容量,会让玩家不想下载,因为后期修改时我还想插一到两个视频。所以哪位高手知道怎么做吗。搜索到的显示地图名都有些不足的地方,比如我按ESC打开菜单,反回游戏后会再次显示,战斗结束后也会再次显示,有点蛋疼。。。其实也不必做到那么牛叉啦,能实现地图名显示,比较OK点就行了~先谢谢各位帮助啊~
作者: uniquetruth    时间: 2011-6-6 13:50
本帖最后由 uniquetruth 于 2011-6-6 13:53 编辑

将以下代码插入Scene_Map脚本页的第70行,也就是最开始的loop do循环结束之后
  1. if @tip != nil
  2.   @interval -= 1
  3.   if @interval == 0
  4.     @tip.bitmap.dispose
  5.     @tip.dispose
  6.   end
  7. end
复制代码
再将以下代码插入同一页的279行,也就是@spriteset = Spriteset_Map.new之后
  1.     mapinfos = load_data("Data/MapInfos.rxdata")
  2.     mapname = mapinfos[$game_map.map_id].name.split("@")
  3.     if mapname[0].length*2 > mapname[1].length
  4.       width =  mapname[0].length * 16
  5.     else
  6.       width = mapname[1].length * 8
  7.     end
  8.     @tip = Sprite.new
  9.     @tip.x = 400
  10.     @tip.y = 20
  11.     @tip.bitmap = Bitmap.new(width,96)
  12.     @tip.bitmap.draw_text(0,0,width,32,mapname[0],1)
  13.     @tip.bitmap.fill_rect(0,32,width,5,Color.new(255,255,255))
  14.     @tip.bitmap.draw_text(0,37,width,32,mapname[1],1)
  15.     @interval = 60
复制代码
然后地图名命名的时候使用格式:中文名@英文名
示例

我只是纯粹实现了功能,效果没什么美感,就不截图了……
作者: ClaudeBell    时间: 2011-6-6 15:37
可以用哈希表
地图ID=>"英文名"
通过地图ID显示地图名,再从哈希表中查找对应的英文名
至于按Esc后会再次显示地图名,是因为重新载入地图,你修改他的方法,当地图切换时再显示地图名,重新载入则不显示
作者: a6363635    时间: 2011-6-6 17:45
感谢楼上2位的帮忙,1楼的会出现错误,2楼的哈希表不是很懂,虽然学过- -我还是用图片吧。。。
作者: uniquetruth    时间: 2011-6-6 22:07
本帖最后由 uniquetruth 于 2011-6-6 22:11 编辑
a6363635 发表于 2011-6-6 17:45
感谢楼上2位的帮忙,1楼的会出现错误,2楼的哈希表不是很懂,虽然学过- -我还是用图片吧。。。 ...


说错了,第一段代码插入后后面的行数就步数279了,应该把第二段插入284行

我RMXP1.02运行无错误啊,1.03没用过
效果:

LZ你报的什么错?




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