Is it expected for a PythonController to be activated twice when a MessageSensor is activated via bge.logic.sendMessage?
If I do this:
bge.logic.sendMessage(“a_subject”, “a_body”)
My PythonController is activated once with body “a_body” and again with no body whatsoever. I’ve been checking the length of the message body to disregard the second undesired message.
I would guess that you’re calling bge.logic.sendMessage(“a_subject”, “a_body”) twice.
If you’re triggering that code via a keyboard sensor, make sure that you’re doing this:
if sen_key.positive:
bge.logic.sendMessage("a_subject", "a_body")
If you just call send message in the main body, then it would run once when you press the key, and once when you release it, because you’re getting a sensor pulse on each event.
So, having it under the “if sen_key.positive” conditional would help you avoid that.