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

Project1

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

[悬赏]如何进行动态远景的设置?

 关闭 [复制链接]

Lv1.梦旅人

百魅大侠

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-6-9
帖子
615
跳转到指定楼层
1
发表于 2007-8-13 07:05:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如《惑》《念颜》,用远景图做的游戏的那些瀑布小溪的流动或是是如何做出来的?
d…豆腐兄说用类似动态战斗背景的方法,还有说用自动元件的,我试验后失败了,有
哪位高人能不吝啬赐教.VIP的话只管开吧~
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

百魅大侠

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-6-9
帖子
615
2
 楼主| 发表于 2007-8-13 07:05:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如《惑》《念颜》,用远景图做的游戏的那些瀑布小溪的流动或是是如何做出来的?
d…豆腐兄说用类似动态战斗背景的方法,还有说用自动元件的,我试验后失败了,有
哪位高人能不吝啬赐教.VIP的话只管开吧~
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

传奇

梦石
0
星屑
50
在线时间
4 小时
注册时间
2007-4-10
帖子
427
3
发表于 2007-8-13 07:09:06 | 只看该作者
对不起  我不会  来逛下 {/tp}
版主对此帖的评论:『在这里逛下是要付出代价的。』,积分『-100』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

百魅大侠

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-6-9
帖子
615
4
 楼主| 发表于 2007-8-13 07:14:59 | 只看该作者

以下引用孤独de思念于2007-8-12 23:09:06的发言:

对不起  我不会  来逛下  




LS真水啊...可要庆幸K'没在{/gg}
站上几个类似的帖都是不了了之,不知道这次....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2005-10-26
帖子
144
5
发表于 2007-8-14 08:38:35 | 只看该作者
用事件…
将动画一帧一帧的放到行走图上,
RM默认显示行走图的宽1/4,高1/4,所以行走图画布的1/16要装的下你的图片大小,然后自定义让他循环变话行走图…
这个方法只是显示出来比较方便且不用改脚本的方法,地图通行还要另外设置
在下唯一完整版Game完成…死而无憾了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

6
发表于 2007-8-14 08:50:07 | 只看该作者
以下引用黑暗之神于2007-8-14 0:38:35的发言:

用事件…
将动画一帧一帧的放到行走图上,
RM默认显示行走图的宽1/4,高1/4,所以行走图画布的1/16要装的下你的图片大小,然后自定义让他循环变话行走图…
这个方法只是显示出来比较方便且不用改脚本的方法,地图通行还要另外设置

很好的方法。

“豆腐兄说用类似动态战斗背景的方法”也是正确的,实际上就是远景图用几张图片来回循环做成动画,可参考我动态战斗背景的那个录像教学。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
764
在线时间
574 小时
注册时间
2006-5-17
帖子
84
7
发表于 2007-8-15 02:46:30 | 只看该作者
记得站上有范例可能和LZ要的效果符合,但很卡...{/gg}
http://rpg.blue/viewthread.php?tid=52290&ntime=2007%2D8%2D14+18%3A40%3A11
回复 支持 反对

使用道具 举报

Lv1.梦旅人

百魅大侠

梦石
0
星屑
50
在线时间
1 小时
注册时间
2006-6-9
帖子
615
8
 楼主| 发表于 2007-8-15 07:36:44 | 只看该作者
以下引用rubygomax于2007-8-14 18:46:30的发言:

记得站上有范例可能和LZ要的效果符合,但很卡...
http://rpg.blue/viewthread.php?tid=52290&ntime=2007%2D8%2D14+18%3A40%3A11


这个方法我已经试过,循环地更改远景图,非常非常卡,在大的地图上是行不通的
到是3楼的方法不错,但不过一些在地图上,可能角色会被变换的东西
给遮挡了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
111
在线时间
74 小时
注册时间
2006-5-29
帖子
453
9
发表于 2007-8-15 08:35:56 | 只看该作者
{/fd}刚看了下念颜的工程。发现作者只是循环了更换远景的脚本指令而已....
以下这个应该是一目了然吧.{/tp}

◆循环
 ◆$game_map.panorama_name = "htb (0)"
 ◆等待3桢
 ◆$game_map.panorama_name = "htb (1)"
 ◆等待3桢
 ◆$game_map.panorama_name = "htb (2)"
 ◆等待3桢
 ◆$game_map.panorama_name = "htb (3)"
 .
 .略。以此类推
 .
 ◆$game_map.panorama_name = "htb (9)"
◆以上反复
【我的百度空间】
 不定时更新绘画或像素图~~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
676
在线时间
224 小时
注册时间
2006-12-7
帖子
839
10
发表于 2007-8-15 17:38:48 | 只看该作者
我就是用那个刷远景图的办法做的
新建一层了刷 底层的不变
变动的那一层我用的透明的PNG文件 把重复部分去掉 压缩索引颜色之后不会很大的
比如原来的商业素材有3张远景图a,b,c
我就把远景图设为a
然后用三张PNG来刷:一张空白透明,一张b,一张c
根据map_id调整刷图的速度
好像不是很卡...处理图片的时候注意把远景图压缩一下就OK
  1. #==============================================================================
  2. # 本脚本来自www.66rpg.com,使用前请参考制作录像
  3. #==============================================================================
  4. # ■ Spriteset_Map
  5. #------------------------------------------------------------------------------
  6. #  处理地图画面活动块和元件的类。本类在
  7. # Scene_Map 类的内部使用。
  8. #==============================================================================

  9. class Spriteset_Map
  10.   #--------------------------------------------------------------------------
  11.   # ● 初始化对像
  12.   #--------------------------------------------------------------------------
  13.   def initialize
  14.     # 生成显示端口
  15.     @viewport1 = Viewport.new(0, 0, 640, 480)
  16.     @viewport2 = Viewport.new(0, 0, 640, 480)
  17.     @viewport3 = Viewport.new(0, 0, 640, 480)
  18.     @viewport2.z = 200
  19.     @viewport3.z = 5000
  20.     # 生成元件地图
  21.     @tilemap = Tilemap.new(@viewport1)
  22.     @tilemap.tileset = RPG::Cache.tileset($game_map.tileset_name)
  23.     for i in 0..6
  24.       autotile_name = $game_map.autotile_names[i]
  25.       @tilemap.autotiles[i] = RPG::Cache.autotile(autotile_name)
  26.     end
  27.     @tilemap.map_data = $game_map.data
  28.     @tilemap.priorities = $game_map.priorities
  29.     # 生成远景平面
  30.     @panorama = Plane.new(@viewport1)
  31.     @panorama.z = -1000
  32.     @panorama2 = Plane.new(@viewport1)
  33.     @panorama2.z = 3000
  34.     @panorama3 = Plane.new(@viewport1)
  35.     @panorama3.z = -999
  36.     # 生成雾平面
  37.     @fog = Plane.new(@viewport1)
  38.     @fog.z = 3000
  39.     # 生成角色活动块
  40.     @character_sprites = []
  41.     for i in $game_map.events.keys.sort
  42.       sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  43.       @character_sprites.push(sprite)
  44.     end
  45.     @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  46.     # 生成天气
  47.     @weather = RPG::Weather.new(@viewport1)
  48.     # 生成图片
  49.     @picture_sprites = []
  50.     for i in 1..50
  51.       @picture_sprites.push(Sprite_Picture.new(@viewport2,
  52.         $game_screen.pictures[i]))
  53.     end
  54.     # 生成计时器块
  55.     @timer_sprite = Sprite_Timer.new
  56.     # 刷新画面
  57.     update
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 释放
  61.   #--------------------------------------------------------------------------
  62.   def dispose
  63.     # 释放元件地图
  64.     @tilemap.tileset.dispose
  65.     for i in 0..6
  66.       @tilemap.autotiles[i].dispose
  67.     end
  68.     @tilemap.dispose
  69.     # 释放远景平面
  70.     @panorama.dispose
  71.     @panorama2.dispose
  72.     @panorama3.dispose
  73.     # 释放雾平面
  74.     @fog.dispose
  75.     # 释放角色活动块
  76.     for sprite in @character_sprites
  77.       sprite.dispose
  78.     end
  79.     # 释放天候
  80.     @weather.dispose
  81.     # 释放图片
  82.     for sprite in @picture_sprites
  83.       sprite.dispose
  84.     end
  85.     # 释放计时器块
  86.     @timer_sprite.dispose
  87.     # 释放显示端口
  88.     @viewport1.dispose
  89.     @viewport2.dispose
  90.     @viewport3.dispose
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 刷新画面
  94.   #--------------------------------------------------------------------------
  95.   def update
  96.     # 远景与现在的情况有差异发情况下
  97.     if @panorama_name != $game_map.panorama_name or
  98.        @panorama_hue != $game_map.panorama_hue
  99.       @panorama_name = $game_map.panorama_name
  100.       @panorama_hue = $game_map.panorama_hue
  101.       if @panorama.bitmap != nil
  102.         @panorama.bitmap.dispose
  103.         @panarama2.bitmap.dispose
  104.         @panarama3.bitmap.dispose
  105.         @panorama3.bitmap = nil
  106.         @panorama2.bitmap = nil
  107.         @panarama.bitmap = nil
  108.       end
  109.       if @panorama_name != ""
  110.         @panorama.bitmap = RPG::Cache.panorama(@panorama_name, @panorama_hue)
  111.     ################
  112.     case $game_map.map_id
  113.     when 2,3
  114.     @panorama3.bitmap = RPG::Cache.panorama(@panorama_name+"-0", @panorama_hue)
  115.     @panorama_frame_count = 0
  116.     else
  117.     end
  118.     ################  
  119.         Graphics.update #防卡死
  120.         @panorama2.bitmap = RPG::Cache.panorama(@panorama_name+"_2", @panorama_hue)
  121.       end
  122.       Graphics.frame_reset
  123.     end
  124.     # 雾与现在的情况有差异的情况下
  125.     if @fog_name != $game_map.fog_name or @fog_hue != $game_map.fog_hue
  126.       @fog_name = $game_map.fog_name
  127.       @fog_hue = $game_map.fog_hue
  128.       if @fog.bitmap != nil
  129.         @fog.bitmap.dispose
  130.         @fog.bitmap = nil
  131.       end
  132.       if @fog_name != ""
  133.         @fog.bitmap = RPG::Cache.fog(@fog_name, @fog_hue)
  134.       end
  135.       Graphics.frame_reset
  136.     end
  137.     # 刷新元件地图
  138.     @tilemap.ox = $game_map.display_x / 4
  139.     @tilemap.oy = $game_map.display_y / 4
  140.     @tilemap.update
  141.     # 刷新远景平面
  142.     @panorama.ox = $game_map.display_x / 4
  143.     @panorama.oy = $game_map.display_y / 4
  144.     @panorama2.ox = @panorama.ox
  145.     @panorama2.oy = @panorama.oy
  146.     @panorama3.ox = @panorama.ox
  147.     @panorama3.oy = @panorama.oy
  148.     #########################
  149.     # 刷新动态远景
  150.     case $game_map.map_id
  151.       when 3
  152.         if (Graphics.frame_count%25) == 0
  153.           @panorama_frame_count += 1
  154.           @panorama_frame_count = @panorama_frame_count%3
  155.         @panorama3.bitmap = RPG::Cache.panorama(@panorama_name+"-#{@panorama_frame_count}", @panorama_hue)
  156.         end
  157.       when 2
  158.         if (Graphics.frame_count%10) == 0
  159.           @panorama_frame_count += 1
  160.           @panorama_frame_count = @panorama_frame_count%3
  161.         @panorama3.bitmap = RPG::Cache.panorama(@panorama_name+"-#{@panorama_frame_count}", @panorama_hue)
  162.         end
  163.     else
  164.     end
  165.     #########################
  166.     # 刷新雾平面
  167.     @fog.zoom_x = $game_map.fog_zoom / 100.0
  168.     @fog.zoom_y = $game_map.fog_zoom / 100.0
  169.     @fog.opacity = $game_map.fog_opacity
  170.     @fog.blend_type = $game_map.fog_blend_type
  171.     @fog.ox = $game_map.display_x / 4 + $game_map.fog_ox
  172.     @fog.oy = $game_map.display_y / 4 + $game_map.fog_oy
  173.     @fog.tone = $game_map.fog_tone
  174.     # 刷新角色活动块
  175.     for sprite in @character_sprites
  176.       sprite.update
  177.     end
  178.     # 刷新天候图形
  179.     @weather.type = $game_screen.weather_type
  180.     @weather.max = $game_screen.weather_max
  181.     @weather.ox = $game_map.display_x / 4
  182.     @weather.oy = $game_map.display_y / 4
  183.     @weather.update
  184.     # 刷新图片
  185.     for sprite in @picture_sprites
  186.       sprite.update
  187.     end
  188.     # 刷新计时器块
  189.     @timer_sprite.update
  190.     # 设置画面的色调与震动位置
  191.     @viewport1.tone = $game_screen.tone
  192.     @viewport1.ox = $game_screen.shake
  193.     # 设置画面的闪烁色
  194.     @viewport3.color = $game_screen.flash_color
  195.     # 刷新显示端口
  196.     @viewport1.update
  197.     @viewport3.update
  198.   end
  199. end
  200. #==============================================================================
  201. # 本脚本来自www.66rpg.com,使用前请参考制作录像
  202. #==============================================================================
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-26 16:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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