Project1

标题: 請問腳色跟隨腳本的開關控制方法 [打印本页]

作者: sai90306    时间: 2012-4-19 14:45
标题: 請問腳色跟隨腳本的開關控制方法
本帖最后由 eve592370698 于 2012-4-27 13:01 编辑

將腳本模組化後要如何帶入需要的資料對象?問題後
我想針對腳色跟隨腳本作修改 不過還是遇到了問題
以下提到的腳本1和2請參考將腳本模組化後要如何帶入需要的資料對象?6樓

試著依照角色跟隨腳本的載入方式(在該腳本最後幾行attr_reader :move_speed end之後?)將腳本1改成這樣了
...不知道對不對 麻煩指教了
還有不知為何我在1樓都發不出代碼框...只好麻煩班竹幫忙了(下面有三個部分要加框) 感謝!
  1. class Game_Party
  2. def initialize
  3. #
  4. end
  5. def update
  6. if $doublespeed == true
  7. include Train_Actor_Game_Party_Module
  8. end
  9. end
  10. end

  11. class Game_Player
  12. def initialize
  13. #
  14. end
  15. def update
  16. if $doublespeed == true
  17. include Train_Actor_Game_Player_Module
  18. end
  19. end
  20. end

  21. class Spriteset_Map
  22. def initialize
  23. #
  24. end
  25. def update
  26. if $doublespeed == true
  27. include Train_Actor_Spriteset_Map_Module
  28. end
  29. end
  30. end

  31. class Scene_Map
  32. def initialize
  33. #
  34. end
  35. def update
  36. if $doublespeed == true
  37. include Train_Actor_Scene_Map_Module
  38. end
  39. end
  40. end
复制代码
這是腳本2
  1. class Game_Party
  2. def initialize
  3. #
  4. end
  5. def update
  6. if $doublespeed == true
  7. include Train_Actor_Game_Party_Module
  8. end
  9. end
  10. end

  11. class Game_Player
  12. def initialize
  13. #
  14. end
  15. def update
  16. if $doublespeed == true
  17. include Train_Actor_Game_Player_Module
  18. end
  19. end
  20. end

  21. class Spriteset_Map
  22. def initialize
  23. #
  24. end
  25. def update
  26. if $doublespeed == true
  27. include Train_Actor_Spriteset_Map_Module
  28. end
  29. end
  30. end

  31. class Scene_Map
  32. def initialize
  33. #
  34. end
  35. def update
  36. if $doublespeed == true
  37. include Train_Actor_Scene_Map_Module
  38. end
  39. end
  40. end
复制代码
最後這是調用
$doublespeed=true
$sss1=Game_Party.new
$sss1.update
$sss2=Game_Player.new
$sss2.update
$sss3=Spriteset_Map.new
$sss3.update
$sss4=Scene_Map.new
$sss4.update

不過在
def initialize
#
end
的地方不知道要填什麼?
因為我這樣寫雖然沒報錯
但調用後螢幕整個是黑的
想是因為initialize這裡沒東西的緣故吧?

這裡的$doublespeed 只是沿用明久君的教學 沒有特別的意義dsu_plus_rewardpost_czw
作者: lsu666666    时间: 2012-4-19 16:39

楼主参考这个看看
方向一:尋找類似腳本參考
这个脚本的角色跟随是有设置开关的.可以参考他的写法
http://rpg.blue/forum.php?mod=viewthread&tid=111958

方向二:XP脚本自学视频教程
RMXP脚本教程[下周一更新下一讲.持续更新中...]
http://rpg.blue/thread-202038-1-1.html

方向三;參考文字自学
[通用发布] 致各位想要学习研究 Ruby(RGSS) 的人
http://rpg.blue/forum.php?mod=viewthread&tid=217670

我想等待别人来解决问题.自己想办法解决问题应该速度会来的更快....

作者: eve592370698    时间: 2012-4-19 17:09
lsu666666 发表于 2012-4-19 16:39
楼主参考这个看看
方向一:尋找類似腳本參考
这个脚本的角色跟随是有设置开关的.可以参考他的写法

罪过,罪过。楼主之所以问这个问题我有责任。长时间一来,我一直在研究这个XP的同伴跟随脚本但是没有研究透,关键就是include到底怎么一回事我也搞不清楚,从字面意思上是包含模块,但是具体呢?好像不是添加进去那么简单吧?
我看了VX ACE自带的的同伴跟随脚本,就两个类Game_Follower和Game_Followers,而且都是在楼主提到的这四个类中调用follower = Game_Follower.new(差不多这意思吧),我也是在这个问题卡壳了。
楼主的问题关键在于角色跟随这个脚本,目前正如注解所说,不是说禁止之后就不加载,而是隐藏起来,所以遇到有冲突的地方即使隐藏了跟随的角色还是不行(我以前就提过一个问题,是怎么像VA那样集合队伍同伴,后来那个问题我自己解决完之后给删了)。
您所指出的帖子,都没有对include进行详细解说。

作者: hys111111    时间: 2012-4-19 18:07
本帖最后由 hys111111 于 2012-4-19 18:25 编辑
eve592370698 发表于 2012-4-19 17:09
罪过,罪过。楼主之所以问这个问题我有责任。长时间一来,我一直在研究这个XP的同伴跟随脚本但是没有研究 ...


刚刚好,引用魔塔样板7311里面的这句:(注:这句话是条件分歧里面的)
  1. $game_variables[41].include?(@map_id)
复制代码
这句话是用来判断41变量是否添加了@map_id
也就是说,41号变量是个数组,
里面包含了@map_id,表示就是
$game_variables[41][@map_id]
如果这个没有或值为nil
这个判断就返回假,否则返回真

相反,insert是添加数组。
  1. $game_variables[117][@map_id].\
  2.     insert a,[kkk.character_name\
  3. ,kkk.direction,kkk.event.name,0,@iid]
复制代码
即:
  1. $game_variables[117][@map_id]=[]
  2. $game_variables[117][@map_id][a]=[]
  3. $game_variables[117][@map_id][a]=[kkk.character_name,kkk.direction,kkk.event.name,0,@iid]
复制代码

作者: 吉井明久    时间: 2012-4-19 18:47
本帖最后由 吉井明久 于 2012-4-19 18:49 编辑

不不不,打住。

include 的功能实际上是将后面的模块内的方法等物导入当前 class。

因此假设有这样的代码:

  1. module A
  2.   def ssss
  3.     p "hissss"
  4.   end
  5. end

  6. class B
  7.   include A
  8. end
复制代码
是和

  1. class B
  2.   def ssss
  3.     p "hissss"
  4.   end
  5. end
复制代码
一样的。
两段代码…都可以用 B.new.ssss 来输出 hissss

@lsu666666@hys111111@eve592370698




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