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

Project1

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

[原创发布] 【RMXP】仿卫星地图大地图【懒人莫用】

[复制链接]

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

跳转到指定楼层
1
 楼主| 发表于 2013-3-6 01:15:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 弗雷德 于 2013-5-25 12:56 编辑

功能其实很简单,就是一个大地图类,脚本还不到200行。但是要配合美工才能有比较好的效果,所以说懒人勿用。

地图需要自己绘制,小地图也是,地名也是,聚焦坐标需要自己计算……总之懒人勿用

效果大概就是:玩家按左右移动竖线,按上下移动横线,当纵贯线的交点坐标与最近的圆点距离在X值之内时,会自动聚焦,

按下确定键进行场所移动。设置方法在脚本都有写。










下面是俺游戏中的效果,总之美化靠自己:懒人勿用




下载地址:戳这里

提取码:znle

俺很少发布技术,因为俺的东西都需要美工的配合,而且都不是插件类。

最后:懒人勿用!

点评

帮你改了一个版本看看  发表于 2013-3-8 22:07
话说有点像游戏王TF系列的效果,大赞。另外……那个酒池肉林亮了……  发表于 2013-3-7 09:05
能用站內附件上傳不?迅雷我動不了啊...TUT  发表于 2013-3-6 21:31
格斗类3D游戏 比如虐杀原型之类的 倒是经常看到这类地图功能 但是RM这样的2D RPG很少见这种功能呢~  发表于 2013-3-6 20:21
以前只看到只显示大地图,没有角色位置标注的  发表于 2013-3-6 13:01

评分

参与人数 11星屑 +301 收起 理由
牛肉面 + 100 熊叔威武啊!
【凌】 + 4 精品文章
aaalbx + 12 有种Psycho Pass的感觉……
国猪eu + 7 很霸气的脚本
y610407721 + 12 这个用来做解密游戏不错也~
紫英晓狼1130 + 6 18400
wingzeroplus + 12 精品文章
月下耶鲁夫 + 66 必须塞糖
kefafa + 20 正好想要,瞌睡遇见了枕头~
芯☆淡茹水 + 12 精品文章

查看全部评分

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

2
 楼主| 发表于 2013-3-6 12:44:35 | 只看该作者
这么说吧,俺以前上班的地儿天天路过金钟墓园,印象不深刻不行啊。

点评

有VA的就好啦  发表于 2013-6-17 17:11
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
211
在线时间
905 小时
注册时间
2010-9-6
帖子
3229
3
发表于 2013-3-6 15:26:34 | 只看该作者
这个挺不错的,能否请教一下,大地图是用什么方法绘制的呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

梦石
0
星屑
1852
在线时间
2678 小时
注册时间
2010-6-26
帖子
3197

开拓者整合系统大赛RMVX达人剧作品鉴家

4
发表于 2013-3-6 19:45:28 | 只看该作者
“懒人勿用”戳中萌点~
来给大叔顶一下,感觉很有创意

点评

美国片里经常出现的场景……  发表于 2013-3-6 19:50

      情人怨遥夜,竟夕起相思
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
48 小时
注册时间
2010-8-10
帖子
46
5
发表于 2013-3-8 19:30:50 | 只看该作者
有点像使命召唤的加载动画效果
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
47
在线时间
976 小时
注册时间
2011-4-30
帖子
860
6
发表于 2013-3-8 19:37:40 | 只看该作者
本帖最后由 羞射了 于 2013-3-8 22:05 编辑

额,和我想象得不太一样啊,我记得那个啥夜啥曲的是不是也有类似的效果??我想象中是这个样子的。

