Add individual movement

This commit is contained in:
PAlexanderFranklin 2023-05-17 00:05:33 -07:00
parent 0472d8ea59
commit de85e5cbea

View File

@ -19,16 +19,60 @@ screen = pygame.display.set_mode((screen_width,screen_height))
pygame.display.set_caption('monster-masher-clone') pygame.display.set_caption('monster-masher-clone')
class Player: class Player:
def __init__(self, x, y, color): def __init__(self, x, y, color, keys):
self.x = x self.x = x
self.y = y self.y = y
self.color = color self.color = color
self.keys = keys
self.sprite = pygame.Rect((tile*x)+2,(tile*y)+2,tile-2,tile-2) self.sprite = pygame.Rect((tile*x)+2,(tile*y)+2,tile-2,tile-2)
def move(self, x, y):
self.x += x
self.y += y
def keyPress(self, key):
try:
command = self.keys[key]
if command == "n":
self.move(0,-1)
if command == "ne":
self.move(1,-1)
if command == "e":
self.move(1,0)
if command == "se":
self.move(1,1)
if command == "s":
self.move(0,1)
if command == "sw":
self.move(-1,1)
if command == "w":
self.move(-1,0)
if command == "nw":
self.move(-1,-1)
finally:
return True
players = [] players = []
players.append(Player(25, 20, red)) players.append(Player(25, 20, red, {
players.append(Player(20, 15, blue)) pygame.K_w: "n",
players.append(Player(30, 15, green)) pygame.K_e: "ne",
pygame.K_d: "e",
pygame.K_c: "se",
pygame.K_x: "s",
pygame.K_z: "sw",
pygame.K_a: "w",
pygame.K_q: "nw"
}))
players.append(Player(25, 20, green, {
pygame.K_KP_8: "n",
pygame.K_KP_9: "ne",
pygame.K_KP_6: "e",
pygame.K_KP_3: "se",
pygame.K_KP_2: "s",
pygame.K_KP_1: "sw",
pygame.K_KP_4: "w",
pygame.K_KP_7: "nw"
}))
game_font = pygame.font.Font("freesansbold.ttf",32) game_font = pygame.font.Font("freesansbold.ttf",32)
@ -42,16 +86,11 @@ while True:
sys.exit() sys.exit()
if event.type == pygame.KEYDOWN: if event.type == pygame.KEYDOWN:
print(event)
for player in players: for player in players:
if event.key == pygame.K_s: player.keyPress(event.key)
player.y += 1
if event.key == pygame.K_w:
player.y -= 1
if event.key == pygame.K_a:
player.x -= 1
if event.key == pygame.K_d:
player.x += 1
keys = pygame.key.get_pressed()
# Rendering # Rendering
screen.fill(bg_color) screen.fill(bg_color)
for player in players: for player in players: