Project1

标题: 求教全动画战斗中光标的问题 [打印本页]

作者: 步兵中尉    时间: 2008-8-27 08:03
标题: 求教全动画战斗中光标的问题
    用了站上的全动画战斗的脚本,并改了下光标的位置,发现人物始终在光标之上!
请教一下怎么才能像平常一样光标盖住人物。

[LINE]1,#dddddd[/LINE]此贴于 2008-8-30 11:43:45 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]此贴于 2008-9-1 12:22:14 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]本贴由论坛斑竹havealook结贴,如楼主认为问题未解决,请重新将此贴编辑为“有事请教”,并回帖叙述疑点即可~ ^-^ [LINE]1,#dddddd[/LINE]此贴于 2008-9-2 11:15:04 被版主darkten提醒,请楼主看到后对本贴做出回应。
作者: lhbadsl    时间: 2008-8-27 20:28
用了站上的全动画战斗的脚本,并改了下光标的位置,发现人物始终在光标之上!
请教一下怎么才能像平常一样光标盖住人物。
Arrow_Enemy类中修改,箭头光标的z坐标,把它改为9999
作者: 步兵中尉    时间: 2008-8-27 23:36
    已经修改过了,还是无济于事。
作者: 幽月    时间: 2008-8-28 01:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: lhbadsl    时间: 2008-8-28 06:48
全动画脚本修改了敌人箭头的类,那么在其上一定是重新定义了class Arrow_Enemy < Arrow_Base类的update方法,所以你在Arrow_Enemy类修改不起作用(原因是rgss的脚本优先原则)。。。。你可以去全动画脚本中查找class Arrow_Enemy < Arrow_Base这个,因为这个脚本不可能重新写了一个敌人箭头类出来(毫无必要吗,作者不会在上面浪费气力的,应该。。。{/gg},如果是我的话就肯定不会)。。。必然是重新定义过的,那么在其上查找class Arrow_Enemy < Arrow_Base就一定可以找到,在这个上找到def update方法,重新修改它的箭头z坐标,这个是应该是起作用的。因为这个脚本我没有研究过,如果它的箭头动画都是在数据库设定的,那么可能不行。。。不过这种可能性非常小,除非作者没事干才会特别搞过这个东西,这个是我对全动画脚本的猜想,因为如果是我写的话战斗系统不会写得这么精细,所以这个办法有90%的几率行。。。。如果再不行,你回帖告诉我,我会看看这个脚本的箭头是在那定义的。。。。。不过你还是先自己试试。。因为等我的话会很久哦{/gg}
作者: 步兵中尉    时间: 2008-8-28 07:32
    还是不行。这次我把那段脚本一起发上来,请诸位大侠帮忙看看!

http://rpg.blue/web/htm/news729.htm

作者: lhbadsl    时间: 2008-8-28 10:32
还是不行。这次我把那段脚本一起发上来,请诸位大侠帮忙看看!
这个战斗脚本貌似还不是真的一般多bug。。。。。有这么多人提出问题。。。
  1. class Arrow_Enemy < Arrow_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 获取光标指向的敌人
  4.   #--------------------------------------------------------------------------
  5.   def enemy
  6.     return $game_troop.enemies[@index]
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # ● 刷新画面
  10.   #--------------------------------------------------------------------------
  11.   def update
  12.     super
  13.     # 如果指向不存在的敌人就离开
  14.     $game_troop.enemies.size.times do
  15.       break if self.enemy.exist?
  16.       @index += 1
  17.       @index %= $game_troop.enemies.size
  18.     end
  19.     # 光标右
  20.     if Input.repeat?(Input::RIGHT)
  21.       $game_system.se_play($data_system.cursor_se)
  22.       $game_troop.enemies.size.times do
  23.         @index += 1
  24.         @index %= $game_troop.enemies.size
  25.         break if self.enemy.exist?
  26.       end
  27.     end
  28.     # 光标左
  29.     if Input.repeat?(Input::LEFT)
  30.       $game_system.se_play($data_system.cursor_se)
  31.       $game_troop.enemies.size.times do
  32.         @index += $game_troop.enemies.size - 1
  33.         @index %= $game_troop.enemies.size
  34.         break if self.enemy.exist?
  35.       end
  36.     end
  37.     # 设置活动块坐标
  38.     if self.enemy != nil
  39.       self.x = self.enemy.screen_x + self.ox
  40.       self.y = self.enemy.screen_y + self.oy
  41.     end
  42.   end
  43. end
复制代码

脚本中楼主这一段真的看过了吗?
  1.     # 设置活动块坐标
  2.     if self.enemy != nil
  3.       self.x = self.enemy.screen_x + self.ox
  4.       self.y = self.enemy.screen_y + self.oy
  5.     end
复制代码

这里加上一句self.z=9999变为
  1.     # 设置活动块坐标
  2.     if self.enemy != nil
  3.       self.x = self.enemy.screen_x + self.ox
  4.       self.y = self.enemy.screen_y + self.oy
  5.       self.z = 9999
  6.     end
复制代码

应该可以了,但是如果这样都解决不了问题那么可能是,动画的z坐标实在是太高了,可能要改动另外一个地方。。。。或者是你的写法有问题(有时语法有误会令到语句不起作用),按照我的改应该是可以ko这个问题的

作者: 步兵中尉    时间: 2008-8-28 20:13
    可是我最早就是这种方法啊,依然不行,而且有时候光标还消失了。
作者: 步兵中尉    时间: 2008-8-31 18:36
    这么快就被版主提醒了,难道真的没有解决的方法了?
作者: 步兵中尉    时间: 2008-9-2 07:26
    想不到这么久都找不到答案。
    再把它放到前面一次吧!




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