Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Fri Nov 2 15:54:38 2018
- @author: Eier
- """
- ### HER KOMMER BASIC KOMPONENTER ###
- ### IMPORTERER BIBLIOTEKER ###
- import pygame
- import time
- import math
- import pyganim
- pygame.init() #Starter opp pygame
- display_width=502 #Setter bredde på spillet
- display_height=442 #Setter høyde på spillet
- ### DEFINERER FARGER ###
- black=(0,0,0)
- white=(255,255,255)
- ### DEFINERER STØRRELSEN PÅ BILDENE ###
- pacman_size=32
- dot_size=32
- gameDisplay = pygame.display.set_mode((display_width,display_height)) #Lager spillvinduet
- pygame.display.set_caption("Pacman") #Tittelen på spillvinduet
- clock = pygame.time.Clock() #Setter tiden for spillet
- ### HER KOMMER BILDEFILENE ###
- #Laster opp bildene
- pacmanOImg=pygame.image.load("pacmanO.png")
- pacmanCImg=pygame.image.load("pacmanC.png")
- def pacmanAnim():
- pacmanAnim=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
- pacmanAnim.play()
- def pacmanAnimLeft():
- pacmanAnimLeft=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
- pacmanAnimLeft.flip()
- pacmanAnimLeft.play()
- def pacmanAnimUp():
- pacmanAnimUp=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
- pacmanAnimUp.play()
- def pacmanAnimDown():
- pacmanAnimDown=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
- pacmanAnimDown.play()
- #pacmanO_Img=pygame.transform.flip(pacmanOImg,True,False)
- #pacmanC_Img=pygame.transform.flip(pacmanOImg,True,False)
- #pacmanAnimLeft=pyganim.PygAnimation([(pacmanO_Img,80),(pacmanC_Img,80)])
- #pacmanAnimLeft.play()
- dotImg=pygame.image.load("dot.png")
- ghostG_Img=pygame.image.load("ghostGreen1.png")
- ghostG2_Img=pygame.image.load("ghostGreen2.png")
- ghostB_Img=pygame.image.load("ghostBlue1.png")
- ghostB2_Img=pygame.image.load("ghostBlue2.png")
- ghostP_Img=pygame.image.load("ghostPurple1.png")
- ghostP2_Img=pygame.image.load("ghostPurple2.png")
- veggV_Img=pygame.image.load("vegg1.png")
- veggH_Img=pygame.image.load("vegg2.png")
- veggC_Img=pygame.image.load("vegg3.png")
- veggV32_Img=pygame.image.load("veggV32.png")
- veggH32_Img=pygame.image.load("veggH32.png")
- veggT_Img=pygame.image.load("veggT.png")
- veggCorner_Img=pygame.image.load("veggCorner.png")
- veggO_Img=pygame.image.load("veggO1.png")
- nothing=pygame.image.load("ingenting.png")
- #ghostListe=[ghostG_Img,ghostB_Img,ghostP_Img]
- rutenett=[[1,1,1,1,1,2,1,1,1,1,2,1],
- [1,3,4,3,1,2,1,3,9,1,1,1],
- [1,1,2,1,1,2,1,1,11,3,1,3],
- [3,1,1,1,3,6,3,1,1,1,1,1],
- [1,1,2,1,1,1,1,1,3,3,9,1],
- [1,8,6,3,3,3,9,1,1,1,2,1],
- [1,2,1,1,1,1,2,1,12,1,1,1],
- [1,2,1,8,9,1,2,1,1,1,2,1],
- [1,2,1,11,10,1,11,3,1,3,10,1],
- [1,1,1,1,1,0,1,1,1,1,1,1],
- ]
- flip=False
- notFlip=True
- veggV32_boks=veggV32_Img.get_rect()
- ### HER KOMMER EN LISTE MED FUNKSJONER ###
- #def pacmanO(x,y): #Viser pacman
- # gameDisplay.blit(pacmanOImg,(x,y))
- #def pacmanAnim(x,y):
- # gameDisplay.blit(pacmanAnim,(x,y))
- def dot(E,F):
- gameDisplay.blit(dotImg,(E,F))
- def ghostP(c,d): #Viser et lilla spøkelse
- gameDisplay.blit(ghostP_Img,(c,d))
- def veggV(e,f): #Viser vertikal vegg
- gameDisplay.blit(veggV_Img,(e,f))
- def veggH(e,f): #Viser horisontal vegg
- gameDisplay.blit(veggH_Img,(e,f))
- def veggCorner1(e,f):
- gameDisplay.blit(veggC_Img,(e,f))
- def veggV32(E,F):
- gameDisplay.blit(veggV32_Img,(E,F))
- def veggH32(E,F):
- gameDisplay.blit(veggH32_Img,(E,F))
- def veggT(E,F):
- gameDisplay.blit(veggT_Img,(E,F))
- def veggCorner(E,F):
- gameDisplay.blit(veggCorner_Img,(E,F))
- def veggO(E,F):
- gameDisplay.blit(veggO_Img,(E,F))
- def ingenting(E,F):
- gameDisplay.blit(nothing,(E,F))
- def text_objects(text,font):
- textSurface=font.render(text, True, white)
- return textSurface,textSurface.get_rect()
- def message_display(text):
- largeText=pygame.font.Font("freesansbold.ttf",115)
- TextSurf, TextRect=text_objects(text,largeText)
- TextRect.center = ((display_width/2),(display_height/2))
- gameDisplay.blit(TextSurf, TextRect)
- pygame.display.update()
- time.sleep(2)
- game_loop()
- def goal():
- message_display("You won!")
- #Vil ha en funskjon som spør om å starte på nytt og som restarter spillet
- def crash(): #Crash-funksjonen
- message_display("You lost!")
- def restart():
- rutenett=[[1,1,1,1,1,2,1,1,1,1,2,1],
- [1,3,4,3,1,2,1,3,9,1,1,1],
- [1,1,2,1,1,2,1,1,11,3,1,3],
- [3,1,1,1,3,6,3,1,1,1,1,1],
- [1,1,2,1,1,1,1,1,3,3,9,1],
- [1,8,6,3,3,3,9,1,1,1,2,1],
- [1,2,1,1,1,1,2,1,12,1,1,1],
- [1,2,1,8,9,1,2,1,1,1,2,1],
- [1,2,1,11,10,1,11,3,1,3,10,1],
- [1,1,1,1,1,0,1,1,1,1,1,1],
- ]
- def score(poeng):
- font=pygame.font.SysFont(None,40)
- text=font.render("Poeng: "+str(poeng),True, white)
- gameDisplay.blit(text,(190,15))
- ### HER KOMMER SELVE SPILLLØKKEN ###
- def game_loop():
- restart()
- ### Definerer posisjonene til objektene ###
- x=(display_width*0.45) #Definerer x
- y=(display_height*0.8) #Definerer y
- x_change=0
- y_change=0
- c=(400)
- d=(200)
- e=(50)
- f=(50)
- E=(70)
- F=(70)
- flip=False
- gameExit=False #Sier at spillet ikke har blitt avsluttet
- poeng=0
- while not gameExit: #Loopen kjører når gameExit=False
- for event in pygame.event.get():
- if event.type==pygame.QUIT:
- pygame.quit()
- quit()
- ### Styrer handlingene ved tastetrykk ###
- if event.type==pygame.KEYDOWN:
- if event.key==pygame.K_LEFT:
- x_change=-2
- y_change=0
- pacmanAnimLeft()
- elif event.key==pygame.K_RIGHT:
- x_change=2
- y_change=0
- elif event.key==pygame.K_UP:
- y_change=-2
- x_change=0
- elif event.key==pygame.K_DOWN:
- y_change=2
- x_change=0
- if x<=60:
- x=61
- x_change=0
- elif x>=display_width-92:
- x=display_width-93
- x_change=0
- if y<=60:
- y=61
- y_change=0
- elif y>=display_height-92:
- y=display_height-93
- y_change=0
- x+=x_change #Setter x lik endringen i x-retning
- y+=y_change #Sette ry lik endringen i y-retning
- gameDisplay.fill(black) #Setter bakgrunnsfargen
- ### Viser bildene i spillvinudet ###
- # if x_change==-2:
- # flip=True
- # elif x_change==2:
- # flip=True
- # Viser Pacman
- # if flip==False:
- # pacmanAnim.blit(gameDisplay,(x,y))
- #
- # if flip==True:
- # pacmanAnim.flip(True,False)
- #
- # flip=False
- # pacmanAnim.blit(gameDisplay,(x,y))
- # print(flip)
- ghostP(c,d)
- if (c-16)<=x<=(c+16) and (d-16)<=y<=(d+16):
- poeng=0
- crash()
- veggCorner1(e,f)
- veggC2=pygame.transform.flip(veggC_Img,True,False)
- gameDisplay.blit(veggC2,(display_width-60,f))
- veggC3=pygame.transform.rotate(veggC_Img,90)
- gameDisplay.blit(veggC3,(display_width-60,display_height-60))
- veggC3=pygame.transform.rotate(veggC_Img,180)
- gameDisplay.blit(veggC3,(display_width-60,display_height-60))
- veggC4=pygame.transform.rotate(veggC_Img,90)
- gameDisplay.blit(veggC4,(e,display_height-60))
- for ruter in range(e+10,display_width-61,10):
- veggH(ruter,f)
- veggH(ruter,display_height-60)
- for ruter in range(f+10,display_height-61,10):
- veggV(e,ruter)
- veggV(display_width-60,ruter)
- F=60
- for rad in rutenett:
- E=60
- for rute in rad:
- if rute==0:
- ingenting(E,F)
- if rute==1:
- if (E-16)<=x<=(E+16) and (F-16)<=y<=(F+16):
- position=math.floor(E/32-1)
- print(position)
- rad[position]=0
- poeng+=10
- else:
- dot(E,F)
- elif rute==2:
- veggV32(E,F)
- if (E-17)<=x<=(E+4) and (F-16)<=y<=(F+1):
- x-=1
- x_change=0
- elif (E+5)<=x<=(E+20) and (F+2)<=y<=(F+32):
- x+=1
- x_change=0
- elif rute==3:
- veggH32(E,F)
- if (E-17)<=x<=(E+16) and (F-16)<=y<=(F+1):
- y-=1
- y_change=0
- elif E<=x<=(E+17) and (F+2)<=y<=(F+17):
- y+=1
- y_change=0
- elif rute==4:
- veggT(E,F)
- if (E-17)<=x<=(E+16) and (F-8)<=y<=(F+5):
- y-=10
- y_change=0
- elif E<=x<=(E+17) and (F+5)<=y<=(F+17):
- y+=1
- y_change=0
- elif rute==5:
- veggT2=pygame.transform.rotate(veggT_Img,90)
- gameDisplay.blit(veggT2,(E,F))
- elif rute==6:
- veggT3=pygame.transform.rotate(veggT_Img,180)
- gameDisplay.blit(veggT3,(E,F))
- elif rute==7:
- veggT4=pygame.transform.rotate(veggT_Img,270)
- gameDisplay.blit(veggT4,(E,F))
- elif rute==8:
- veggCorner(E,F)
- elif rute==9:
- veggC2=pygame.transform.rotate(veggCorner_Img,270)
- gameDisplay.blit(veggC2,(E,F))
- elif rute==10:
- veggC3=pygame.transform.rotate(veggCorner_Img,180)
- gameDisplay.blit(veggC3,(E,F))
- elif rute==11:
- veggC4=pygame.transform.rotate(veggCorner_Img,90)
- gameDisplay.blit(veggC4,(E,F))
- elif rute==12:
- veggO(E,F)
- # for rute in range (2,13):
- # if (E-1)<x<(E+1) and (F-3)<y<(F+1):
- # x-=1
- # y-=1
- # x_change=0
- # y_change=0
- # elif E<x<(E+1) and F<y<(F+1):
- # x+=1
- # y+=1
- # y_change=0
- # x_change=0
- E+=32
- F+=32
- if poeng==760:
- goal()
- restart()
- #
- ### Avslutter spillet ###
- if x > display_width-pacman_size or x<0:
- crash()
- if y > display_height-pacman_size or y<0:
- crash()
- score(poeng)
- pygame.display.update() #Oppdaterer hele vinduet
- clock.tick(60) #Setter frames per second
- ### HER KJØRES FUNKSJONENE ###
- game_loop()
- pygame.quit() #Avslutter spillet
- quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement