查看: 3168|回复: 10

[已经解决] 战斗背景滚动请教

[复制链接]
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2017-3-13 10:16:20 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 soulsaga 于 2017-3-13 10:28 编辑

如何才能滚动战斗背景?

https://rpg.blue/thread-292254-1-1.html?_dsign=825b9521
这帖子的方法看不懂啊..
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-3-13 11:53:31 | 显示全部楼层
本帖最后由 guoxiaomi 于 2017-3-30 21:21 编辑

帖子里已经说的很清楚了,添加一个 远景平面Plane,然后在 update 里修改 ox、oy。Plane的相关代码在 Spriteset_Map 里面抄就行。

1. 修改 Spriteset_Battle 的 initialize 方法
在生成背景活动块后面,添加生成远景平面的代码,高度设置为 1 则显示在原来的背景前,-1 显示在原来的背景后,用这个方法可以制作部分静止部分移动的战斗背景:
[pre lang="ruby"]# 生成战斗背景活动块
    @battleback_sprite = Sprite.new(@viewport1)
    #---------------------------------------
    @panorama = Plane.new(@viewport1)
    @panorama.z = 1
    #---------------------------------------[/pre]

2. 修改 Spriteset_Battle 的 dispose 方法
在释放背景活动块后面,添加释放远景平面的代码
[pre lang="ruby"]# 释放战斗背景活动块
    @battleback_sprite.dispose
    #---------------------------------------
    @panorama.dispose
    #---------------------------------------[/pre]

3. 修改 Spriteset_Battle 的 update 方法
在更新背景活动块后面,添加更新远景平面的代码,然后添加一下移动方式。
[pre lang="ruby"]    # 战斗背景的文件名与现在情况有差异的情况下
    if @battleback_name != $game_temp.battleback_name
      @battleback_name = $game_temp.battleback_name
      if @battleback_sprite.bitmap != nil
        @battleback_sprite.bitmap.dispose
      end
      @battleback_sprite.bitmap = RPG::Cache.battleback(@battleback_name)
      @battleback_sprite.src_rect.set(0, 0, 640, 320)
    end
        #-------------------------------------------------------------
    # 远景与现在的情况有差异发生的情况下
    if @panorama_name != $game_temp.battleback_name
      # 释放远景图
      if @panorama.bitmap != nil
        @panorama.bitmap.dispose
        @panorama.bitmap = nil
      end
      # 绘制远景图
      if @battleback_name =~ /★远景/        
        @panorama_name = $game_temp.battleback_name        
        @panorama.bitmap = RPG::Cache.panorama(@panorama_name, 0)
        Graphics.frame_reset
      end
    end
    # 远景图的移动
    @panorama.ox += 1
    #-------------------------------------------------------------[/pre]

4. 如果战斗图名称包含‘★远景’,在文件夹 Panoramas 下添加一个和当前战斗背景图同名的文件,将作为远景显示。

5. 如果要添加多层远景,也是类似的方法~

点评

偷偷删掉了 2 行多余的代码……  发表于 2017-3-30 21:23
感谢版主..现在可以了  发表于 2017-3-30 21:19
我测试一下看看……  发表于 2017-3-30 10:39
滚动........  发表于 2017-3-30 10:21
我发现有个问题..战斗中换成瀼动背景后战斗中没法换回普通背景..  发表于 2017-3-30 10:21

评分

参与人数 2星屑 +140 梦石 +1 收起 理由
RyanBern + 1 认可答案
soulsaga + 140 精品文章

查看全部评分

回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
 楼主| 发表于 2017-3-14 20:27:23 | 显示全部楼层
guoxiaomi 发表于 2017-3-13 11:53
帖子里已经说的很清楚了,添加一个 远景平面Plane,然后在 update 里修改 ox、oy。Plane的相关代码在 Sprit ...

那个..你发的@Panorama = Plane.new(@viewport1
用了大写P..

点评

额……其实那里一开始是个@,我后来改了一下被输入法坑了。已修改  发表于 2017-3-14 20:47

评分

参与人数 1星屑 +66 收起 理由
guoxiaomi + 66 塞糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部