Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.91 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on Fri Nov 2 15:54:38 2018
  4.  
  5. @author: Eier
  6. """
  7. ### HER KOMMER BASIC KOMPONENTER ###
  8.  
  9. ### IMPORTERER BIBLIOTEKER ###
  10. import pygame
  11. import time
  12. import math
  13. import pyganim
  14.  
  15. pygame.init() #Starter opp pygame
  16.  
  17. display_width=502 #Setter bredde på spillet
  18. display_height=442 #Setter høyde på spillet
  19.  
  20. ### DEFINERER FARGER ###
  21. black=(0,0,0)
  22. white=(255,255,255)
  23.  
  24.  
  25. ### DEFINERER STØRRELSEN PÅ BILDENE ###
  26. pacman_size=32
  27. dot_size=32
  28.  
  29. gameDisplay = pygame.display.set_mode((display_width,display_height)) #Lager spillvinduet
  30. pygame.display.set_caption("Pacman") #Tittelen på spillvinduet
  31. clock = pygame.time.Clock() #Setter tiden for spillet
  32.  
  33.  
  34.  
  35. ### HER KOMMER BILDEFILENE ###
  36.  
  37. #Laster opp bildene
  38. pacmanOImg=pygame.image.load("pacmanO.png")
  39. pacmanCImg=pygame.image.load("pacmanC.png")
  40.  
  41. def pacmanAnim():
  42. pacmanAnim=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
  43. pacmanAnim.play()
  44.  
  45. def pacmanAnimLeft():
  46. pacmanAnimLeft=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
  47. pacmanAnimLeft.flip()
  48. pacmanAnimLeft.play()
  49.  
  50. def pacmanAnimUp():
  51. pacmanAnimUp=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
  52. pacmanAnimUp.play()
  53.  
  54. def pacmanAnimDown():
  55. pacmanAnimDown=pyganim.PygAnimation([(pacmanOImg,80),(pacmanCImg,80)])
  56. pacmanAnimDown.play()
  57.  
  58.  
  59.  
  60. #pacmanO_Img=pygame.transform.flip(pacmanOImg,True,False)
  61. #pacmanC_Img=pygame.transform.flip(pacmanOImg,True,False)
  62. #pacmanAnimLeft=pyganim.PygAnimation([(pacmanO_Img,80),(pacmanC_Img,80)])
  63. #pacmanAnimLeft.play()
  64.  
  65.  
  66.  
  67. dotImg=pygame.image.load("dot.png")
  68.  
  69. ghostG_Img=pygame.image.load("ghostGreen1.png")
  70. ghostG2_Img=pygame.image.load("ghostGreen2.png")
  71. ghostB_Img=pygame.image.load("ghostBlue1.png")
  72. ghostB2_Img=pygame.image.load("ghostBlue2.png")
  73. ghostP_Img=pygame.image.load("ghostPurple1.png")
  74. ghostP2_Img=pygame.image.load("ghostPurple2.png")
  75.  
  76. veggV_Img=pygame.image.load("vegg1.png")
  77. veggH_Img=pygame.image.load("vegg2.png")
  78. veggC_Img=pygame.image.load("vegg3.png")
  79.  
  80. veggV32_Img=pygame.image.load("veggV32.png")
  81. veggH32_Img=pygame.image.load("veggH32.png")
  82. veggT_Img=pygame.image.load("veggT.png")
  83. veggCorner_Img=pygame.image.load("veggCorner.png")
  84. veggO_Img=pygame.image.load("veggO1.png")
  85. nothing=pygame.image.load("ingenting.png")
  86.  
  87. #ghostListe=[ghostG_Img,ghostB_Img,ghostP_Img]
  88. rutenett=[[1,1,1,1,1,2,1,1,1,1,2,1],
  89. [1,3,4,3,1,2,1,3,9,1,1,1],
  90. [1,1,2,1,1,2,1,1,11,3,1,3],
  91. [3,1,1,1,3,6,3,1,1,1,1,1],
  92. [1,1,2,1,1,1,1,1,3,3,9,1],
  93. [1,8,6,3,3,3,9,1,1,1,2,1],
  94. [1,2,1,1,1,1,2,1,12,1,1,1],
  95. [1,2,1,8,9,1,2,1,1,1,2,1],
  96. [1,2,1,11,10,1,11,3,1,3,10,1],
  97. [1,1,1,1,1,0,1,1,1,1,1,1],
  98. ]
  99.  
  100. flip=False
  101. notFlip=True
  102.  
  103. veggV32_boks=veggV32_Img.get_rect()
  104. ### HER KOMMER EN LISTE MED FUNKSJONER ###
  105.  
  106. #def pacmanO(x,y): #Viser pacman
  107. # gameDisplay.blit(pacmanOImg,(x,y))
  108.  
  109. #def pacmanAnim(x,y):
  110. # gameDisplay.blit(pacmanAnim,(x,y))
  111.  
  112. def dot(E,F):
  113. gameDisplay.blit(dotImg,(E,F))
  114.  
  115. def ghostP(c,d): #Viser et lilla spøkelse
  116. gameDisplay.blit(ghostP_Img,(c,d))
  117.  
  118. def veggV(e,f): #Viser vertikal vegg
  119. gameDisplay.blit(veggV_Img,(e,f))
  120.  
  121. def veggH(e,f): #Viser horisontal vegg
  122. gameDisplay.blit(veggH_Img,(e,f))
  123.  
  124. def veggCorner1(e,f):
  125. gameDisplay.blit(veggC_Img,(e,f))
  126.  
  127.  
  128. def veggV32(E,F):
  129. gameDisplay.blit(veggV32_Img,(E,F))
  130.  
  131. def veggH32(E,F):
  132. gameDisplay.blit(veggH32_Img,(E,F))
  133.  
  134. def veggT(E,F):
  135. gameDisplay.blit(veggT_Img,(E,F))
  136.  
  137. def veggCorner(E,F):
  138. gameDisplay.blit(veggCorner_Img,(E,F))
  139.  
  140. def veggO(E,F):
  141. gameDisplay.blit(veggO_Img,(E,F))
  142.  
  143. def ingenting(E,F):
  144. gameDisplay.blit(nothing,(E,F))
  145.  
  146.  
  147.  
  148. def text_objects(text,font):
  149. textSurface=font.render(text, True, white)
  150. return textSurface,textSurface.get_rect()
  151.  
  152. def message_display(text):
  153. largeText=pygame.font.Font("freesansbold.ttf",115)
  154. TextSurf, TextRect=text_objects(text,largeText)
  155. TextRect.center = ((display_width/2),(display_height/2))
  156. gameDisplay.blit(TextSurf, TextRect)
  157.  
  158. pygame.display.update()
  159.  
  160. time.sleep(2)
  161. game_loop()
  162.  
  163.  
  164. def goal():
  165. message_display("You won!")
  166.  
  167. #Vil ha en funskjon som spør om å starte på nytt og som restarter spillet
  168.  
  169.  
  170. def crash(): #Crash-funksjonen
  171. message_display("You lost!")
  172.  
  173. def restart():
  174. rutenett=[[1,1,1,1,1,2,1,1,1,1,2,1],
  175. [1,3,4,3,1,2,1,3,9,1,1,1],
  176. [1,1,2,1,1,2,1,1,11,3,1,3],
  177. [3,1,1,1,3,6,3,1,1,1,1,1],
  178. [1,1,2,1,1,1,1,1,3,3,9,1],
  179. [1,8,6,3,3,3,9,1,1,1,2,1],
  180. [1,2,1,1,1,1,2,1,12,1,1,1],
  181. [1,2,1,8,9,1,2,1,1,1,2,1],
  182. [1,2,1,11,10,1,11,3,1,3,10,1],
  183. [1,1,1,1,1,0,1,1,1,1,1,1],
  184. ]
  185.  
  186.  
  187. def score(poeng):
  188. font=pygame.font.SysFont(None,40)
  189. text=font.render("Poeng: "+str(poeng),True, white)
  190. gameDisplay.blit(text,(190,15))
  191.  
  192.  
  193. ### HER KOMMER SELVE SPILLLØKKEN ###
  194.  
  195. def game_loop():
  196. restart()
  197. ### Definerer posisjonene til objektene ###
  198. x=(display_width*0.45) #Definerer x
  199. y=(display_height*0.8) #Definerer y
  200. x_change=0
  201. y_change=0
  202.  
  203. c=(400)
  204. d=(200)
  205. e=(50)
  206. f=(50)
  207. E=(70)
  208. F=(70)
  209.  
  210.  
  211. flip=False
  212. gameExit=False #Sier at spillet ikke har blitt avsluttet
  213. poeng=0
  214.  
  215.  
  216. while not gameExit: #Loopen kjører når gameExit=False
  217. for event in pygame.event.get():
  218. if event.type==pygame.QUIT:
  219. pygame.quit()
  220. quit()
  221.  
  222.  
  223.  
  224. ### Styrer handlingene ved tastetrykk ###
  225. if event.type==pygame.KEYDOWN:
  226. if event.key==pygame.K_LEFT:
  227. x_change=-2
  228. y_change=0
  229. pacmanAnimLeft()
  230. elif event.key==pygame.K_RIGHT:
  231. x_change=2
  232. y_change=0
  233.  
  234. elif event.key==pygame.K_UP:
  235. y_change=-2
  236. x_change=0
  237. elif event.key==pygame.K_DOWN:
  238. y_change=2
  239. x_change=0
  240.  
  241. if x<=60:
  242. x=61
  243. x_change=0
  244. elif x>=display_width-92:
  245. x=display_width-93
  246. x_change=0
  247. if y<=60:
  248. y=61
  249. y_change=0
  250. elif y>=display_height-92:
  251. y=display_height-93
  252. y_change=0
  253.  
  254.  
  255. x+=x_change #Setter x lik endringen i x-retning
  256. y+=y_change #Sette ry lik endringen i y-retning
  257.  
  258.  
  259.  
  260.  
  261. gameDisplay.fill(black) #Setter bakgrunnsfargen
  262.  
  263. ### Viser bildene i spillvinudet ###
  264.  
  265.  
  266. # if x_change==-2:
  267. # flip=True
  268. # elif x_change==2:
  269. # flip=True
  270.  
  271.  
  272.  
  273. # Viser Pacman
  274. # if flip==False:
  275. # pacmanAnim.blit(gameDisplay,(x,y))
  276. #
  277. # if flip==True:
  278. # pacmanAnim.flip(True,False)
  279. #
  280. # flip=False
  281. # pacmanAnim.blit(gameDisplay,(x,y))
  282. # print(flip)
  283.  
  284.  
  285.  
  286.  
  287. ghostP(c,d)
  288.  
  289.  
  290. if (c-16)<=x<=(c+16) and (d-16)<=y<=(d+16):
  291. poeng=0
  292. crash()
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299. veggCorner1(e,f)
  300. veggC2=pygame.transform.flip(veggC_Img,True,False)
  301. gameDisplay.blit(veggC2,(display_width-60,f))
  302.  
  303. veggC3=pygame.transform.rotate(veggC_Img,90)
  304. gameDisplay.blit(veggC3,(display_width-60,display_height-60))
  305.  
  306. veggC3=pygame.transform.rotate(veggC_Img,180)
  307. gameDisplay.blit(veggC3,(display_width-60,display_height-60))
  308.  
  309. veggC4=pygame.transform.rotate(veggC_Img,90)
  310. gameDisplay.blit(veggC4,(e,display_height-60))
  311.  
  312.  
  313. for ruter in range(e+10,display_width-61,10):
  314. veggH(ruter,f)
  315. veggH(ruter,display_height-60)
  316. for ruter in range(f+10,display_height-61,10):
  317. veggV(e,ruter)
  318. veggV(display_width-60,ruter)
  319.  
  320.  
  321.  
  322.  
  323.  
  324. F=60
  325. for rad in rutenett:
  326. E=60
  327. for rute in rad:
  328. if rute==0:
  329. ingenting(E,F)
  330. if rute==1:
  331. if (E-16)<=x<=(E+16) and (F-16)<=y<=(F+16):
  332. position=math.floor(E/32-1)
  333. print(position)
  334. rad[position]=0
  335. poeng+=10
  336.  
  337. else:
  338. dot(E,F)
  339.  
  340. elif rute==2:
  341. veggV32(E,F)
  342. if (E-17)<=x<=(E+4) and (F-16)<=y<=(F+1):
  343. x-=1
  344. x_change=0
  345. elif (E+5)<=x<=(E+20) and (F+2)<=y<=(F+32):
  346. x+=1
  347. x_change=0
  348.  
  349. elif rute==3:
  350. veggH32(E,F)
  351. if (E-17)<=x<=(E+16) and (F-16)<=y<=(F+1):
  352. y-=1
  353. y_change=0
  354. elif E<=x<=(E+17) and (F+2)<=y<=(F+17):
  355. y+=1
  356. y_change=0
  357.  
  358. elif rute==4:
  359. veggT(E,F)
  360. if (E-17)<=x<=(E+16) and (F-8)<=y<=(F+5):
  361. y-=10
  362. y_change=0
  363. elif E<=x<=(E+17) and (F+5)<=y<=(F+17):
  364. y+=1
  365. y_change=0
  366.  
  367. elif rute==5:
  368. veggT2=pygame.transform.rotate(veggT_Img,90)
  369. gameDisplay.blit(veggT2,(E,F))
  370. elif rute==6:
  371. veggT3=pygame.transform.rotate(veggT_Img,180)
  372. gameDisplay.blit(veggT3,(E,F))
  373. elif rute==7:
  374. veggT4=pygame.transform.rotate(veggT_Img,270)
  375. gameDisplay.blit(veggT4,(E,F))
  376. elif rute==8:
  377. veggCorner(E,F)
  378. elif rute==9:
  379. veggC2=pygame.transform.rotate(veggCorner_Img,270)
  380. gameDisplay.blit(veggC2,(E,F))
  381. elif rute==10:
  382. veggC3=pygame.transform.rotate(veggCorner_Img,180)
  383. gameDisplay.blit(veggC3,(E,F))
  384. elif rute==11:
  385. veggC4=pygame.transform.rotate(veggCorner_Img,90)
  386. gameDisplay.blit(veggC4,(E,F))
  387. elif rute==12:
  388. veggO(E,F)
  389.  
  390.  
  391. # for rute in range (2,13):
  392. # if (E-1)<x<(E+1) and (F-3)<y<(F+1):
  393. # x-=1
  394. # y-=1
  395. # x_change=0
  396. # y_change=0
  397. # elif E<x<(E+1) and F<y<(F+1):
  398. # x+=1
  399. # y+=1
  400. # y_change=0
  401. # x_change=0
  402.  
  403. E+=32
  404. F+=32
  405.  
  406. if poeng==760:
  407. goal()
  408. restart()
  409.  
  410. #
  411.  
  412. ### Avslutter spillet ###
  413. if x > display_width-pacman_size or x<0:
  414. crash()
  415. if y > display_height-pacman_size or y<0:
  416. crash()
  417.  
  418. score(poeng)
  419. pygame.display.update() #Oppdaterer hele vinduet
  420.  
  421. clock.tick(60) #Setter frames per second
  422.  
  423.  
  424. ### HER KJØRES FUNKSJONENE ###
  425. game_loop()
  426. pygame.quit() #Avslutter spillet
  427. quit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement