I have managed to make a game that works without using classes or other files but I want to make something more substantial and hence I have learned how to utilize these tools. One problem. The old method I used for movement controls doesn't port well to the way I am forced to do things via classes so I have coded a new way of handling it but for the life of me I can't seem to make it all work.

The problems hang around the self.position in __init__. I want it to give the default position of (WINDOWWIDTH // 2, WINDOWHEIGHT // 2) so it will start us in the middle of the screen but if I give it any value thats where I start and stop. I don't think it's being updated from the movement function.

I have managed to make movement sort of work with the use of a for loop before the movement ifs that looks like this:

not sure which engine or language your using, but I've got an idea to a few of your issues.

But it only works in such a way that you have to repeatedly tap the movement key to make it work not able to hold it down.

This means your reasponding to a key pressed event, and not a key down event. Key pressed typically means that the key was pressed down and then released. I.e. happens only once per tap. What you need to react to is the KeyDown event, (if an event is what your game uses, and not a state that you have to request on update.) which should happen everyupdate if the key is down.

IndexError: Index is out of key range.

for the [pygame.K_WHATEVERS] in the if statements.

@warnexus is correct on what the error is defined as, but it appears that your specific issue is that you probably have more than one Key Enumerator to work with. I'm guessing that key_states might be Key Up, Key Down, +Shift, +Control, I.e. it is identifying the state of the key that is pressed. I noticed the other parameter, which is "key_pressed", and that is probably the enumerator for a single key being pressed. I.e. key_pressed refers to the specific key, and key_state specifically refers to control or shift button information.

Edited by hpdvs2, 06 February 2013 - 01:49 PM.

Moltar - "Do you even know how to use that?"

Space Ghost - “Moltar, I have a giant brain that is able to reduce any complex machine into a simple yes or no answer."