Closed tacigar closed 7 years ago
get_staticdata
が, オブジェクトが消えるタイミングだけじゃなくて, 生成のタイミングでも呼ばれているっぽくてこのままじゃ無理と判明.
dummy_imem が on_step
で毎回近くの maidroid を探して, ない場合は remove という処理をしているのに倣って, maidroid の on_step
でも毎回 dummy_item を探し, ない場合は生成するという風にする.
また, dummy_item が複数 maidroid に引っ付かないように, dummy_item の on_activate
で, チェックする.
あ〜, on_activate
→ get_staticdata
という順で呼び出されているんですね...
なので, 一番最初の on_activate
の時だけは staticdata
は空文字なので, 消されないと...
素晴らしいです!
すみません、間違っていたかもしれないので消しました…。
やっぱり出来るかもしれません。
get_staticdata = function(self)
return "remove"
end
on_activate = function(self, staticdata)
if staticdata == "remove" then
self.object:remove()
return
end
end
BBSに書いたときは
なるほど!ありがとうございます
get_staticdata
で self.object:remove
を呼び出しても上手く削除されないっぽいっす...
remove
は一応呼び出されてるっぽいですが, どんどん dummy_item が増えていってしまう...
的外れでした、すみません…。(get_activateとは…)
get_activate
... どっちだ... 😅
混乱している…(笑) さっきのon_activateで消すコードを使うのはいかがでしょう?動くか確認はしていませんが…。
そうですね... 試したところちゃんと動きました!
うちではget_staticdata()でremove()を呼んで消えていますが、バージョンの差異? ちと見直してみます……
get_staticdataで動かないのって、呼び出しの時点で既にself.objectは削除されているってことなんでしょうかね。
remove
自体は呼び出せるので削除はされてないと思います... ちょっと謎ですね...
うちではget_staticdata()でremove()を呼んで消えていますが、バージョンの差異?
ほんとですか! 当方 Mac で version 0.4.14 で試しています.
遠くに行った場合はOKだけど、ログアウト・ログインの場合はダメっぽいですね。 remove()を呼んでも残ってました。
自分の環境では遠くへ行った場合もダメでした... 😢
New algorithm.
on_activate
of maidroid must creates a dummy item and attach it byset_attach
every time.get_staticdata
every time.