Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- import pygame
- from pygame import font
- #from random import randint
- pygame.init()
- font.init()
- myfont = pygame.font.SysFont("monospace", 15,(0,0,0))
- window = pygame.display.set_mode((1080,720))
- pygame.display.set_caption("Hide And Seek!")
- clock = pygame.time.Clock()
- fps = 30
- red = (250, 0, 0)
- green = ( 0,255, 0)
- blue = ( 0, 0,255)
- yellow = (255,255, 0)
- cyan = ( 0,255,255)
- magenta = (255, 0,255)
- black = ( 0, 0 ,0)
- white = (255,255,255)
- colors = [red,green,blue, yellow, cyan, magenta]
- playbuttonimg = pygame.image.load("playbuttonimg.png").convert_alpha()
- playbuttonpressimg = pygame.image.load("playbuttonpressimg.png").convert_alpha()
- class player():
- def __init__(self,x,y,state):
- self.x = x
- self.y = y
- self.state = state
- self.speed = 5
- if self.state == "hide":
- print "im hiding!"
- elif self.state == "seek":
- print "im seeking!"
- def update(self,controller):
- self.direction = controller
- if self.direction == "left":
- self.x -= self.speed
- if self.direction == "right":
- self.x += self.speed
- if self.direction == "down":
- self.y += self.speed
- if self.direction == "up":
- self.y -= self.speed
- def fieldofview(self,obstacles):
- for item in obstacles:
- x = item[0] # <-- x of the obstacles
- y = item[1] # <-- y of the obstacles
- k = 300 # fixed distance
- dist = math.hypot(x-self.x, y-self.y)
- #print dist,
- if (dist<k):
- endx = int(self.x+(x-self.x)*k/dist)
- endy = int(self.y+(y-self.y)*k/dist)
- else:
- endx = x
- endy = y
- #endx = x+(x-self.x)
- #endy = y +(y-self.y)
- #pygame.draw.polygon(window,(black),((x,y),(x+25,y+25),(endx,endy+25),(endx,endy)))
- if self.x >= x and self.y >= y:
- points = ((endx,endy),(endx,endy+25),(x,y+25),(x+25,y+25),(x+25,y),(endx+25,endy))
- #print "C3",
- elif self.x <= x and self.y >= y:
- points = ((x,y),(x,y+25),(x+25,y+25),(endx+25,endy+25),(endx+25,endy),(endx,endy))
- #print "C4",
- elif self.x <= x and self.y <= y:
- points = ((x,y),(x,y+25),(endx,endy+25),(endx+25,endy+25),(endx+25,endy),(x+25,y))
- #print "C1",
- else: # elif self.x >= x and self.y <= y:
- points = ((x,y),(endx,endy),(endx,endy+25),(endx+25,endy+25),(x+25,y+25),(x+25,y))
- #print "C2",
- pygame.draw.polygon(window,(black),points)
- #for i in range(0, 6):
- # pygame.draw.circle(window, (colors[i]), points[i], 3, 0)
- #print ""
- def render(self):
- pygame.draw.rect(window,(blue),(self.x,self.y,25,25))
- def game():
- run = True
- Player = player(100,100,"hide")
- obstacles = [[250,250],[400,450]]
- while run:
- lmb,rmb,mmb = pygame.mouse.get_pressed()
- keys = pygame.key.get_pressed()
- if keys[pygame.K_LEFT]:
- controller = "left"
- elif keys[pygame.K_RIGHT]:
- controller = "right"
- elif keys[pygame.K_UP]:
- controller = "up"
- elif keys[pygame.K_DOWN]:
- controller = "down"
- else:
- controller = "none"
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- run = False
- window.fill(white)
- mousex,mousey = pygame.mouse.get_pos()
- Player.update(controller)
- for item in obstacles:
- x = item[0]
- y = item[1]
- pygame.draw.rect(window,(black),(x,y,25,25))
- Player.render()
- Player.fieldofview(obstacles)
- clock.tick(fps)
- pygame.display.flip()
- def mainmenu():
- run = True
- while run:
- lmb,rmb,mmb = pygame.mouse.get_pressed()
- for event in pygame.event.get():
- pass
- window.fill(white)
- mousex,mousey = pygame.mouse.get_pos()
- window.blit(playbuttonimg,(50,150))
- if 50<= mousex <= 250 and 150 <= mousey <=250:
- window.blit(playbuttonpressimg,(50,150))
- if lmb == True:
- run = False
- return "play"
- clock.tick(fps)
- pygame.display.flip()
- button = mainmenu()
- if button == "play":
- game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement