Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """Created 28/06/15 by patrick sheppard."""
- import sys
- sys.dont_write_bytecode = True
- import pygame
- import classes
- import process
- import UIElements
- pygame.init()
- class SnakeGame:
- def __init__(self):
- self.SCREENWIDTH, self.SCREENHEIGHT = 640, 640
- self.BACKGROUND = (181,252,126)
- self.SNAKECOLOR = (40, 90, 0)
- # gridsize if the number of squares on the grid,
- # no the number of pixels to each square.
- self.GRIDSIZE = (40, 40)
- self.screen = pygame.display.set_mode((self.SCREENWIDTH,\
- self.SCREENHEIGHT))
- self.Clock = pygame.time.Clock()
- self.FPS = 60
- self.snakeSpeed = 6
- self.totalFrames = 0
- self.velocity = 2
- self.pause = False
- self.justPaused = True
- self.lost = False
- self.justLost = True
- self.clock = pygame.time.Clock()
- self.grid = classes.Grid(self.GRIDSIZE,\
- self.SCREENWIDTH,\
- self.SCREENHEIGHT,\
- self.BACKGROUND)
- squareSizeX = self.grid.squaresizex
- squareSizeY = self.grid.squaresizey
- self.snake = classes.Snake(squareSizeX,\
- squareSizeY,\
- self.GRIDSIZE,\
- self.SNAKECOLOR)
- self.mainFont = ("data/arial.ttf", 15)
- while True:
- if self.lost:
- self.endWhile()
- elif not self.pause:
- self.mainWhile()
- elif self.pause:
- self.pauseWhile()
- def mainWhile(self):
- self.pause = process.eventHandler(self.snake)
- self.screen.fill(self.BACKGROUND)
- self.controls()
- if self.totalFrames % self.snakeSpeed == 0:
- UIElements.BaseUIClass.UISprites.empty()
- self.snake.motion(self.SCREENWIDTH, self.SCREENHEIGHT)
- if self.snake.lost:
- self.lost = True
- self.applyControls()
- classes.BaseClass.allSprites.draw(self.screen)
- classes.Snake.snakeGroup.draw(self.screen)
- classes.Snake.dotGroup.draw(self.screen)
- self.clock.tick(self.FPS)
- pygame.display.flip()
- self.totalFrames += 1
- def endWhile(self):
- if self.justLost:
- self.makeEndUI()
- process.pausedEventHandler()
- self.clock.tick(self.FPS)
- pygame.display.flip()
- def makeEndUI(self):
- pass
- def pauseWhile(self):
- if self.justPaused:
- r = UIElements.Button(font = self.mainFont, text = "Restart",\
- command = self.restartGame)
- UIElements.Button(font = self.mainFont, text = "Continue",\
- y = r.rect.y + r.height + r.borderWidth * 4,\
- command = self.makePauseFalse)
- UIElements.BaseUIClass.UISprites.draw(self.screen)
- self.pause = process.pausedEventHandler()
- self.clock.tick(self.FPS)
- pygame.display.flip()
- def restartGame(self):
- pass
- def makePauseFalse(self):
- self.pause = False
- def controls(self):
- keys = pygame.key.get_pressed()
- # Controls for game.
- # fix control system as it is lagging.
- dX = self.snake.direcX
- dY = self.snake.direcY
- velx = self.snake.velx
- vely = self.snake.vely
- if keys[pygame.K_d] or keys[pygame.K_RIGHT]:
- if dX == -velx:
- pass
- else:
- dX = velx
- dY = 0
- elif keys[pygame.K_a] or keys[pygame.K_LEFT]:
- if dX == velx:
- pass
- else:
- dX = -velx
- dY = 0
- elif keys[pygame.K_w] or keys[pygame.K_UP]:
- if dY == vely:
- pass
- else:
- dX = 0
- dY = -vely
- elif keys[pygame.K_s] or keys[pygame.K_DOWN]:
- if dY == -vely:
- pass
- else:
- dX = 0
- dY = vely
- self.snakeVelx = dX
- self.snakeVely = dY
- def applyControls(self):
- self.snake.direcX = self.snakeVelx
- self.snake.direcY = self.snakeVely
- if __name__ == "__main__":
- SnakeGame()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement