Try writing and testing your programs on piece at a time. I've commented everything after the __init__ function for Player1 below. Run it that way first and see if that helps. Then add the functions one by one and test them. The problem is not that Player1 doesn't have an attribute named direction, the problem is that you don't have any idea where and what is wrong. Next, you might want to figure out or ask how to use one Player class for any number of players.
#"""Player 1"""
class Player1(pygame.sprite.Sprite):
def __init__(self):
pygame.sprite.Sprite.__init__(self)
self.STANDING = 0
self.RUNNING = 1
self.loadImages()
self.image = self.imageStand
self.rect = self.image.get_rect()
self.rect.x = 20
self.rect.y = 150
self.frame = 0
self.delay = 3
self.pause = 0
self.state = self.STANDING
direction = ""
"""-------------------- COMMENTED for testing-----------------------------------------------
def checkKeys(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_a]:
direction = "RIGHT"
self.rect.x -= 5
self.state = self.RUNNING
print self.state, self.rect.x
elif keys[pygame.K_d]:
direction = "LEFT"
self.rect.x += 5
self.state = self.RUNNING
print self.state, self.rect.x
def update(self):
self.checkKeys()
if self.state == self.STANDING:
self.image = self.imageStand
elif self.state == self.RUNNING:
self.pause += 1
if self.pause >= self.delay:
self.pause = 0
self.frame += 1
if self.frame >= len(self.runImages):
self.frame = 0
self.state = self.STANDING
self.image = self.imageStand
else:
self.image = self.runImages[self.frame]
def loadImages(self):
if self.direction == "RIGHT":
self.imageStand = pygame.image.load("SPRITES/WALKING_RHS/000.gif")
self.imageStand = self.imageStand.convert()
transColor = self.imageStand.get_at((1, 1))
self.imageStand.set_colorkey(transColor)
self.runImages = []
for i in range(5):
imgName = "SPRITES/WALKING_RHS/00%d.gif" % i
tmpImage = pygame.image.load(imgName)
tmpImage = tmpImage.convert()
transColor = tmpImage.get_at((1, 1))
tmpImage.set_colorkey(transColor)
self.runImages.append(tmpImage)
elif self.direction == "LEFT":
self.imageStand = pygame.image.load("SPRITES/WALKING_LHS/000.gif")
self.imageStand = self.imageStand.convert()
transColor = self.imageStand.get_at((1, 1))
self.imageStand.set_colorkey(transColor)
self.runImages = []
for i in range(5):
imgName = "SPRITES/WALKING_LHS/00%d.gif" % i
tmpImage = pygame.image.load(imgName)
tmpImage = tmpImage.convert()
transColor = tmpImage.get_at((1, 1))
tmpImage.set_colorkey(transColor)
self.runImages.append(tmpImage)
"""
## under def main() after player1=Player1()
print player1.STANDING,
player1.RUNNING,
player1.rect.x,
player1.rect.y,
player1.frame,
player1.delay,
player1.pause,
player1.direction
## or whatever is relevant