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

Project1

 找回密码
 注册会员
搜索

如何在战斗中改变战斗背景

查看数: 2451 | 评论数: 9 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-10-13 03:34

正文摘要:

如何在战斗中改变战斗背景,我准备了4张图,如果能循环改变,相当于战斗背景是一副动画了

回复

樱桃丸子aab 发表于 2017-10-15 01:23:12
樱桃丸子aab 发表于 2017-10-14 14:14
您好!实在辛苦您了,开关兼容了,但是它和烛光脚本又有点兼容,游戏进行到一半的时候有一定几率报错

( ...

谢谢您,完全成功了!我可以加您的联系方式吗,有问题还想请教您,谢谢!
樱桃丸子aab 发表于 2017-10-14 12:53:23
本帖最后由 樱桃丸子aab 于 2017-10-14 13:08 编辑
张咚咚 发表于 2017-10-13 09:29
# 僌儔僼傿僢僋僗傾儗僀傪庢摼
      w = XRXS_BP8::GA_W
      h = w * 3 / 4

您好,这行会报未定义方法错误

    xga.stretch_blt(xga.rect, bg, bg.rect)

脚本的496行 发生了 NoMethodError。undefined method 'rect' for nil:NilClass

我分析原因是您把开关限制去掉了

点评

重新复制2楼脚本试试  发表于 2017-10-14 13:59
位置没放错  发表于 2017-10-14 13:50
这个效果我想用在BOSS战,如果不用开关控制的话,碰到普通敌人时会出错  发表于 2017-10-14 13:49
测试时去了开关限制,不过这个和开关限制没关系的,是不是位置放错了  发表于 2017-10-14 13:36
新工程测试没问题的  发表于 2017-10-14 13:33
樱桃丸子aab 发表于 2017-10-13 23:32:03
樱桃丸子aab 发表于 2017-10-13 19:36
我已经测试可用了,可是和我的战斗视角移动脚本冲突,您看可以修改吗

...

您好,脚本插入之后可兼容,但是图片有偏移,战斗图整体偏移到了左上角,导致右下角有两块地方是黑色的,没显示(我的战斗图是640*480全屏型的,战斗是采用45度角战斗),还望想想解决办法,万分感谢!

点评

重新复制2楼脚本插入6楼482行  发表于 2017-10-14 08:53
樱桃丸子aab 发表于 2017-10-13 19:36:25

我已经测试可用了,可是和我的战斗视角移动脚本冲突,您看可以修改吗

  1. # 仴仯仴 No108. 僶僩儖僶僢僋丒Full-View亄壜摦僇儊儔 仴仯仴
  2. #
  3. # update 2006/ 4/16
  4. #
  5. #==============================================================================
  6. # 仩 僇僗僞儅僀僘億僀儞僩
  7. #==============================================================================
  8. module XRXS_BP8
  9.   #
  10.   # 僇儊儔堏摦懍搙
  11.   #  ( SPEED1 : 嫍棧暘妱悢丅彫偝偄傎偳憗偄
  12.   #    SPEED2 : 嵟掅堏摦懍搙[扨埵:px/F])
  13.   #
  14.   SPEED1 =  8
  15.   SPEED2 =  8
  16.   #
  17.   # GA偺墶暆僒僀僘傪愝掕 ( 1024:XGA僒僀僘丄640:VGA僒僀僘)
  18.   #
  19.   GA_W = 1024
  20. end
  21. #------------------------------------------------------------------------------
  22. # 仱 壜摦僇儊儔偺摦偒愝掕
  23. #------------------------------------------------------------------------------
  24. class Scene_Battle
  25.   #--------------------------------------------------------------------------
  26.   # 仠 僷乕僥傿僐儅儞僪僼僃乕僘奐巒
  27.   #--------------------------------------------------------------------------
  28.   alias xrxs_bp8_start_phase2 start_phase2
  29.   def start_phase2
  30.     # 僇儊儔丗僙儞僞儕儞僌
  31.     $xcam.centering
  32.     # 屇傃栠偡
  33.     xrxs_bp8_start_phase2
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # 仠 僼儗乕儉峏怴 (傾僋僞乕僐儅儞僪僼僃乕僘 : 僄僱儈乕慖戰)
  37.   #--------------------------------------------------------------------------
  38.   alias xrxs_bp8_update_phase3_enemy_select update_phase3_enemy_select
  39.   def update_phase3_enemy_select
  40.     # 尰嵼慖戰拞偺僄僱儈乕傪庢摼
  41.     enemy = $game_troop.enemies[@enemy_arrow.index]
  42.     # 僇儊儔丗拲栚
  43.     if @last_enemy_arrow != enemy
  44.       $xcam.watch(enemy)
  45.       @last_enemy_arrow = enemy
  46.     end
  47.     # 栠偡
  48.     xrxs_bp8_update_phase3_enemy_select
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # 仠 僄僱儈乕慖戰廔椆
  52.   #--------------------------------------------------------------------------
  53.   alias xrxs_bp8_end_enemy_select end_enemy_select
  54.   def end_enemy_select
  55.     # 僇儊儔丗僙儞僞儕儞僌
  56.     $xcam.centering
  57.     @last_enemy_arrow = nil
  58.     # 屇傃栠偡
  59.     xrxs_bp8_end_enemy_select
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # 仠 僼儗乕儉峏怴 (儊僀儞僼僃乕僘 僗僥僢僾 2 : 傾僋僔儑儞奐巒)
  63.   #--------------------------------------------------------------------------
  64.   alias xrxs_bp8_update_phase4_step2 update_phase4_step2
  65.   def update_phase4_step2
  66.     # 栠偡
  67.     xrxs_bp8_update_phase4_step2
  68.     # 僗僥僢僾 3 偵堏峴偡傞梊掕偺応崌
  69.     if @phase4_step == 3
  70.       # 傾僋僥傿僽側僶僩儔乕偑僶僩儖僼傿乕儖僪偵嫃傞応崌
  71.       if @active_battler.in_battlefield?
  72.         # 僇儊儔丗拲栚
  73.         $xcam.watch(@active_battler)
  74.       end
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # 仠 僼儗乕儉峏怴 (儊僀儞僼僃乕僘 僗僥僢僾 3 : 峴摦懁傾僯儊乕僔儑儞)
  79.   #--------------------------------------------------------------------------
  80.   alias xrxs_bp8_update_phase4_step3 update_phase4_step3
  81.   def update_phase4_step3
  82.     # 栠偡
  83.     xrxs_bp8_update_phase4_step3
  84.     # 僇儊儔僞乕僎僢僩偲側傝偆傞僞乕僎僢僩偺 X 暯嬒抣傪寁嶼
  85.     x_average  = 0
  86.     number     = 0
  87.     cam_target = nil
  88.     for target in @target_battlers
  89.       if target.in_battlefield?
  90.         x_average += target.x
  91.         number    += 1
  92.         cam_target = target
  93.       end
  94.     end
  95.     # 僇儊儔僞乕僎僢僩偑尒偮偐偭偨応崌
  96.     if number > 0
  97.       # 傕偟懳徾傾僯儊偑乽埵抲丗夋柺乿偺応崌
  98.       animation = $data_animations[@animation2_id]
  99.       if animation != nil and animation.position == 3
  100.         # 僇儊儔丗僙儞僞儕儞僌
  101.         $xcam.centering
  102.         # 僇儊儔丗僘乕儉傾僂僩
  103.         $xcam.zoomout
  104.       elsif number == 1
  105.         # 僇儊儔丗拲栚
  106.         $xcam.watch(cam_target)
  107.       else
  108.         # 僇儊儔丗巜掕 X 埵抲傪拲栚
  109.         $xcam.watch_at(x_average / number)
  110.       end
  111.     end
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # 仠 傾僼僞乕僶僩儖僼僃乕僘奐巒
  115.   #--------------------------------------------------------------------------
  116.   alias xrxs_bp8_start_phase5 start_phase5
  117.   def start_phase5
  118.     # 僇儊儔丗僙儞僞儕儞僌
  119.     $xcam.centering
  120.     # 屇傃栠偡
  121.     xrxs_bp8_start_phase5
  122.   end
  123. end
  124. #------------------------------------------------------------------------------
  125. # 僇僗僞儅僀僘億僀儞僩偙偙傑偱
  126. #==============================================================================

  127. #------------------------------------------------------------------------------
  128. #
  129. #    仱 壜摦僇儊儔 僔僗僥儉 仱
  130. #
  131. #==============================================================================
  132. # 仩 XCam
  133. #------------------------------------------------------------------------------
  134. #   壜摦僇儊儔傪埖偆僋儔僗偱偡丅
  135. #==============================================================================
  136. class XCam
  137.   #--------------------------------------------------------------------------
  138.   # 仜 岞奐僀儞僗僞儞僗曄悢
  139.   #--------------------------------------------------------------------------
  140.   attr_reader   :x
  141.   attr_reader   :y
  142.   attr_reader   :z
  143.   attr_accessor :x_destination
  144.   attr_accessor :y_destination
  145.   attr_accessor :z_destination
  146.   attr_accessor :watch_battler
  147.   attr_accessor :freeze_count
  148.   #--------------------------------------------------------------------------
  149.   # 仜 僆僽僕僃僋僩弶婜壔
  150.   #--------------------------------------------------------------------------
  151.   def initialize
  152.     # 僇儊儔弶婜埵抲寛掕
  153.     @x = 320
  154.     @y = 240
  155.     @z = 296
  156.     # 嵟戝斖埻偺寁嶼
  157.     @x_max = 0
  158.     @y_max = 0
  159.     @z_max = XRXS_BP8::GA_W * 37 / 128
  160.     # Z偺嵟戝惂尷
  161.     @z = @z_max if @z > @z_max
  162.     # 僇儊儔丗僙儞僞儕儞僌
  163.     self.centering
  164.     # 弶婜壔
  165.     @freeze_count = 0
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # 仜 僼儗乕儉峏怴
  169.   #--------------------------------------------------------------------------
  170.   def update
  171.     @moved = false
  172.     # 僇儊儔埵抲偺峏怴
  173.     if @freeze_count > 0
  174.       # 僼儕乕僘僇僂儞僩傪尭傜偡
  175.       @freeze_count -= 1
  176.       return
  177.     end
  178.     # 嵗昗庢摼
  179.     z_dest = @z_destination
  180.     x_dest = @watch_battler == nil ? @x_destination : @watch_battler.x
  181.     y_dest = @watch_battler == nil ? @y_destination : 88 + @watch_battler.y/2
  182.     # 僇儊儔: Z 嵗昗 (桪愭)
  183.     if @z != z_dest
  184.       @z     = slide(@z, z_dest, @z_speed, 37, @z_max)
  185.       @x_max = (@z_max - @z) * 64 / 37
  186.       @y_max = (@z_max - @z) * 48 / 37
  187.       @moved = true
  188.     end
  189.     # 僇儊儔: X 嵗昗
  190.     if @x != x_dest or @moved
  191.       @x = slide(@x, x_dest, @x_speed, 320 - @x_max, 320 + @x_max)
  192.       @moved = true
  193.     end
  194.     # 僇儊儔: Y 嵗昗
  195.     if @y != y_dest or @moved
  196.       @y = slide(@y, y_dest, @y_speed, 240 - @y_max, 240 + @y_max)
  197.       @moved = true
  198.     end
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # 仜 僗儔僀僪 (尰嵼抧丒栚揑抧偐傜峴偔傋偒尰嵼抧傪曉偡)
  202.   #--------------------------------------------------------------------------
  203.   def slide(from, to, move_speed, to_min, to_max)
  204.     # 寢壥傪敾暿
  205.     if (to - from).abs < move_speed
  206.       result = to
  207.     else
  208.       sign   = from > to ? -1 : 1
  209.       result = from + sign * move_speed
  210.     end
  211.     # 斖埻偵傛偭偰曉媝
  212.     return [[result, to_min].max, to_max].min
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # 仜 摦偄偨偐偳偆偐丠
  216.   #--------------------------------------------------------------------------
  217.   def moved?
  218.     return @moved
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # 仜 僇儊儔懍搙愝掕
  222.   #--------------------------------------------------------------------------
  223.   def set_speed
  224.     x_dest = @watch_battler == nil ? @x_destination : @watch_battler.x
  225.     y_dest = @watch_battler == nil ? @y_destination : 88 + @watch_battler.y/2
  226.     z_dest = @z_destination
  227.     @x_speed = [[(x_dest - @x).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  228.     @y_speed = [[(y_dest - @y).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  229.     @z_speed = [[(z_dest - @z).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # 仜 僙儞僞儕儞僌
  233.   #--------------------------------------------------------------------------
  234.   def centering
  235.     @watch_battler = nil
  236.     @x_destination = 320
  237.     @y_destination = 240
  238.     @z_destination = 185
  239.     set_speed
  240.   end
  241.   #--------------------------------------------------------------------------
  242.   # 仜 僘乕儉傾僂僩
  243.   #--------------------------------------------------------------------------
  244.   def zoomout
  245.     @z_destination = 222
  246.     set_speed
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # 仜 僶僩儔乕傪拲栚
  250.   #--------------------------------------------------------------------------
  251.   def watch(battler)
  252.     @watch_battler = battler
  253.     @z_destination = 180
  254.     set_speed
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # 仜 巜掕 X 埵抲傪拲栚
  258.   #--------------------------------------------------------------------------
  259.   def watch_at(x)
  260.     @watch_battler = nil
  261.     @x_destination =   x
  262.     @y_destination = 240
  263.     @z_destination = 185
  264.     set_speed
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # 仜 僘乕儉攞棪偺庢摼
  268.   #--------------------------------------------------------------------------
  269.   def zoom
  270.     return 185.00 / self.z
  271.   end
  272. end
  273. #==============================================================================
  274. # 仭 Game_Battler
  275. #==============================================================================
  276. class Game_Battler
  277.   #--------------------------------------------------------------------------
  278.   # 仜 岞奐僀儞僗僞儞僗曄悢
  279.   #--------------------------------------------------------------------------
  280.   attr_reader   :x                        # 僶僩儖僼傿乕儖僪丂墶丂埵抲(+偑塃丂)
  281.   attr_reader   :y                        # 僶僩儖僼傿乕儖僪 崅偝 埵抲(+偑壓丂)
  282.   attr_reader   :z                        # 僶僩儖僼傿乕儖僪墱峴偒埵抲(+偑庤慜)
  283.   #--------------------------------------------------------------------------
  284.   # 仜 僶僩儖僼傿乕儖僪忋偵嫃傞偐丠
  285.   #--------------------------------------------------------------------------
  286.   def in_battlefield?
  287.     return false
  288.   end
  289. end
  290. #==============================================================================
  291. # 仭 Game_Enemy
  292. #==============================================================================
  293. class Game_Enemy < Game_Battler
  294.   #--------------------------------------------------------------------------
  295.   # 仜 僶僩儖僼傿乕儖僪忋偵嫃傞偐丠 [僆乕僶乕儔僀僪]
  296.   #--------------------------------------------------------------------------
  297.   def in_battlefield?
  298.     return true
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # 仠 僆僽僕僃僋僩弶婜壔
  302.   #--------------------------------------------------------------------------
  303.   alias xrxs_bp8_initialize initialize
  304.   def initialize(troop_id, member_index)
  305.     @z = 0
  306.     xrxs_bp8_initialize(troop_id, member_index)
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # 仠 僶僩儖夋柺 X 嵗昗偺庢摼
  310.   #--------------------------------------------------------------------------
  311.   alias x screen_x
  312.   def screen_x
  313.     return self.x if $xcam == nil
  314.     return 320 + (self.x - $xcam.x) * 185 / $xcam.z
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # 仠 僶僩儖夋柺 Y 嵗昗偺庢摼
  318.   #--------------------------------------------------------------------------
  319.   alias y screen_y
  320.   def screen_y
  321.     return self.y if $xcam == nil
  322.     return 240 + (self.y - $xcam.y) * 185 / $xcam.z
  323.   end
  324. end
  325. #==============================================================================
  326. # 仭 Spriteset_Battle
  327. #==============================================================================
  328. class Spriteset_Battle
  329.   #--------------------------------------------------------------------------
  330.   # 仜 僼儗乕儉峏怴 (壜摦僇儊儔)
  331.   #--------------------------------------------------------------------------
  332.   def update_xcam
  333.     # 僇儊儔埵抲偑摦偄偨応崌
  334.     if $xcam.moved?
  335.       # 僇儊儔埵抲偐傜僘乕儉棪傪寁嶼
  336.       zoom = 185.00 / $xcam.z
  337.       w = XRXS_BP8::GA_W / 2
  338.       h = w * 3 / 4
  339.       # 攚宨偺愝掕峏怴
  340.       @battleback_sprite.zoom_x = zoom
  341.       @battleback_sprite.zoom_y = zoom
  342.       @battleback_sprite.x      = (320 - $xcam.x) * zoom - w * (zoom - 1)
  343.       @battleback_sprite.y      = (240 - $xcam.y) * zoom - h * (zoom - 1)
  344.     end
  345.   end
  346. end
  347. #==============================================================================
  348. # --- 僶僩儔乕僗僾儔僀僩丒壜摦僇儊儔揔梡 ---
  349. #==============================================================================
  350. module XRXS_Cam_Deal
  351.   def update
  352.     # 屇傃栠偡
  353.     super
  354.     # 僶僩儔乕偑僶僩儖僼傿乕儖僪偵偄側偄応崌偼廔椆
  355.     return if @battler == nil or not @battler.in_battlefield?
  356.     # 僌儔僼傿僢僋偑枹愝掕側応崌偼廔椆
  357.     return if self.bitmap == nil
  358.     # 僘乕儉棪偺曄峏 ( 僗僾儔僀僩嵗昗偺嵞愝掕偼尦偺儊僜僢僪偵擟偣傞 )
  359.     zoom = 1.00 * 185 / (185 - @battler.z)
  360.     self.zoom_x = zoom * $xcam.zoom
  361.     self.zoom_y = zoom * $xcam.zoom
  362.   end
  363. end
  364. class Sprite_Battler < RPG::Sprite
  365.   include XRXS_Cam_Deal
  366. end
  367. #==============================================================================
  368. # --- 僟儊乕僕僼僅儘乕 儌僕儏乕儖 ---
  369. #==============================================================================
  370. module XRXS_DamageFollow
  371.   def update
  372.     # 屇傃栠偡
  373.     super
  374.     # 僇儊儔偑懚嵼偟側偄応崌
  375.     return if $xcam == nil
  376.     # 僶僩儔乕偑 nil 傑偨偼僶僩儖僼傿乕儖僪偵偄側偄応崌
  377.     return if @battler == nil or not @battler.in_battlefield?
  378.     # 捈慜僇儊儔埵抲偐傜丄堏摦検傪嶼弌
  379.     x_moved = @last_cam_x == nil ? 0 : $xcam.x - @last_cam_x
  380.     y_moved = @last_cam_y == nil ? 0 : $xcam.y - @last_cam_y
  381.     # 僟儊乕僕僗僾儔僀僩攝楍偺嶌惉
  382.     damage_sprites  = [@_damage_sprite]
  383.     damage_sprites += @damage_sprites if @damage_sprites != nil
  384.     # 僇儊儔傪僼僅儘乕
  385.     for sprite in damage_sprites
  386.       next if sprite == nil
  387.       next if sprite.disposed?
  388.       sprite.x -= x_moved
  389.       sprite.y -= y_moved
  390.     end
  391.     # 捈慜僇儊儔埵抲偺曐帩
  392.     @last_cam_x = $xcam.x
  393.     @last_cam_y = $xcam.y
  394.   end
  395. end
  396. class Sprite_Battler < RPG::Sprite
  397.   include XRXS_DamageFollow
  398. end
  399. #==============================================================================
  400. # 仭 Scene_Battle
  401. #==============================================================================
  402. class Scene_Battle
  403.   #--------------------------------------------------------------------------
  404.   # 仠 儊僀儞張棟
  405.   #--------------------------------------------------------------------------
  406.   alias xrxs_bp8_main main
  407.   def main
  408.     # 壜摦僇儊儔偺惗惉
  409.     $xcam = XCam.new
  410.     # 栠偡
  411.     xrxs_bp8_main
  412.     # 壜摦僇儊儔偺夝曻
  413.     $xcam = nil
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # 仠 僼儗乕儉峏怴
  417.   #--------------------------------------------------------------------------
  418.   alias xrxs_bp8_update update
  419.   def update
  420.     # 壜摦僇儊儔偺僼儗乕儉峏怴
  421.     $xcam.update
  422.     # 屇傃栠偡
  423.     xrxs_bp8_update
  424.   end
  425. end
  426. #------------------------------------------------------------------------------
  427. #
  428. #    仱 Full-View 僔僗僥儉 仱
  429. #
  430. #==============================================================================
  431. # 仭 Spriteset_Battle
  432. #==============================================================================
  433. class Spriteset_Battle
  434.   #--------------------------------------------------------------------------
  435.   # 仠 僆僽僕僃僋僩弶婜壔
  436.   #--------------------------------------------------------------------------
  437.   alias xrxs_bp8_initialize initialize
  438.   def initialize
  439.     # 屇傃栠偡
  440.     xrxs_bp8_initialize
  441.     # 僌儔僼傿僢僋僗傾儗僀傪庢摼
  442.     # 價儏乕億乕僩 0 傪嶌惉
  443.     w = XRXS_BP8::GA_W
  444.     h = w * 3 / 4
  445.     x = 320 - w / 2
  446.     y = 240 - h / 2
  447.     @viewport0 = Viewport.new(x, y, w, h)
  448.     @viewport0.z  = 0
  449.     # 價儏乕億乕僩 1 偺愝掕傪曄峏
  450.     @viewport1.z += 1
  451.     @viewport1.rect.height = 480
  452.     # 僶僩儖僶僢僋僗僾儔僀僩傪嵞嶌惉 (價儏乕億乕僩 0 傪巊梡)
  453.     @battleback_sprite.dispose
  454.     @battleback_sprite = Sprite.new(@viewport0)
  455.     @battleback_name = ""
  456.     # 僶僩儖僶僢僋偺僼儗乕儉峏怴
  457.     update_battleback
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # 仠 夝曻
  461.   #--------------------------------------------------------------------------
  462.   alias xrxs_bp8_dispose dispose
  463.   def dispose
  464.     # 屇傃栠偡
  465.     xrxs_bp8_dispose
  466.     # 價儏乕億乕僩傪夝曻
  467.     @viewport0.dispose
  468.   end
  469.   #--------------------------------------------------------------------------
  470.   # 仠 僼儗乕儉峏怴
  471.   #--------------------------------------------------------------------------
  472.   alias xrxs_bp8_update update
  473.   def update
  474.     # 僼儗乕儉峏怴 (僶僩儖僶僢僋)
  475.     update_battleback
  476.     # 僼儗乕儉峏怴 (壜摦僇儊儔)
  477.     update_xcam if defined? update_xcam
  478.     # 屇傃栠偡
  479.     xrxs_bp8_update
  480.     # 夋柺偺僔僃僀僋埵抲傪愝掕
  481.     @viewport0.ox = $game_screen.shake if @viewport0 != nil
  482.   end
  483.   #--------------------------------------------------------------------------
  484.   # 仜 僼儗乕儉峏怴 (僶僩儖僶僢僋)
  485.   #--------------------------------------------------------------------------
  486.   def update_battleback
  487.     # 僶僩儖僶僢僋偺僼傽僀儖柤偑尰嵼偺傕偺偲堘偆応崌
  488.     if @battleback_name != $game_temp.battleback_name
  489.       @battleback_name = $game_temp.battleback_name
  490.       if @battleback_sprite.bitmap != nil
  491.         @battleback_sprite.bitmap.dispose
  492.       end
  493.       # 僌儔僼傿僢僋僗傾儗僀傪庢摼
  494.       w = XRXS_BP8::GA_W
  495.       h = w * 3 / 4
  496.       # 僶僩儖僶僢僋偺庢摼偲奼戝
  497.       bg   = RPG::Cache.battleback(@battleback_name)
  498.       xga  = Bitmap.new(w, h)
  499.       xga.stretch_blt(xga.rect, bg, bg.rect)
  500.       # XGA傪僶僩儖僶僢僋偵愝掕
  501.       @battleback_sprite.bitmap = xga
  502.     end
  503.   end
  504. end
  505. #==============================================================================
  506. # ---乽愴摤拞偺"夋柺"傾僯儊偺埵抲廋惓乿儌僕儏乕儖 ---
  507. #==============================================================================
  508. module XRXS_FullScreen_AnimationOffset
  509.   def animation_set_sprites(sprites, cell_data, position)
  510.     super
  511.     for i in 0..15
  512.       sprite = sprites[i]
  513.       pattern = cell_data[i, 0]
  514.       if sprite == nil or pattern == nil or pattern == -1
  515.         next
  516.       end
  517.       if position == 3
  518.         if self.viewport != nil
  519.           sprite.y = 160 # 偙偺堦峴偩偗曄峏
  520.           sprite.y += cell_data[i, 2]
  521.         end
  522.       end
  523.     end
  524.   end
  525. end
  526. class Sprite_Battler < RPG::Sprite
  527.   include XRXS_FullScreen_AnimationOffset
  528. end

复制代码

点评

您好,脚本插入之后可兼容,但是图片有偏移,战斗图整体偏移到了左上角,导致右下角有两块地方是黑色的,没显示(我的战斗图是640*480全屏型的...  发表于 2017-10-13 23:32
482行后面加入2楼脚本的8-13行  发表于 2017-10-13 21:53
樱桃丸子aab 发表于 2017-10-13 19:09:55
樱桃丸子aab 发表于 2017-10-13 18:51
我刚插入了这个脚本,发现战斗背景不会变啊……

新建工程里可以用,我自己的工程里不能用,有哪些注意点吗
樱桃丸子aab 发表于 2017-10-13 18:51:37
樱桃丸子aab 发表于 2017-10-13 12:53
您好,能否用一个开关控制它,我只想在某场战斗中循环战斗背景,谢谢

我刚插入了这个脚本,发现战斗背景不会变啊……
樱桃丸子aab 发表于 2017-10-13 12:53:04

您好,能否用一个开关控制它,我只想在某场战斗中循环战斗背景,谢谢

点评

重新复制楼上脚本,一号开关控制  发表于 2017-10-13 13:26
张咚咚 发表于 2017-10-13 09:29:39
本帖最后由 张咚咚 于 2017-10-14 14:32 编辑
  1. # 仴仯仴 No108. 僶僩儖僶僢僋丒Full-View亄壜摦僇儊儔 仴仯仴
  2. #
  3. # update 2006/ 4/16
  4. #
  5. #==============================================================================
  6. # 仩 僇僗僞儅僀僘億僀儞僩
  7. #==============================================================================
  8. module XRXS_BP8
  9.   #
  10.   # 僇儊儔堏摦懍搙
  11.   #  ( SPEED1 : 嫍棧暘妱悢丅彫偝偄傎偳憗偄
  12.   #    SPEED2 : 嵟掅堏摦懍搙[扨埵:px/F])
  13.   #
  14.   SPEED1 =  8
  15.   SPEED2 =  8
  16.   #
  17.   # GA偺墶暆僒僀僘傪愝掕 ( 1024:XGA僒僀僘丄640:VGA僒僀僘)
  18.   #
  19.   GA_W = 1024
  20. end
  21. #------------------------------------------------------------------------------
  22. # 仱 壜摦僇儊儔偺摦偒愝掕
  23. #------------------------------------------------------------------------------
  24. class Scene_Battle
  25.   #--------------------------------------------------------------------------
  26.   # 仠 僷乕僥傿僐儅儞僪僼僃乕僘奐巒
  27.   #--------------------------------------------------------------------------
  28.   alias xrxs_bp8_start_phase2 start_phase2
  29.   def start_phase2
  30.     # 僇儊儔丗僙儞僞儕儞僌
  31.     $xcam.centering
  32.     # 屇傃栠偡
  33.     xrxs_bp8_start_phase2
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # 仠 僼儗乕儉峏怴 (傾僋僞乕僐儅儞僪僼僃乕僘 : 僄僱儈乕慖戰)
  37.   #--------------------------------------------------------------------------
  38.   alias xrxs_bp8_update_phase3_enemy_select update_phase3_enemy_select
  39.   def update_phase3_enemy_select
  40.     # 尰嵼慖戰拞偺僄僱儈乕傪庢摼
  41.     enemy = $game_troop.enemies[@enemy_arrow.index]
  42.     # 僇儊儔丗拲栚
  43.     if @last_enemy_arrow != enemy
  44.       $xcam.watch(enemy)
  45.       @last_enemy_arrow = enemy
  46.     end
  47.     # 栠偡
  48.     xrxs_bp8_update_phase3_enemy_select
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # 仠 僄僱儈乕慖戰廔椆
  52.   #--------------------------------------------------------------------------
  53.   alias xrxs_bp8_end_enemy_select end_enemy_select
  54.   def end_enemy_select
  55.     # 僇儊儔丗僙儞僞儕儞僌
  56.     $xcam.centering
  57.     @last_enemy_arrow = nil
  58.     # 屇傃栠偡
  59.     xrxs_bp8_end_enemy_select
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # 仠 僼儗乕儉峏怴 (儊僀儞僼僃乕僘 僗僥僢僾 2 : 傾僋僔儑儞奐巒)
  63.   #--------------------------------------------------------------------------
  64.   alias xrxs_bp8_update_phase4_step2 update_phase4_step2
  65.   def update_phase4_step2
  66.     # 栠偡
  67.     xrxs_bp8_update_phase4_step2
  68.     # 僗僥僢僾 3 偵堏峴偡傞梊掕偺応崌
  69.     if @phase4_step == 3
  70.       # 傾僋僥傿僽側僶僩儔乕偑僶僩儖僼傿乕儖僪偵嫃傞応崌
  71.       if @active_battler.in_battlefield?
  72.         # 僇儊儔丗拲栚
  73.         $xcam.watch(@active_battler)
  74.       end
  75.     end
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # 仠 僼儗乕儉峏怴 (儊僀儞僼僃乕僘 僗僥僢僾 3 : 峴摦懁傾僯儊乕僔儑儞)
  79.   #--------------------------------------------------------------------------
  80.   alias xrxs_bp8_update_phase4_step3 update_phase4_step3
  81.   def update_phase4_step3
  82.     # 栠偡
  83.     xrxs_bp8_update_phase4_step3
  84.     # 僇儊儔僞乕僎僢僩偲側傝偆傞僞乕僎僢僩偺 X 暯嬒抣傪寁嶼
  85.     x_average  = 0
  86.     number     = 0
  87.     cam_target = nil
  88.     for target in @target_battlers
  89.       if target.in_battlefield?
  90.         x_average += target.x
  91.         number    += 1
  92.         cam_target = target
  93.       end
  94.     end
  95.     # 僇儊儔僞乕僎僢僩偑尒偮偐偭偨応崌
  96.     if number > 0
  97.       # 傕偟懳徾傾僯儊偑乽埵抲丗夋柺乿偺応崌
  98.       animation = $data_animations[@animation2_id]
  99.       if animation != nil and animation.position == 3
  100.         # 僇儊儔丗僙儞僞儕儞僌
  101.         $xcam.centering
  102.         # 僇儊儔丗僘乕儉傾僂僩
  103.         $xcam.zoomout
  104.       elsif number == 1
  105.         # 僇儊儔丗拲栚
  106.         $xcam.watch(cam_target)
  107.       else
  108.         # 僇儊儔丗巜掕 X 埵抲傪拲栚
  109.         $xcam.watch_at(x_average / number)
  110.       end
  111.     end
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # 仠 傾僼僞乕僶僩儖僼僃乕僘奐巒
  115.   #--------------------------------------------------------------------------
  116.   alias xrxs_bp8_start_phase5 start_phase5
  117.   def start_phase5
  118.     # 僇儊儔丗僙儞僞儕儞僌
  119.     $xcam.centering
  120.     # 屇傃栠偡
  121.     xrxs_bp8_start_phase5
  122.   end
  123. end
  124. #------------------------------------------------------------------------------
  125. # 僇僗僞儅僀僘億僀儞僩偙偙傑偱
  126. #==============================================================================

  127. #------------------------------------------------------------------------------
  128. #
  129. #    仱 壜摦僇儊儔 僔僗僥儉 仱
  130. #
  131. #==============================================================================
  132. # 仩 XCam
  133. #------------------------------------------------------------------------------
  134. #   壜摦僇儊儔傪埖偆僋儔僗偱偡丅
  135. #==============================================================================
  136. class XCam
  137.   #--------------------------------------------------------------------------
  138.   # 仜 岞奐僀儞僗僞儞僗曄悢
  139.   #--------------------------------------------------------------------------
  140.   attr_reader   :x
  141.   attr_reader   :y
  142.   attr_reader   :z
  143.   attr_accessor :x_destination
  144.   attr_accessor :y_destination
  145.   attr_accessor :z_destination
  146.   attr_accessor :watch_battler
  147.   attr_accessor :freeze_count
  148.   #--------------------------------------------------------------------------
  149.   # 仜 僆僽僕僃僋僩弶婜壔
  150.   #--------------------------------------------------------------------------
  151.   def initialize
  152.     # 僇儊儔弶婜埵抲寛掕
  153.     @x = 320
  154.     @y = 240
  155.     @z = 296
  156.     # 嵟戝斖埻偺寁嶼
  157.     @x_max = 0
  158.     @y_max = 0
  159.     @z_max = XRXS_BP8::GA_W * 37 / 128
  160.     # Z偺嵟戝惂尷
  161.     @z = @z_max if @z > @z_max
  162.     # 僇儊儔丗僙儞僞儕儞僌
  163.     self.centering
  164.     # 弶婜壔
  165.     @freeze_count = 0
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # 仜 僼儗乕儉峏怴
  169.   #--------------------------------------------------------------------------
  170.   def update
  171.     @moved = false
  172.     # 僇儊儔埵抲偺峏怴
  173.     if @freeze_count > 0
  174.       # 僼儕乕僘僇僂儞僩傪尭傜偡
  175.       @freeze_count -= 1
  176.       return
  177.     end
  178.     # 嵗昗庢摼
  179.     z_dest = @z_destination
  180.     x_dest = @watch_battler == nil ? @x_destination : @watch_battler.x
  181.     y_dest = @watch_battler == nil ? @y_destination : 88 + @watch_battler.y/2
  182.     # 僇儊儔: Z 嵗昗 (桪愭)
  183.     if @z != z_dest
  184.       @z     = slide(@z, z_dest, @z_speed, 37, @z_max)
  185.       @x_max = (@z_max - @z) * 64 / 37
  186.       @y_max = (@z_max - @z) * 48 / 37
  187.       @moved = true
  188.     end
  189.     # 僇儊儔: X 嵗昗
  190.     if @x != x_dest or @moved
  191.       @x = slide(@x, x_dest, @x_speed, 320 - @x_max, 320 + @x_max)
  192.       @moved = true
  193.     end
  194.     # 僇儊儔: Y 嵗昗
  195.     if @y != y_dest or @moved
  196.       @y = slide(@y, y_dest, @y_speed, 240 - @y_max, 240 + @y_max)
  197.       @moved = true
  198.     end
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # 仜 僗儔僀僪 (尰嵼抧丒栚揑抧偐傜峴偔傋偒尰嵼抧傪曉偡)
  202.   #--------------------------------------------------------------------------
  203.   def slide(from, to, move_speed, to_min, to_max)
  204.     # 寢壥傪敾暿
  205.     if (to - from).abs < move_speed
  206.       result = to
  207.     else
  208.       sign   = from > to ? -1 : 1
  209.       result = from + sign * move_speed
  210.     end
  211.     # 斖埻偵傛偭偰曉媝
  212.     return [[result, to_min].max, to_max].min
  213.   end
  214.   #--------------------------------------------------------------------------
  215.   # 仜 摦偄偨偐偳偆偐丠
  216.   #--------------------------------------------------------------------------
  217.   def moved?
  218.     return @moved
  219.   end
  220.   #--------------------------------------------------------------------------
  221.   # 仜 僇儊儔懍搙愝掕
  222.   #--------------------------------------------------------------------------
  223.   def set_speed
  224.     x_dest = @watch_battler == nil ? @x_destination : @watch_battler.x
  225.     y_dest = @watch_battler == nil ? @y_destination : 88 + @watch_battler.y/2
  226.     z_dest = @z_destination
  227.     @x_speed = [[(x_dest - @x).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  228.     @y_speed = [[(y_dest - @y).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  229.     @z_speed = [[(z_dest - @z).abs / XRXS_BP8::SPEED1, 1].max, XRXS_BP8::SPEED2].min
  230.   end
  231.   #--------------------------------------------------------------------------
  232.   # 仜 僙儞僞儕儞僌
  233.   #--------------------------------------------------------------------------
  234.   def centering
  235.     @watch_battler = nil
  236.     @x_destination = 320
  237.     @y_destination = 240
  238.     @z_destination = 185
  239.     set_speed
  240.   end
  241.   #--------------------------------------------------------------------------
  242.   # 仜 僘乕儉傾僂僩
  243.   #--------------------------------------------------------------------------
  244.   def zoomout
  245.     @z_destination = 222
  246.     set_speed
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # 仜 僶僩儔乕傪拲栚
  250.   #--------------------------------------------------------------------------
  251.   def watch(battler)
  252.     @watch_battler = battler
  253.     @z_destination = 180
  254.     set_speed
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # 仜 巜掕 X 埵抲傪拲栚
  258.   #--------------------------------------------------------------------------
  259.   def watch_at(x)
  260.     @watch_battler = nil
  261.     @x_destination =   x
  262.     @y_destination = 240
  263.     @z_destination = 185
  264.     set_speed
  265.   end
  266.   #--------------------------------------------------------------------------
  267.   # 仜 僘乕儉攞棪偺庢摼
  268.   #--------------------------------------------------------------------------
  269.   def zoom
  270.     return 185.00 / self.z
  271.   end
  272. end
  273. #==============================================================================
  274. # 仭 Game_Battler
  275. #==============================================================================
  276. class Game_Battler
  277.   #--------------------------------------------------------------------------
  278.   # 仜 岞奐僀儞僗僞儞僗曄悢
  279.   #--------------------------------------------------------------------------
  280.   attr_reader   :x                        # 僶僩儖僼傿乕儖僪丂墶丂埵抲(+偑塃丂)
  281.   attr_reader   :y                        # 僶僩儖僼傿乕儖僪 崅偝 埵抲(+偑壓丂)
  282.   attr_reader   :z                        # 僶僩儖僼傿乕儖僪墱峴偒埵抲(+偑庤慜)
  283.   #--------------------------------------------------------------------------
  284.   # 仜 僶僩儖僼傿乕儖僪忋偵嫃傞偐丠
  285.   #--------------------------------------------------------------------------
  286.   def in_battlefield?
  287.     return false
  288.   end
  289. end
  290. #==============================================================================
  291. # 仭 Game_Enemy
  292. #==============================================================================
  293. class Game_Enemy < Game_Battler
  294.   #--------------------------------------------------------------------------
  295.   # 仜 僶僩儖僼傿乕儖僪忋偵嫃傞偐丠 [僆乕僶乕儔僀僪]
  296.   #--------------------------------------------------------------------------
  297.   def in_battlefield?
  298.     return true
  299.   end
  300.   #--------------------------------------------------------------------------
  301.   # 仠 僆僽僕僃僋僩弶婜壔
  302.   #--------------------------------------------------------------------------
  303.   alias xrxs_bp8_initialize initialize
  304.   def initialize(troop_id, member_index)
  305.     @z = 0
  306.     xrxs_bp8_initialize(troop_id, member_index)
  307.   end
  308.   #--------------------------------------------------------------------------
  309.   # 仠 僶僩儖夋柺 X 嵗昗偺庢摼
  310.   #--------------------------------------------------------------------------
  311.   alias x screen_x
  312.   def screen_x
  313.     return self.x if $xcam == nil
  314.     return 320 + (self.x - $xcam.x) * 185 / $xcam.z
  315.   end
  316.   #--------------------------------------------------------------------------
  317.   # 仠 僶僩儖夋柺 Y 嵗昗偺庢摼
  318.   #--------------------------------------------------------------------------
  319.   alias y screen_y
  320.   def screen_y
  321.     return self.y if $xcam == nil
  322.     return 240 + (self.y - $xcam.y) * 185 / $xcam.z
  323.   end
  324. end
  325. #==============================================================================
  326. # 仭 Spriteset_Battle
  327. #==============================================================================
  328. class Spriteset_Battle
  329.   #--------------------------------------------------------------------------
  330.   # 仜 僼儗乕儉峏怴 (壜摦僇儊儔)
  331.   #--------------------------------------------------------------------------
  332.   def update_xcam
  333.     # 僇儊儔埵抲偑摦偄偨応崌
  334.     if $xcam.moved?
  335.       # 僇儊儔埵抲偐傜僘乕儉棪傪寁嶼
  336.       zoom = 185.00 / $xcam.z
  337.       w = XRXS_BP8::GA_W / 2
  338.       h = w * 3 / 4
  339.       # 攚宨偺愝掕峏怴
  340.       @battleback_sprite.zoom_x = zoom
  341.       @battleback_sprite.zoom_y = zoom
  342.       @battleback_sprite.x      = (320 - $xcam.x) * zoom - w * (zoom - 1)
  343.       @battleback_sprite.y      = (240 - $xcam.y) * zoom - h * (zoom - 1)
  344.     end
  345.   end
  346. end
  347. #==============================================================================
  348. # --- 僶僩儔乕僗僾儔僀僩丒壜摦僇儊儔揔梡 ---
  349. #==============================================================================
  350. module XRXS_Cam_Deal
  351.   def update
  352.     # 屇傃栠偡
  353.     super
  354.     # 僶僩儔乕偑僶僩儖僼傿乕儖僪偵偄側偄応崌偼廔椆
  355.     return if @battler == nil or not @battler.in_battlefield?
  356.     # 僌儔僼傿僢僋偑枹愝掕側応崌偼廔椆
  357.     return if self.bitmap == nil
  358.     # 僘乕儉棪偺曄峏 ( 僗僾儔僀僩嵗昗偺嵞愝掕偼尦偺儊僜僢僪偵擟偣傞 )
  359.     zoom = 1.00 * 185 / (185 - @battler.z)
  360.     self.zoom_x = zoom * $xcam.zoom
  361.     self.zoom_y = zoom * $xcam.zoom
  362.   end
  363. end
  364. class Sprite_Battler < RPG::Sprite
  365.   include XRXS_Cam_Deal
  366. end
  367. #==============================================================================
  368. # --- 僟儊乕僕僼僅儘乕 儌僕儏乕儖 ---
  369. #==============================================================================
  370. module XRXS_DamageFollow
  371.   def update
  372.     # 屇傃栠偡
  373.     super
  374.     # 僇儊儔偑懚嵼偟側偄応崌
  375.     return if $xcam == nil
  376.     # 僶僩儔乕偑 nil 傑偨偼僶僩儖僼傿乕儖僪偵偄側偄応崌
  377.     return if @battler == nil or not @battler.in_battlefield?
  378.     # 捈慜僇儊儔埵抲偐傜丄堏摦検傪嶼弌
  379.     x_moved = @last_cam_x == nil ? 0 : $xcam.x - @last_cam_x
  380.     y_moved = @last_cam_y == nil ? 0 : $xcam.y - @last_cam_y
  381.     # 僟儊乕僕僗僾儔僀僩攝楍偺嶌惉
  382.     damage_sprites  = [@_damage_sprite]
  383.     damage_sprites += @damage_sprites if @damage_sprites != nil
  384.     # 僇儊儔傪僼僅儘乕
  385.     for sprite in damage_sprites
  386.       next if sprite == nil
  387.       next if sprite.disposed?
  388.       sprite.x -= x_moved
  389.       sprite.y -= y_moved
  390.     end
  391.     # 捈慜僇儊儔埵抲偺曐帩
  392.     @last_cam_x = $xcam.x
  393.     @last_cam_y = $xcam.y
  394.   end
  395. end
  396. class Sprite_Battler < RPG::Sprite
  397.   include XRXS_DamageFollow
  398. end
  399. #==============================================================================
  400. # 仭 Scene_Battle
  401. #==============================================================================
  402. class Scene_Battle
  403.   #--------------------------------------------------------------------------
  404.   # 仠 儊僀儞張棟
  405.   #--------------------------------------------------------------------------
  406.   alias xrxs_bp8_main main
  407.   def main
  408.     # 壜摦僇儊儔偺惗惉
  409.     $xcam = XCam.new
  410.     # 栠偡
  411.     xrxs_bp8_main
  412.     # 壜摦僇儊儔偺夝曻
  413.     $xcam = nil
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # 仠 僼儗乕儉峏怴
  417.   #--------------------------------------------------------------------------
  418.   alias xrxs_bp8_update update
  419.   def update
  420.     # 壜摦僇儊儔偺僼儗乕儉峏怴
  421.     $xcam.update
  422.     # 屇傃栠偡
  423.     xrxs_bp8_update
  424.   end
  425. end
  426. #------------------------------------------------------------------------------
  427. #
  428. #    仱 Full-View 僔僗僥儉 仱
  429. #
  430. #==============================================================================
  431. # 仭 Spriteset_Battle
  432. #==============================================================================
  433. class Spriteset_Battle
  434.   #--------------------------------------------------------------------------
  435.   # 仠 僆僽僕僃僋僩弶婜壔
  436.   #--------------------------------------------------------------------------
  437.   alias xrxs_bp8_initialize initialize
  438.   def initialize
  439.     # 屇傃栠偡
  440.     xrxs_bp8_initialize
  441.     # 僌儔僼傿僢僋僗傾儗僀傪庢摼
  442.     # 價儏乕億乕僩 0 傪嶌惉
  443.     w = XRXS_BP8::GA_W
  444.     h = w * 3 / 4
  445.     x = 320 - w / 2
  446.     y = 240 - h / 2
  447.     @viewport0 = Viewport.new(x, y, w, h)
  448.     @viewport0.z  = 0
  449.     # 價儏乕億乕僩 1 偺愝掕傪曄峏
  450.     @viewport1.z += 1
  451.     @viewport1.rect.height = 480
  452.     # 僶僩儖僶僢僋僗僾儔僀僩傪嵞嶌惉 (價儏乕億乕僩 0 傪巊梡)
  453.     @battleback_sprite.dispose
  454.     @battleback_sprite = Sprite.new(@viewport0)
  455.     @battleback_name = ""
  456.     # 僶僩儖僶僢僋偺僼儗乕儉峏怴
  457.     update_battleback
  458.   end
  459.   #--------------------------------------------------------------------------
  460.   # 仠 夝曻
  461.   #--------------------------------------------------------------------------
  462.   alias xrxs_bp8_dispose dispose
  463.   def dispose
  464.     # 屇傃栠偡
  465.     xrxs_bp8_dispose
  466.     # 價儏乕億乕僩傪夝曻
  467.     @viewport0.dispose
  468.   end
  469.   #--------------------------------------------------------------------------
  470.   # 仠 僼儗乕儉峏怴
  471.   #--------------------------------------------------------------------------
  472.   alias xrxs_bp8_update update
  473.   def update
  474.     # 僼儗乕儉峏怴 (僶僩儖僶僢僋)
  475.     update_battleback
  476.     # 僼儗乕儉峏怴 (壜摦僇儊儔)
  477.     update_xcam if defined? update_xcam
  478.     # 屇傃栠偡
  479.     xrxs_bp8_update
  480.     # 夋柺偺僔僃僀僋埵抲傪愝掕
  481.     @viewport0.ox = $game_screen.shake if @viewport0 != nil
  482. ####################################################

  483.       switches = 1 #开关控制
  484.       update_speed = 10 #图片循环的速度
  485.       battle_background = [ #循环播放的图片
  486.       "002-Woods01", "003-Forest01", "005-Beach01",
  487.       ]

  488.       # 僌儔僼傿僢僋僗傾儗僀傪庢摼
  489.       w = XRXS_BP8::GA_W
  490.       h = w * 3 / 4
  491.       # 僶僩儖僶僢僋偺庢摼偲奼戝
  492.       @battleback_update_count ||= 0
  493.       @battleback_update_count += 1
  494.       @battleback_update_count = 0 if @battleback_update_count >= battle_background.length*update_speed

  495.       bg   = RPG::Cache.battleback(battle_background[@battleback_update_count/update_speed])
  496.       @xga  ||= Bitmap.new(w, h)
  497.       @xga.stretch_blt(@xga.rect, bg, bg.rect)

  498.       # XGA傪僶僩儖僶僢僋偵愝掕
  499.       @battleback_sprite.bitmap = @xga if $game_switches[switches]
  500. ####################################################
  501.   end
  502.   #--------------------------------------------------------------------------
  503.   # 仜 僼儗乕儉峏怴 (僶僩儖僶僢僋)
  504.   #--------------------------------------------------------------------------
  505.   def update_battleback
  506.     # 僶僩儖僶僢僋偺僼傽僀儖柤偑尰嵼偺傕偺偲堘偆応崌
  507.     if @battleback_name != $game_temp.battleback_name
  508.       @battleback_name = $game_temp.battleback_name
  509.       if @battleback_sprite.bitmap != nil
  510.         @battleback_sprite.bitmap.dispose
  511.       end
  512.       # 僌儔僼傿僢僋僗傾儗僀傪庢摼
  513.       w = XRXS_BP8::GA_W
  514.       h = w * 3 / 4
  515.       # 僶僩儖僶僢僋偺庢摼偲奼戝
  516.       bg   = RPG::Cache.battleback(@battleback_name)
  517.       xga  = Bitmap.new(w, h)
  518.       xga.stretch_blt(xga.rect, bg, bg.rect)
  519.       # XGA傪僶僩儖僶僢僋偵愝掕
  520.       @battleback_sprite.bitmap = xga
  521.     end
  522.   end
  523. end
  524. #==============================================================================
  525. # ---乽愴摤拞偺"夋柺"傾僯儊偺埵抲廋惓乿儌僕儏乕儖 ---
  526. #==============================================================================
  527. module XRXS_FullScreen_AnimationOffset
  528.   def animation_set_sprites(sprites, cell_data, position)
  529.     super
  530.     for i in 0..15
  531.       sprite = sprites[i]
  532.       pattern = cell_data[i, 0]
  533.       if sprite == nil or pattern == nil or pattern == -1
  534.         next
  535.       end
  536.       if position == 3
  537.         if self.viewport != nil
  538.           sprite.y = 160 # 偙偺堦峴偩偗曄峏
  539.           sprite.y += cell_data[i, 2]
  540.         end
  541.       end
  542.     end
  543.   end
  544. end
  545. class Sprite_Battler < RPG::Sprite
  546.   include XRXS_FullScreen_AnimationOffset
  547. end
复制代码


评分

参与人数 1星屑 +150 收起 理由
RyanBern + 150 认可答案

查看全部评分

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

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

GMT+8, 2024-11-24 20:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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