【Defold】ブロックを「押す」様な動きを実装する
目次
前提条件
押す側の GameObject、押される側の GameObject どちらもcollisionobject が設定されている状態にしておきます。
手順
押される側にこちらのスクリプトを追加します。
function on_message(self, message_id, message, sender)
if message_id == hash("contact_point_response") then
go.set_position(go.get_position() + message.normal * message.distance)
end
end
contact_point_response をメッセージを受け取る様にします。contact_point_response メッセージを受け取った時、message には 衝突時の力の加わる方向 (message.normal) を取得することができます。
間違えやすいのは、collision_response ではなく、contact_point_response であるということです。僕は、はじめう動作しなくて、間違いに気づくのに時間がかかりました…。