Project1

标题: 如何用远景图来做地图? [打印本页]

作者: 烂屁    时间: 2012-4-30 21:38
标题: 如何用远景图来做地图?
用VA来做的话
我自己用SAI画了一张1920X1280(pixel),分辨率72(pixel)的地图
在VA里面设置地图大小是宽60X高40,把我画的地图作为远景图发现远景图卷动速度比人物行走速度慢

然后上论坛查了一下,发现这个帖子
http://rpg.blue/forum.php?mod=viewthread&tid=224229
这个帖子遇到的情况跟我基本一样

但是VA好像没有这行代码,我自己找了一下脚本翻了下帮助
对GAME_MAP里面157~180行里的数字做了下改动,然后地图的卷动基本跟得上人物行走速度了
但是换到另外一张地图的时候又根本上速度了。不知道应该怎么解决...如果有脚本能对付这种情况就好了。
或者有没有人肯教教我去哪里修改这个卷动速度

【让远景图和地图卷动速度同步】或者【用远景图做地图的方法】
dsu_plus_rewardpost_czw
作者: hcm    时间: 2012-5-1 10:45
大不了把远景图做成地图图块,只要注意通行设置就没问题。
作者: 烂屁    时间: 2012-5-1 13:54
hcm 发表于 2012-5-1 10:45
大不了把远景图做成地图图块,只要注意通行设置就没问题。

我懂你意思了..前面抱歉,可是如果做成图块的话,形状长宽就有限制了,如果要做很宽的地图那就要把一张画好的地图切成几块来排版成图块不是么.总觉得好麻烦而且容易出错啊,直接从脚本里面调整远景图的速度难度不是应该更小吗..
作者: hcm    时间: 2012-5-1 14:13
这种情况用脚本比直接处理图片方便的前提是脚本是复制粘贴的或者是脚本帝(可惜我不是)吧。
每大块的大小为256*512,不算很小,我觉得小心点应该不会出错,
或者还有一个方法,就是每个地图的大小都是窗口大小,不让远景图移动,同时弄两个透明图块,
一个可通行一个不可,在远景图上按地图通行关系排布。
(但这个方法和你想要的那个脚本方法都有个致命缺点,就是不能让地图上的任何东西挡在角色上方)
我知道的就那么多了。
作者: 烂屁    时间: 2012-5-2 23:11
我发现这个双远景图脚本正好合适我的要求啊,就是远景图的卷动速度和地图卷动速度一样的。
谁帮我看看怎么改把它第二张远景图去掉或者调成普通的远景图的卷动速度?
  1. #

  2. # rm va双远景地图 by shironeko

  3. #由于本脚本乃新手作品,可能会出现一些冲突和效率低下的情况,如发现错误,请见谅.
  4. #


  5. #==============================================================================
  6. # ■ Spriteset_Map
  7. #------------------------------------------------------------------------------
  8. #  处理地图画面精灵和图块的类。本类在 Scene_Map 类的内部使用。
  9. #==============================================================================

  10. class Spriteset_Map

  11.   #--------------------------------------------------------------------------
  12.   # ● 生成远景图
  13.   #--------------------------------------------------------------------------
  14.   def create_parallax
  15.     @parallax = Plane.new(@viewport1)
  16.     @parallax.z = -100
  17.     @parallax2 = Plane.new(@viewport1)
  18.     @parallax2.z = 200
  19.   end

  20.   #--------------------------------------------------------------------------
  21.   # ● 释放
  22.   #--------------------------------------------------------------------------
  23.   def dispose
  24.     dispose_tilemap
  25.     dispose_parallax
  26.     dispose_parallax2
  27.     dispose_characters
  28.     dispose_shadow
  29.     dispose_weather
  30.     dispose_pictures
  31.     dispose_timer
  32.     dispose_viewports
  33.   end
  34.   
  35.   #--------------------------------------------------------------------------
  36.   # ● 释放远景图2
  37.   #--------------------------------------------------------------------------
  38.   def dispose_parallax2
  39.     @parallax2.bitmap.dispose if @parallax2.bitmap
  40.     @parallax2.dispose
  41.   end
  42.   
  43.   
  44.   #--------------------------------------------------------------------------
  45.   # ● 更新画面
  46.   #--------------------------------------------------------------------------
  47.   def update
  48.     update_tileset
  49.     update_tilemap
  50.     update_parallax
  51.     update_characters
  52.     update_shadow
  53.     update_weather
  54.     update_pictures
  55.     update_timer
  56.     update_viewports
  57.   end

  58.   #--------------------------------------------------------------------------
  59.   # ● 更新远景图
  60.   #--------------------------------------------------------------------------
  61.   def update_parallax
  62.     if @parallax_name != $game_map.parallax_name
  63.       @parallax_name = $game_map.parallax_name
  64.       @parallax.bitmap.dispose if @parallax.bitmap
  65.       @parallax.bitmap = Cache.parallax(@parallax_name)
  66.     sign = @parallax_name[/^[\!\$]./]
  67.         if sign != nil and sign.include?('$')
  68.         @parallax2.bitmap.dispose if @parallax2.bitmap
  69.         @parallax2.bitmap = Cache.parallax(@parallax_name +'_2')
  70.         @parallax2.ox = $game_map.parallax_ox(@parallax.bitmap)
  71.         @parallax2.oy = $game_map.parallax_oy(@parallax.bitmap)
  72.       end
  73.       Graphics.frame_reset
  74.     end
  75.     sign = @parallax_name[/^[\!\$]./]
  76.         if sign != nil and sign.include?('$')
  77.         @parallax.ox = $game_map.display_x * 32
  78.         @parallax.oy = $game_map.display_y * 32
  79.         @parallax2.ox = $game_map.display_x * 32
  80.         @parallax2.oy = $game_map.display_y * 32
  81.         else
  82.         @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
  83.         @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
  84.     end
  85.   end
  86. end

复制代码

作者: Luciffer    时间: 2012-5-2 23:31
不需要去掉的吧。。。弄透明的或者雾状有时也需要的呗。。。
话说这是VX脚本还是ACE的?ACE有双远景的吗?
作者: 烂屁    时间: 2012-5-3 00:00
Luciffer 发表于 2012-5-2 23:31
不需要去掉的吧。。。弄透明的或者雾状有时也需要的呗。。。
话说这是VX脚本还是ACE的?ACE有双远景的吗? ...

这是VA的脚本,我从索引那里翻来的范例里面抽出来的。
如果不去掉的话找不到$XXX_2的图片文件这个脚本就会错误,能去掉就最好了。
嗯..不去掉也可以,如果能让第二张远景图的卷动速度像普通远景图一样也成,话说怎么改第二张远景的透明度?
作者: Luciffer    时间: 2012-5-3 00:04
完全透明的远景二,你凑合着放一个上去阻止报错就行了吧。。。
作者: ROM    时间: 2012-5-3 10:37
弄透明图片很简单的
你先弄张纯色的图然后导入,导入时候把那个颜色选成透明就可以了




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