Project1

标题: 麻烦大家帮忙写一个转身需要慢半拍的脚本 [打印本页]

作者: lxd986729825    时间: 2014-5-29 01:13
标题: 麻烦大家帮忙写一个转身需要慢半拍的脚本
本帖最后由 lxd986729825 于 2014-5-29 13:24 编辑

                    不管能不能帮到 在这里先谢谢大家了     
         就是说只要改变移动方向就要等待7帧(测了几遍觉得比较合理)180°转身14帧(这个可要可不要 )。
其实就是类似惯性那种。要玩家和NPC都有惯性。但是在“设置移动路线”里面不会出现惯性(这个应该加个开关就好吧)。
作者: zeldafd    时间: 2014-5-29 18:10
本帖最后由 zeldafd 于 2014-5-29 18:12 编辑

以下的代碼沒經測試, 純是思路, 抽象碼. 所以出錯了也請LZ不要見怪...
RUBY 代码复制
  1. class Game_Player < Game_Character
  2.  
  3.         alias old_move_by_input move_by_input
  4.         def move_by_input()
  5.                 return if !movable? || $game_map.interpreter.running?;
  6.                 case Input.dir8
  7.                 when 2, 4, 6, 8;
  8.                         set_direction ( Input.dir4 );
  9.                         for i in 0...7
  10.                                 Graphics.update();
  11.                         end
  12.                         move_straight(Input.dir4);
  13.                 end
  14.         end
  15. end

作者: taroxd    时间: 2014-5-29 18:48
本帖最后由 taroxd 于 2014-5-29 18:52 编辑
zeldafd 发表于 2014-5-29 18:10
以下的代碼沒經測試, 純是思路, 抽象碼. 所以出錯了也請LZ不要見怪...

class Game_Player < Game_Characte ...


我觉得你完全没有理解楼主的要求……
是转身等待7帧,不是走路等待7帧

还有那个alias是怎么回事
作者: lxd986729825    时间: 2014-5-29 19:22
zeldafd 发表于 2014-5-29 18:10
以下的代碼沒經測試, 純是思路, 抽象碼. 所以出錯了也請LZ不要見怪...

class Game_Player < Game_Characte ...

是啊是啊~只有转身的时候等7帧可以做到么?还有,我不按方向NPC走路就变成正常的了(不过 话说写脚本一定很辛苦吧~)
作者: zeldafd    时间: 2014-5-30 20:29
lxd986729825 发表于 2014-5-29 19:22
是啊是啊~只有转身的时候等7帧可以做到么?还有,我不按方向NPC走路就变成正常的了(不过 话说写脚本一定 ...

那你即是要等7幀, 再轉身跑?
要是就把FOR那段放在SET_DIRECTION前面
作者: lxd986729825    时间: 2014-5-30 21:05
zeldafd 发表于 2014-5-30 20:29
那你即是要等7幀, 再轉身跑?
要是就把FOR那段放在SET_DIRECTION前面

正常走路的时候不等待、,只有拐弯的时候等待。
作者: zeldafd    时间: 2014-6-1 11:55
RUBY 代码复制
  1. class Game_CharacterBase
  2.  
  3.         def get_direction()
  4.                 return @direction;
  5.         end
  6.  
  7. end
  8.  
  9. class Game_Player < Game_Character
  10.  
  11.         alias old_move_by_input move_by_input;
  12.         def move_by_input()
  13.                 return if !movable? || $game_map.interpreter.running?;
  14.                 case Input.dir8()
  15.                 when 2, 4, 6, 8;
  16.                         if get_direction() != Input.dir4()
  17.                                 print "CURRENT DIRECTION : [" + get_direction().to_s() + "]\n";
  18.                                 for i in 0...10
  19.                                         Graphics.update();
  20.                                         print "Updating...\n";
  21.                                 end
  22.                                 set_direction(Input.dir4);
  23.                         end
  24.                         move_straight(Input.dir4);
  25.                         print "INPUT DIRECTION : [" + Input.dir4().to_s() + "]\n";
  26.                 end
  27.         end
  28.  
  29. end


請樓主試一下, 應該是這樣吧==
作者: lxd986729825    时间: 2014-6-1 22:02
zeldafd 发表于 2014-6-1 11:55
class Game_CharacterBase
       
        def get_direction()

哇~~好厉害~我想让npc也像角色一样变向时会等待。这个可以做到么(实在麻烦你了~)




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