I've got mixed feeling here. I love Zach Levi (always did) and his exuberance as a young kid at a pumped adult superhero and Mark Strong is perfect as a scenery chewing super villain.
The part where the kid is adjusting to his new persona as a super hero is precious, particularly when they go to buy beer. That exactly what I would expect from teenagers. Likewise, when they stop the robbery.
But, to me, the movie loses it's gravitas in the climatic carnival scene where everyone becomes Shazam.