Project1

标题: 可以让战斗的场景也能[横向循环]吗 [打印本页]

作者: RMVXA    时间: 2019-3-5 13:00
标题: 可以让战斗的场景也能[横向循环]吗
本帖最后由 RMVXA 于 2019-3-5 13:27 编辑

就是相当于在地图上设置了[横向循环],角色可以一直向左或向右不停地移动。
作者: KB.Driver    时间: 2019-3-5 13:46
本来战斗的场景就不能移动,要想战斗场景能移动你先有了这个插件脚本再说。
作者: 世界第一中二    时间: 2019-3-5 18:29
而且很重要的一点是,战斗场景左右是不连续的
没经过处理的背景会有一道很明显的分割线,死心吧,不光需要脚本还需要耗费大量时间ps
作者: RMVXA    时间: 2019-3-5 19:49
本帖最后由 RMVXA 于 2019-3-5 19:50 编辑
世界第一中二 发表于 2019-3-5 18:29
而且很重要的一点是,战斗场景左右是不连续的
没经过处理的背景会有一道很明显的分割线,死心吧,不光需要 ...


背景图片的问题解决了,想参加剧情大挑战,用SV100做了个有趣的战斗系统,但是人物到了屏幕尽头继续使用某些技能就会跳出去看不到了…… 貌似战斗屏幕的可视大小根据战斗背景图片来的。
作者: KB.Driver    时间: 2019-3-5 20:06
RMVXA 发表于 2019-3-5 19:49
背景图片的问题解决了,想参加剧情大挑战,用SV100做了个有趣的战斗系统,但是人物到了屏幕尽头继续使用 ...

RUBY 代码复制
  1. class Spriteset_Battle
  2.   BACK_WIDTH = 960
  3.   #--------------------------------------------------------------------------
  4.   # ● [别名修改]获取战场背景(地面)的位图
  5.   #--------------------------------------------------------------------------
  6.   alias battleback1_bitmap_horizontal_loop battleback1_bitmap
  7.   def battleback1_bitmap
  8.     src_bmp = battleback1_bitmap_horizontal_loop
  9.     return src_bmp if src_bmp.width >= BACK_WIDTH
  10.     src_rect = src_bmp.rect
  11.     bitmap = Bitmap.new(BACK_WIDTH, src_rect.height)
  12.     x = y = 0
  13.     while x < BACK_WIDTH
  14.       src_rect.width = [BACK_WIDTH - x, src_rect.width].min
  15.       bitmap.blt(x, y, src_bmp, src_rect)
  16.       x += src_rect.width
  17.     end
  18.     bitmap
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● [别名修改]获取战场背景(墙壁)的位图
  22.   #--------------------------------------------------------------------------
  23.   alias battleback2_bitmap_horizontal_loop battleback2_bitmap
  24.   def battleback2_bitmap
  25.     src_bmp = battleback2_bitmap_horizontal_loop
  26.     return src_bmp if src_bmp.width >= BACK_WIDTH
  27.     src_rect = src_bmp.rect
  28.     bitmap = Bitmap.new(BACK_WIDTH, src_rect.height)
  29.     x = y = 0
  30.     while x < BACK_WIDTH
  31.       src_rect.width = [BACK_WIDTH - x, src_rect.width].min
  32.       bitmap.blt(x, y, src_bmp, src_rect)
  33.       x += src_rect.width
  34.     end
  35.     bitmap
  36.   end
  37. end


调大BACK_WIDTH的值,至少大于屏幕的宽度
脚本使用前(震动会出黑边)


脚本使用后

作者: RMVXA    时间: 2019-3-5 22:02
本帖最后由 RMVXA 于 2019-3-7 07:25 编辑
KB.Driver 发表于 2019-3-5 20:06
class Spriteset_Battle
  BACK_WIDTH = 960
  #----------------------------------------------------- ...

我用的是SV100的横版战斗,用到了镜头放大的功能(始终150%),可能跟这个脚本不兼容吧,用了这个脚本后战斗背景图片把画面整个都挡住了。但还是要感谢大神!

我出现的是这样的问题:两人一直使用移动的话就跑到版边外了哈哈(每次移动时会利用SV控制镜头的功能把视野移到两人之间,但是到了版边就不灵了)。
所以想到了能让战场横向循环起来:
作者: RMVXA    时间: 2019-3-7 07:29
本帖最后由 RMVXA 于 2019-3-7 07:30 编辑

暂时用了限制技能次数的方法…… 但可能出现无法取胜的状况,最后只能逃走。





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