Advertisement
Guest User

Untitled

a guest
Aug 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.51 KB | None | 0 0
  1. """Created 28/06/15 by patrick sheppard."""
  2.  
  3. import sys
  4. sys.dont_write_bytecode = True
  5.  
  6. import pygame
  7. import classes
  8. import process
  9. import UIElements
  10.  
  11.  
  12. pygame.init()
  13.  
  14. class SnakeGame:
  15.  
  16. def __init__(self):
  17.  
  18.  
  19. self.SCREENWIDTH, self.SCREENHEIGHT = 640, 640
  20. self.BACKGROUND = (181,252,126)
  21. self.SNAKECOLOR = (40, 90, 0)
  22. # gridsize if the number of squares on the grid,
  23. # no the number of pixels to each square.
  24. self.GRIDSIZE = (40, 40)
  25. self.screen = pygame.display.set_mode((self.SCREENWIDTH,\
  26. self.SCREENHEIGHT))
  27. self.Clock = pygame.time.Clock()
  28. self.FPS = 60
  29. self.snakeSpeed = 6
  30. self.totalFrames = 0
  31. self.velocity = 2
  32. self.pause = False
  33. self.justPaused = True
  34. self.lost = False
  35. self.justLost = True
  36. self.clock = pygame.time.Clock()
  37.  
  38. self.grid = classes.Grid(self.GRIDSIZE,\
  39. self.SCREENWIDTH,\
  40. self.SCREENHEIGHT,\
  41. self.BACKGROUND)
  42. squareSizeX = self.grid.squaresizex
  43. squareSizeY = self.grid.squaresizey
  44. self.snake = classes.Snake(squareSizeX,\
  45. squareSizeY,\
  46. self.GRIDSIZE,\
  47. self.SNAKECOLOR)
  48.  
  49. self.mainFont = ("data/arial.ttf", 15)
  50.  
  51. while True:
  52.  
  53. if self.lost:
  54. self.endWhile()
  55. elif not self.pause:
  56. self.mainWhile()
  57. elif self.pause:
  58. self.pauseWhile()
  59.  
  60.  
  61. def mainWhile(self):
  62.  
  63. self.pause = process.eventHandler(self.snake)
  64. self.screen.fill(self.BACKGROUND)
  65.  
  66. self.controls()
  67. if self.totalFrames % self.snakeSpeed == 0:
  68. UIElements.BaseUIClass.UISprites.empty()
  69. self.snake.motion(self.SCREENWIDTH, self.SCREENHEIGHT)
  70. if self.snake.lost:
  71. self.lost = True
  72. self.applyControls()
  73.  
  74. classes.BaseClass.allSprites.draw(self.screen)
  75. classes.Snake.snakeGroup.draw(self.screen)
  76. classes.Snake.dotGroup.draw(self.screen)
  77. self.clock.tick(self.FPS)
  78. pygame.display.flip()
  79. self.totalFrames += 1
  80.  
  81. def endWhile(self):
  82. if self.justLost:
  83. self.makeEndUI()
  84. process.pausedEventHandler()
  85. self.clock.tick(self.FPS)
  86. pygame.display.flip()
  87.  
  88. def makeEndUI(self):
  89. pass
  90.  
  91. def pauseWhile(self):
  92. if self.justPaused:
  93. r = UIElements.Button(font = self.mainFont, text = "Restart",\
  94. command = self.restartGame)
  95. UIElements.Button(font = self.mainFont, text = "Continue",\
  96. y = r.rect.y + r.height + r.borderWidth * 4,\
  97. command = self.makePauseFalse)
  98. UIElements.BaseUIClass.UISprites.draw(self.screen)
  99. self.pause = process.pausedEventHandler()
  100. self.clock.tick(self.FPS)
  101. pygame.display.flip()
  102.  
  103. def restartGame(self):
  104. pass
  105.  
  106. def makePauseFalse(self):
  107. self.pause = False
  108.  
  109. def controls(self):
  110. keys = pygame.key.get_pressed()
  111.  
  112. # Controls for game.
  113. # fix control system as it is lagging.
  114.  
  115. dX = self.snake.direcX
  116. dY = self.snake.direcY
  117. velx = self.snake.velx
  118. vely = self.snake.vely
  119.  
  120. if keys[pygame.K_d] or keys[pygame.K_RIGHT]:
  121. if dX == -velx:
  122. pass
  123. else:
  124. dX = velx
  125. dY = 0
  126. elif keys[pygame.K_a] or keys[pygame.K_LEFT]:
  127. if dX == velx:
  128. pass
  129. else:
  130. dX = -velx
  131. dY = 0
  132. elif keys[pygame.K_w] or keys[pygame.K_UP]:
  133. if dY == vely:
  134. pass
  135. else:
  136. dX = 0
  137. dY = -vely
  138. elif keys[pygame.K_s] or keys[pygame.K_DOWN]:
  139. if dY == -vely:
  140. pass
  141. else:
  142. dX = 0
  143. dY = vely
  144.  
  145. self.snakeVelx = dX
  146. self.snakeVely = dY
  147.  
  148. def applyControls(self):
  149. self.snake.direcX = self.snakeVelx
  150. self.snake.direcY = self.snakeVely
  151.  
  152. if __name__ == "__main__":
  153. SnakeGame()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement