#Jag importerar alla kommandon som ryms inom Pygame, samt vissa systemkommandon.
import pygame, sys, os
from pygame.locals import *
#Här importerar jag alla bilder på Pacman och spöken.
#Pacmanbilderna ordnades även in i en lista, pacList, för att skapa en ordning bland dem.
pac1 = pygame.image.load('Pacman1.png')
pac2 = pygame.image.load('Pacman2.png')
pac3 = pygame.image.load('Pacman3.png')
pac4 = pygame.image.load('Pacman4.png')
wall = pygame.image.load('Wall.png')
pacList = [pac1, pac2, pac3, pac4, pac3, pac2]
ghost1 = pygame.image.load('ghost1.png')
ghost2 = pygame.image.load('ghost2.png')
ghost3 = pygame.image.load('ghost3.png')
ghost4 = pygame.image.load('ghost4.png')
#Antalet rutor i x- och y-led, spelplanen höjd och bredd samt bakgrundsfärgen i RGB-skala definieras.
#Jag initierar också den inbyggda spelklockan.
xCords, yCords = 20, 20
size =width, height = 800, 800
bgc = (0, 0, 0)
clock = pygame.time.Clock()
#Spelplanen skapas och fylls ut med färgen. Planen namnges som "Pacman"
screen = pygame.display.set_mode((width, height))
screen.fill(bgc)
pygame.display.set_caption("Pacman")
class Pacman(object):
def __init__(self, speed=5, x=400, y=400, sprite=pacList):
self.speed = speed
self.x = x
self.y = y
self.pos = (self.x,self.y)
self.spriteNum = 0
self.sprite = sprite
def move(self, direction):
if direction == "up":
self.y -= self.speed
if direction == "down":
self.y += self.speed
if direction == "right":
self.x += self.speed
if direction == "left":
self.x -= self.speed
return (self.x, self.y)
def spriteChange(self):
if self.spriteNum == 5:
self.spriteNum = 0
else:
self.spriteNum += 1
if direction == "down":
return self.rot_center(90)
return self.sprite[self.spriteNum]
def rot_center(self, angle):
orig_rect = (self.sprite[self.spriteNum]).get_rect()
rot_image = pygame.transform.rotate(self.sprite[self.spriteNum], angle)
rot_rect = orig_rect.copy()
rot_rect.center = rot_image.get_rect().center
rot_image = rot_image.subsurface(rot_rect).copy()
return rot_image
pacman = Pacman()
direction = 0
done = False
while not done:
clock.tick(20)
screen.fill((0, 0, 0))
for event in pygame.event.get():
if event.type == KEYDOWN and event.key == K_w:
direction = "up"
elif event.type == KEYDOWN and event.key == K_s:
direction = "down"
elif event.type == KEYDOWN and event.key == K_d:
direction = "right"
elif event.type == KEYDOWN and event.key == K_a:
direction = "left"
if event.type == pygame.QUIT:
done = True
screen.blit(pacman.spriteChange(), pacman.move(direction))
pygame.display.flip()
pygame.quit()