MAS コミュニティ
artisoc質問用掲示板(アーカイブ)
  
質問掲示板は移転しました。新掲示板はこちら

質問 (解決済み)

[artisocモデル] 親の座標を子の座標に代入させてから子のAgt_Init{}を動かしたい
質問者: la manoさん , 質問日時: 2020/09/16 23:41
Agt_init{
//自分の座標周辺に巣を作る
}

Agt_Step{
//巣に向かう

//子を生成する
//親の座標を子に生成する
}

といった旨の記述をしようとしたところ、子の座標が原点にある状態で巣が生成されるのか原点周辺のみに巣が作られてしまいます。

恐らく親Stepで子が生成された直後、子のinitが走った後に親Stepの続きが走っていることが原因かと思われますが、
1:子initから親の座標を参照する方法が分からない
2:子initを起動する前に子の座標を変える方法が分からない
といった理由で改善することが出来ていません。

一応今agt_initに記述している旨をuniv_initと親stepに記述することで解決可能とは思われますが、綺麗な解法ではないので最終手段にしたく、何か良い解決方法があればご教授願いたく質問しました。



▼解決した回答


実現したいのは、次のような流れでしょうか?
1. 親を生成する
2. 子を生成する
3. 子を親に紐付けて、親の座標を代入する
4. 子は自分の座標周辺に巣を作る

2の子を生成したときにAgt_Initが実行されるため、座標は原点となります。
例えば、子のAgt_Stepで、親と紐付けられていない場合(もしくは座標が原点の場合)は処理をスルーして、親と紐付けられた場合に、4の処理を行うようにすればよいと思います。

回答者: m.tamada さん , 回答日時: 2020/09/17 11:00

▼ 全ての回答


実現したいのは、次のような流れでしょうか?
1. 親を生成する
2. 子を生成する
3. 子を親に紐付けて、親の座標を代入する
4. 子は自分の座標周辺に巣を作る

2の子を生成したときにAgt_Initが実行されるため、座標は原点となります。
例えば、子のAgt_Stepで、親と紐付けられていない場合(もしくは座標が原点の場合)は処理をスルーして、親と紐付けられた場合に、4の処理を行うようにすればよいと思います。

回答者: m.tamada さん , 回答日時: 2020/09/17 11:00



Copyright © KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
( 会社情報 情報セキュリティ・個人情報について )