查看完整版本: [-- 用物品栏做点奇怪的东西 --]

幻想森林论坛 -> RM思路探讨 -> 用物品栏做点奇怪的东西 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

dcf 2006-12-30 22:27

用物品栏做点奇怪的东西

设计的结果是:事件1移动后,事件2将模仿事件1移动一次。
我们先不去管ev1是如何移动的,只是知道移动一次后,变量“移动次数+1”
然后根据移动方向,代入到移动“方向中”(上8下2左4右6),并且将这两个数据推到物品中。$game_party.gain_item(移动次数,方向),也就是说,当ev1移动的时候,物品栏将会自动记录这个过程。

然后是模仿移动。
1,“移动次数”=1,说明开始移动
2,移动后“移动次数”+1
3,根据什么移动
if $game_party.item_number(移动次数)==8#如果是上移动
    ev2.move_up#上移动
end
就是以上类似的模式,移动次数其实就是物品编号。

到了移动次数==0的时候,就停止移动
全部移动后,执行$game_party.items.clear命令
----------------------------------------------------------------------------
其实,我也不知道在说什么。方法是可行的,但涉及到一个刷新的问题,不太会刷新。也许你可能试试。

dcf 2006-12-30 22:41
太浪费物品栏了?
其实,可以分两个数组解决这一问题。先把数据记录到物品1,物品2中,然后去比较1,2
的关系,如果是反向移动,就取消,如果是非反向移动,就把物品1,2的个数分配给3,4

注意:不能直接把数据代入到$game_party.item_number(2)中,需要先清除物品,然后用$game_party.gain_item(物品号,个数)来增加物品,(因为物品个数最大是8,所以-8就是将物品清除)

杀鸡四天王 2006-12-30 22:50
= =作用?

dcf 2006-12-30 23:01
引用
引用第2楼杀鸡四天王2006-12-30 22:50发表的:
= =作用?


  用来做slg中的光标指路用的,寻路算法太麻烦,所以就想到用数组去记录“光标”(事件1)的移动轨迹。
但单独设计一个数组很麻烦,就干脆用“物品栏”这一现有数组去记录数据。

如果你能明白我说的,是最好不过了
http://pickup.mofile.com/2512496981824646


查看完整版本: [-- 用物品栏做点奇怪的东西 --] [-- top --]



Powered by PHPWind v7.5 SP3 Code ©2003-2010 PHPWind
Time 0.030658 second(s),query:2 Gzip enabled

You can contact us