TXT 代码复制
  1. ALLMAP = 1 #记录已开启地图的变量的ID。
  2. FR  = 20 #聚焦半径,当交叉点的坐标离地图目标距离在20个像素以内时,会自动移动靠近。
  3. module SATEMAP
  4.   #定义目标地图,举例:
  5.   #TAGMAP[1] = [400,139,14,4,8]
  6.   #1表示地图ID,400和139表示点在大地图上的坐标,14和4表示场所移动后的坐标。8是朝向。
  7.   #也就是说,当横轴与纵轴的交叉点坐标为400,139时,玩家按下确定键,角色就会面朝上移动到
  8.   #1号地图坐标为14,4的地点。
  9.   TAGMAP = []
  10.   TAGMAP[0] = [0,0,0,0,0,0]
  11.   TAGMAP[1] = [0,0,0,0,0,0]
  12.   TAGMAP[2] = [97,149,1,7,6,2]#森林,面朝右
  13.   TAGMAP[3] = [319,270,1,22,6,3]#山村,面朝右
  14.   TAGMAP[4] = [209,97,5,28,8,4]#沉默,面朝上
  15.   TAGMAP[5] = [565,328,10,1,2,5]#悬崖,面朝下
  16.   TAGMAP[6] = [505,84,1,9,6,6]#极北,面朝右
  17.   TAGMAP[7] = [395,136,1,9,6,7]#体内,面朝右
  18.   TAGMAP[8] = [477,206,20,30,8,8]#海港,面朝上
  19.   TAGMAP[9] = [453,341,11,32,8,9]#深渊,面朝上
  20. end
  21. #==============================================================================
  22. # ■ Scene_Satellite
  23. #------------------------------------------------------------------------------
  24. #  处理卫星地图画面
  25. #==============================================================================
  26. class Scene_Satellite
  27.   #--------------------------------------------------------------------------
  28.   # ● 初始化对像
  29.   #--------------------------------------------------------------------------
  30.   def initialize
  31.     @allmap_id = $game_variables[ALLMAP]
  32.     @focus = 0
  33.     @map_id = $game_map.map_id
  34.  
  35.     [url=home.php?mod=space&uid=36110]@Wait[/url] = 0
  36.     @scroll_time = 8
  37.     @m_real   = [nil,nil]
  38.     @m_target = [nil,nil]
  39.     @m_gap    = [nil,nil]
  40.     @tgm = SATEMAP::TAGMAP.dup
  41.     while @tgm[0][5] == 0
  42.       @tgm.shift
  43.     end
  44.     @index = @tgm.index(SATEMAP::TAGMAP[@map_id])
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 主处理
  48.   #--------------------------------------------------------------------------
  49.   def main
  50.     # 创建背景
  51.     @back = Sprite.new
  52.     @back.bitmap = Bitmap.new("Graphics/Systems/back")
  53.     # 创建X轴
  54.     @mm_x = Sprite.new
  55.     @mm_x.bitmap = Bitmap.new("Graphics/Systems/mm_x")
  56.     @mm_x.y = SATEMAP::TAGMAP[@map_id][1]
  57.     # 创建Y轴
  58.     @mm_y = Sprite.new
  59.     @mm_y.bitmap = Bitmap.new("Graphics/Systems/mm_y")
  60.     @mm_y.x = SATEMAP::TAGMAP[@map_id][0]
  61.     # 创建地点缩略图
  62.     @mm_icon = Sprite.new
  63.     @mm_icon.bitmap = Bitmap.new("Graphics/Systems/Icon/"+@map_id.to_s)
  64.     @mm_icon.x = 15
  65.     @mm_icon.y = 232
  66.  
  67.     # 创建地名
  68.     @mm_name = Sprite.new
  69.     @mm_name.bitmap = Bitmap.new("Graphics/Systems/Name/"+@map_id.to_s)
  70.     @mm_name.x = 60
  71.     @mm_name.y = 380
  72.      # 执行过度
  73.     Graphics.transition(30, "Graphics/Transitions/019-Whorl01" )
  74.     # 主循环
  75.     loop do
  76.       # 刷新游戏画面
  77.       Graphics.update
  78.       # 刷新输入信息
  79.       Input.update
  80.       # 刷新画面
  81.       update
  82.       # 如果画面切换就中断循环
  83.       if $scene != self
  84.         break
  85.       end
  86.     end
  87.     # 装备过渡
  88.     Graphics.freeze
  89.     # 释放窗口
  90.     @back.dispose
  91.     @mm_x.dispose
  92.     @mm_y.dispose
  93.     @mm_name.dispose
  94.     @mm_icon.dispose
  95.   end
  96.  
  97.   def auto_scroll
  98.     for i in 0..1
  99.       @m_real[i] = (@wait > 1)?(@m_target[i] - @m_gap[i] * (@wait ** 2) / (@scroll_time ** 2)):@m_target[i]
  100.     end
  101.     @mm_y.x,@mm_x.y = @m_real[0],@m_real[1]
  102.     @wait -= 1
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 刷新画面
  106.   #--------------------------------------------------------------------------
  107.   def update
  108.     if @wait > 0
  109.       auto_scroll
  110.       return
  111.     end
  112.  
  113.     if @map_id != @tgm[@index][5]
  114.      @map_id = @tgm[@index][5]
  115.     @mm_icon.bitmap = Bitmap.new("Graphics/Systems/Icon/"+@map_id.to_s)
  116.     @mm_name.bitmap = Bitmap.new("Graphics/Systems/Name/"+@map_id.to_s)
  117.     end
  118.   #  disjudge
  119.     # 按下 X 键的情况下
  120.     if Input.trigger?(Input::B)
  121.       # 演奏取消 SE
  122.      $game_system.se_play($data_system.cancel_se)
  123.      $scene = Scene_Map.new
  124.       return
  125.     end
  126. #========================================================
  127.     if Input.press?(Input::LEFT)
  128.      old = @tgm[@index]
  129.      @tgm.sort!{|a,b| a[0] - b[0]}
  130.      @index = @tgm.index(old)
  131.      @wait = @scroll_time
  132.      @m_real[0],@m_real[1] = @tgm[@index][0],@tgm[@index][1]
  133.      if @index == 0
  134.       x,y = @tgm[@tgm.size - 1][0],@tgm[@tgm.size - 1][1]
  135.       @index = @tgm.size - 1
  136.     else
  137.       x,y = @tgm[@index - 1][0],@tgm[@index - 1][1]
  138.       @index = @index - 1
  139.     end
  140.  
  141.     @m_target = [x,y]
  142.     for i in 0..1
  143.       @m_gap[i] = @m_target[i] - @m_real[i]
  144.     end
  145.  
  146.   end
  147. #========================================================
  148.     if Input.press?(Input::RIGHT)
  149.      old = @tgm[@index]
  150.      @tgm.sort!{|a,b| a[0] - b[0]}
  151.      @index = @tgm.index(old)
  152.      @wait = @scroll_time
  153.      @m_real[0],@m_real[1] = @tgm[@index][0],@tgm[@index][1]
  154.      if @index == @tgm.size - 1
  155.       x,y = @tgm[0][0],@tgm[0][1]
  156.       @index = 0
  157.     else
  158.       x,y = @tgm[@index + 1][0],@tgm[@index + 1][1]
  159.       @index = @index + 1
  160.     end
  161.  
  162.     @m_target = [x,y]
  163.     for i in 0..1
  164.       @m_gap[i] = @m_target[i] - @m_real[i]
  165.     end
  166.  
  167.   end
  168. #========================================================
  169.  
  170. #========================================================
  171.     if Input.press?(Input::UP)
  172.      old = @tgm[@index]
  173.      @tgm.sort!{|a,b| a[1] - b[1]}
  174.      @index = @tgm.index(old)
  175.      @wait = @scroll_time
  176.      @m_real[0],@m_real[1] = @tgm[@index][0],@tgm[@index][1]
  177.      if @index == 0
  178.       x,y = @tgm[@tgm.size - 1][0],@tgm[@tgm.size - 1][1]
  179.       @index = @tgm.size - 1
  180.     else
  181.       x,y = @tgm[@index - 1][0],@tgm[@index - 1][1]
  182.       @index = @index - 1
  183.     end
  184.  
  185.     @m_target = [x,y]
  186.     for i in 0..1
  187.       @m_gap[i] = @m_target[i] - @m_real[i]
  188.     end
  189.  
  190.   end
  191. #========================================================
  192.     if Input.press?(Input::DOWN)
  193.      old = @tgm[@index]
  194.      @tgm.sort!{|a,b| a[1] - b[1]}
  195.      @index = @tgm.index(old)
  196.      @wait = @scroll_time
  197.      @m_real[0],@m_real[1] = @tgm[@index][0],@tgm[@index][1]
  198.      if @index == @tgm.size - 1
  199.       x,y = @tgm[0][0],@tgm[0][1]
  200.       @index = 0
  201.     else
  202.       x,y = @tgm[@index + 1][0],@tgm[@index + 1][1]
  203.       @index = @index + 1
  204.     end
  205.  
  206.     @m_target = [x,y]
  207.     for i in 0..1
  208.       @m_gap[i] = @m_target[i] - @m_real[i]
  209.     end
  210.  
  211.   end
  212. #========================================================   
  213.  
  214.     if Input.trigger?(Input::C)
  215.     #  if @tag_lock
  216.       $game_system.se_play($data_system.decision_se)
  217.       $game_screen.start_tone_change(Tone.new(-255,-255,-255,0), 0)
  218.       $scene = Scene_Map.new
  219.       $game_temp.player_transferring = true
  220.       $game_temp.player_new_map_id = @map_id
  221.       $game_temp.player_new_x=SATEMAP::TAGMAP[@map_id][2]
  222.       $game_temp.player_new_y=SATEMAP::TAGMAP[@map_id][3]
  223.       $game_temp.player_new_direction = SATEMAP::TAGMAP[@map_id][4]  
  224.       $game_screen.start_tone_change(Tone.new(0,0,0,0), 10)
  225.  
  226.   end
  227.  
  228.   end
  229.  
  230. end
