Advertisement
Guest User

Untitled

a guest
Jun 30th, 2012
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.18 KB | None | 0 0
  1. import sys
  2. import pygame
  3. import random
  4. from time import *
  5.  
  6. #Settings
  7. width = 500
  8. heigth = 500
  9. #End settings
  10.  
  11. pygame.init()
  12. pygame.display.set_caption("Snake")
  13. display = pygame.display.set_mode((width,heigth))
  14. bg = pygame.image.load("res/grass.jpg")
  15.  
  16. #Objects
  17. class SnakeHead():
  18.     def __init__(self,disp):
  19.         self.moving = 0 #0 up,1 down,2 right,3 left
  20.         self.display = disp
  21.         self.image = pygame.image.load("res/head.png")
  22.         self.movingImage = self.image
  23.         self.rect = self.image.get_rect()
  24.         self.move(200,200)
  25.     def move(self,x,y):
  26.         self.rect = self.rect.move(x,y)
  27.     def render(self):
  28.         self.display.blit(self.movingImage,self.rect)
  29.        
  30. class SnakePart():
  31.     def __init__(self,disp,x,y,tail):
  32.         self.display = disp
  33.         if tail == 1:
  34.             self.image = pygame.image.load("res/tail.png")
  35.         else:
  36.             self.image = pygame.image.load("res/body.png")
  37.         self.movingImage = self.image
  38.         self.rect = self.image.get_rect()
  39.         self.lastDirection = 1
  40.         self.move(x,y)
  41.     def move(self,x,y):
  42.         self.rect = self.rect.move(x,y)
  43.     def render(self):
  44.         self.display.blit(self.movingImage,self.rect)
  45.        
  46. class Apple():
  47.     def __init__(self,disp,x,y):
  48.         self.image = pygame.image.load("res/apple.png")
  49.         self.rect = self.image.get_rect()
  50.         self.rect = self.rect.move(x,y)
  51.         self.display = disp
  52.     def render(self):    
  53.         self.display.blit(self.image,self.rect)
  54.  
  55. #Functions
  56. def rotateImage(image, angle):
  57.     orig_rect = image.get_rect()
  58.     rot_image = pygame.transform.rotate(image, angle)
  59.     rot_rect = orig_rect.copy()
  60.     rot_rect.center = rot_image.get_rect().center
  61.     rot_image = rot_image.subsurface(rot_rect).copy()
  62.     return rot_image
  63.  
  64. #Main Loop
  65. while 1:
  66.    
  67.     #Create Objects
  68.     player = SnakeHead(display)
  69.     apple = Apple(display,10,10)
  70.     snake = [(200,210,0),(200,220,0),(200,230,0),(200,240,0),(200,250,0),(200,260,0)]
  71.    
  72.     #Game Loop
  73.     while 1:
  74.        
  75.         #Calculate Snake
  76.         if player.moving == 0:
  77.             snake.insert(0,(player.rect.x,player.rect.y - 10,player.moving))
  78.         if player.moving == 1:
  79.             snake.insert(0,(player.rect.x,player.rect.y + 10,player.moving))
  80.         if player.moving == 2:
  81.             snake.insert(0,(player.rect.x + 10,player.rect.y,player.moving))
  82.         if player.moving == 3:
  83.             snake.insert(0,(player.rect.x - 10,player.rect.y,player.moving))
  84.         snake.pop()
  85.        
  86.         #Get Events
  87.         for event in pygame.event.get():
  88.             if event.type == pygame.QUIT:
  89.                 sys.exit()
  90.             if event.type == pygame.KEYDOWN:
  91.                 if event.key == pygame.K_LEFT:
  92.                     player.moving = 3
  93.                     player.movingImage = rotateImage(player.image,90)
  94.                 if event.key == pygame.K_RIGHT:
  95.                     player.moving = 2
  96.                     player.movingImage = rotateImage(player.image,270)
  97.                 if event.key == pygame.K_UP:
  98.                     player.moving = 0
  99.                     player.movingImage = player.image
  100.                 if event.key == pygame.K_DOWN:
  101.                     player.moving = 1
  102.                     player.movingImage = rotateImage(player.image,180)
  103.                    
  104.        
  105.         #Movement
  106.         if player.moving == 0:
  107.             player.move(0,-5)
  108.         if player.moving == 1:
  109.             player.move(0,5)
  110.         if player.moving == 2:
  111.             player.move(5,0)
  112.         if player.moving == 3:
  113.             player.move(-5,0)
  114.        
  115.         #Border
  116.         if player.rect.x > width - 20:
  117.             break
  118.         if player.rect.x < 0:
  119.             break
  120.         if player.rect.y > heigth - 20:
  121.             break
  122.         if player.rect.y < 0:
  123.             break
  124.        
  125.         #Render
  126.         display.fill((159,207,159))
  127.         player.render()
  128.         for object in snake[:]:
  129.             tmp = SnakePart(display,object[0],object[1],0)
  130.             tmp.render()
  131.         apple.render()
  132.        
  133.         #Flip
  134.         pygame.display.flip()
  135.         #Delay
  136.         pygame.time.delay(20)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement