设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3593|回复: 6
打印 上一主题 下一主题

[已经解决] 话说如何通过地图备注获取地图的ID?

[复制链接]

Lv3.寻梦者

梦石
3
星屑
160
在线时间
240 小时
注册时间
2013-10-19
帖子
95
跳转到指定楼层
1
发表于 2015-11-19 02:12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 漫天游弋 于 2015-11-19 02:20 编辑

如题;
关于va如何获取地图备注只要在 Game_Map里加上下面这一段就行了【应该都知道= =
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取显示备注  #在其它地方调用可以语句为:$game_map.note
  3. #--------------------------------------------------------------------------
  4.   def note
  5.     @map.note
  6.   end


但是..
好像地图的备注和地图的ID没啥关联性,所以得来此求助、、


好吧,如果看不懂标题的话我就举个栗子:
角色在地图1,获取了当前地图的备注之后,通过自己定的算法得出【地图2的备注】,然后如何通过【地图2的备注】来获取【地图2的地图ID】呢?

点评

@余烬之中 每个地图的备注肯定是唯一性的,备注就是用来区分a类地图和b类地图的。  发表于 2015-11-21 13:50
看不到要用备注的必要性  发表于 2015-11-21 09:52
首先你得确定 每个地图的备注都有唯一性 比如 地图2不能和地图3有相同的备注  发表于 2015-11-21 09:51

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2015-11-19 07:18:40 | 只看该作者
新建一个哈希表,把每个地图的备注和地图id关联起来,需要的时候,查表

点评

唔,果然得用哈希表么,本来想用case的,不过数量多了话果然还是太麻烦了。随便能帮我看一下楼下的代码哪里可以优化的吗~感谢~  发表于 2015-11-21 02:05

评分

参与人数 1星屑 +10 收起 理由
漫天游弋 + 10 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
160
在线时间
240 小时
注册时间
2013-10-19
帖子
95
3
 楼主| 发表于 2015-11-21 02:06:27 | 只看该作者
本帖最后由 漫天游弋 于 2015-11-23 13:07 编辑

果然看上去有点乱【明明事件就可以弄好的,为毛要用脚本啦!
  1. class Game_Interpreter  
  2. #=========================================
  3. #  通过地图备注查找地图id                 by_漫天游弋
  4. #==============================
  5. #变量备忘
  6. #$game_variables[9]  =>  A类地图的备注
  7. #$game_variables[8]  =>  B类世界的备注
  8. #$game_variables[7]  =>  A类地图ID
  9. #$game_variables[6]  =>  B类世界ID
  10. #$game_variables[5] = 玩家的地图y
  11. #$game_variables[4] = 玩家的地图x
  12. #==============================
  13.   def map_hash_beta
  14. # 哈希表
  15.     map_hash = {
  16.     #A类地图的备注
  17.     "1000" =>3,
  18.     "1001" =>nil,
  19.     "1002" =>nil,
  20.   
  21.     #B类地图的备注
  22.     "1100" =>2,
  23.     "1101" =>nil,
  24.     "1102" =>nil
  25.     }
  26. #==============================
  27. # 保存玩家坐标
  28.   $game_variables[4] = $game_player.x
  29.   $game_variables[5] = $game_player.y
  30. #=============================
  31. # 判断语句
  32.   if $game_map.note.to_i < 1100 #当前为A类的地图

  33.     $game_variables[8] = $game_map.note.to_i #B类地图的备注
  34.     $game_variables[8] +=100
  35.     #哈希表查找: B类的地图ID => 地图备注
  36.     $game_variables[6] = map_hash[$game_variables[8].to_s].to_i

  37.     #切换到B类的地图
  38.     $game_player.reserve_transfer($game_variables[6],
  39.     $game_variables[4], $game_variables[5], 0)  
  40.     $game_temp.fade_type = 2  #无渐变
  41.   else  #当前为B类地图

  42.     $game_variables[9] = $game_map.note.to_i #A类地图的备注
  43.     $game_variables[9] -=100
  44.     #哈希表查找: A类地图ID => 地图备注
  45.     $game_variables[7] = map_hash[$game_variables[9].to_s].to_i
  46.    
  47.     #切换到A类地图
  48.     $game_player.reserve_transfer($game_variables[7],
  49.     $game_variables[4], $game_variables[5], 0)  
  50.     $game_temp.fade_type = 2
  51. end
  52.   

  53. end #map_hash_beta
  54. end   #class
复制代码
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

4
发表于 2015-11-21 07:29:17 | 只看该作者
漫天游弋 发表于 2015-11-21 02:06
果然看上去有点乱【明明事件就可以弄好的,为毛要用脚本啦! ...

不麻烦的话你怎么能意识到你想通过备注来定位某张地图的思路有多蠢

点评

求指教!本来我是想通过地图ID来区分A类地图和B类地图的。但是地图id已经打乱的情况下,也只能用哈希表来管理了吧?= =  发表于 2015-11-21 09:34
要实现相同的效果完全没必要通过备注进行,拘泥于如何通过备注获取到地图本身就走偏了  发表于 2015-11-21 09:30
orz,毕竟以我目前的水平想实现这个方法,只能想到这个思路了  发表于 2015-11-21 09:20
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

5
发表于 2015-11-23 10:17:18 | 只看该作者
没看懂你要实现什么效果

区分A类地图和B类地图是为了做什么?
单纯的区分的话,在地图载入时读取一下备注就可以区分了

点评

活捉连帖的m5  发表于 2015-11-23 10:38
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
3
星屑
160
在线时间
240 小时
注册时间
2013-10-19
帖子
95
6
 楼主| 发表于 2015-11-23 13:06:01 | 只看该作者
喵呜喵5 发表于 2015-11-23 10:17
没看懂你要实现什么效果

区分A类地图和B类地图是为了做什么?

好吧,原来是我没表达清楚。
其实我上面那个代码已经把思路说的很明显了。
我想做一个A类地图和B类地图可以随时切换的功能。
说通俗一点就是表世界和里世界的地图可以互相切换。
比如角色在A类地图的地图1,使用切换功能,就会转到B类地图的地图1,反过来也一样呢。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

7
发表于 2015-11-23 14:11:19 | 只看该作者
漫天游弋 发表于 2015-11-23 13:06
好吧,原来是我没表达清楚。
其实我上面那个代码已经把思路说的很明显了。
我想做一个A类地图和 ...

表里世界一一对应的话,A的备注里写上B的ID,B的备注里写上A的ID,结束

点评

啊,也对。。。总之十分感谢回答了我那么多愚蠢的问题= =!  发表于 2015-11-23 15:43
或者,反正你这互相切换都是通过代码实现的,切换成功后顺便 打开/关闭 一个开关不就结了  发表于 2015-11-23 15:26
里世界的备注加一行"里世界",需要判断的时候直接看看当前玩家所在的地图备注有没有里世界呗  发表于 2015-11-23 15:26
不过,问题又来了,如果备注是id的话,只是互相切换地图还好,但是怎么区分当前是里世界,还是表世界呢?  发表于 2015-11-23 15:23
6666,是我想复杂了!  发表于 2015-11-23 15:00

评分

参与人数 2星屑 +10 梦石 +1 收起 理由
taroxd + 1 认可答案
漫天游弋 + 10 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 03:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表