Welcome to the forum! 
(...but please don't double-post

)
FYI, I've moved this to the "Developer" subforum. As it's obviously not about a finished app.
-> For this type of game, you should definitely consider making separate base classes for the environment, the monsters, and the towers (and then make subclasses for each
type of tower and monster).
-> You
don't want your "when-tower-sees-an-enemy" code in the same module as the painting code! You might want to use a model/view/controller setup, that'd be one way to make sure the physics are not frame-rate dependent.
There's a ton of
tower defence source code out there...