Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions Snake/Snake.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
from pygame.locals import *




def text_display(size, caption, posix, posiy):
font = pygame.font.Font('freesansbold.ttf', size)
text = font.render(caption, True, (255, 0, 0))
Expand All @@ -27,7 +29,9 @@ def handle_eat():
global snake_parts
global new_next
global h
global pause


x, y = find_random()
food.rect.centerx = x
food.rect.centery = y
Expand Down Expand Up @@ -85,6 +89,29 @@ def find_random():
y = random.randint(78, 523)
return x, y



def paused():



while pause:
for event in pygame.event.get():

if event.type == pygame.KEYDOWN and event.key == pygame.K_p:

return
if event.type == pygame.QUIT:
pygame.quit()
quit()


#gameDisplay.fill(white)

pygame.display.update()
clock.tick(15)


class Snake(pygame.sprite.Sprite):
def __init__(self, name, speedx, speedy, x, y):
super(Snake, self).__init__()
Expand All @@ -94,6 +121,7 @@ def __init__(self, name, speedx, speedy, x, y):
self.rect.centerx = x
self.rect.centery = y
self.action = []


def handle_turn():
for obj in snake_parts.sprites():
Expand Down Expand Up @@ -124,6 +152,8 @@ def handle_turn():
obj.speedy = 0
obj.action.pop(0)



def update(self):
if self.rect.centerx < 77 or self.rect.centerx > 1127:
snake_parts.empty()
Expand All @@ -148,6 +178,8 @@ def update(self):
if list2:
handle_eat()



pygame.init()
screen = pygame.display.set_mode((1200, 600))
pygame.display.set_caption('Snake')
Expand Down Expand Up @@ -185,12 +217,54 @@ def update(self):
while game_control:
clock.tick()
for event in pygame.event.get():

if event.type == QUIT:
sys.exit()


if event.type == KEYDOWN and event.key == K_ESCAPE:
sys.exit()

if event.type == KEYDOWN and event.key == K_r:
pygame.init()
screen = pygame.display.set_mode((1200, 600))
pygame.display.set_caption('Snake')
background = pygame.image.load('background.png')
background = background.convert()
screen.blit(background, (0, 0))

posx = None
posy = None
ch = None

score = 0

gspeed = 1

face = Snake('snake.png', gspeed, 0, 600, 300)
tail = face

clock = pygame.time.Clock()

snake_parts = pygame.sprite.Group()
snake_parts.add(face)

food = pygame.sprite.Sprite()
food.image, food.rect = load_image('food.png')
food.rect.centerx = 290
food.rect.centery = 290

k = 0

new_next = None
h = 0
game_control = True


if event.type == pygame.KEYDOWN and event.key == pygame.K_p:
pause = True
paused()

if event.type == KEYDOWN and event.key == K_UP and face.speedx != 0:
posx = face.rect.centerx
posy = face.rect.centery
Expand Down Expand Up @@ -227,7 +301,10 @@ def update(self):

if not snake_parts.sprites():
text_display(128, 'Game Over', 600, 300)

else:
screen.blit(food.image, (food.rect.centerx, food.rect.centery))
text_display(42, 'Score: ' + str(score), 1030, 81)
pygame.display.flip()