湿滑落式骑!
回复 支持 反对

使用道具 举报

Lv2.观梦者 (暗夜天使)

万兽

梦石
0
星屑
597
在线时间
2271 小时
注册时间
2006-11-4
帖子
4868

贵宾

7
 楼主| 发表于 2013-3-9 07:20:28 | 只看该作者
本帖最后由 弗雷德 于 2013-3-9 07:21 编辑
羞射了 发表于 2013-3-8 19:37
额,和我想象得不太一样啊,我记得那个啥夜啥曲的是不是也有类似的效果??我想象中是这个样子的。

ALLMAP ...

俺这个是模仿丧尸危机的,跟你那个效果不大一样呃。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3846
在线时间
1966 小时
注册时间
2013-1-3
帖子
9536
8
发表于 2013-3-9 08:09:34 | 只看该作者
这是熊叔的技术~才知道~
顶一下~
看起来效果超棒~
《宿愿·寻剑篇》正式版已经发布!快去看看!点击进入论坛发布贴
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
92 小时
注册时间
2011-9-4
帖子
59
9
发表于 2013-3-9 08:29:06 | 只看该作者
Nice!
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1697
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

10
发表于 2013-3-9 11:10:53 | 只看该作者
我想起了幻世录2的那种大地图风格哦呵呵呵……
我还以为卫星地图什么的就类似于我以前那种呢。

点评

这么一说那地图确实很像。  发表于 2013-3-9 11:33
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 18:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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