Not sure what you mean by "school-example type of inheritance", what's the difference between that and "good" inheritance?
In school they teach you things like "a triangle is-a shape" and a "car is-a vehicle." They are examples that are simple to grasp, but in practice they are problematic. A game object should almost certainly not be a sprite, in whole or in part. That implies a lot of things that are extremely inflexible: all game objects are visible sprites with position, no game object can have more than one associated sprite, et cetera.
As for your actual problem, you're not providing enough information to say. You should most more of the code. In particular it's unclear where all of your members are initialized and to what, and as another poster commented above, that's likely the culprit.