diff options
author | Alan Aguiar <alanjas@hotmail.com> | 2013-05-07 01:47:28 (GMT) |
---|---|---|
committer | Alan Aguiar <alanjas@hotmail.com> | 2013-05-07 01:47:28 (GMT) |
commit | 8f42beaccd85544cfeb9f42e302a07bc12095d30 (patch) | |
tree | d1f4dc76cb23b79b0b10b23b4ac359c6968368a7 | |
parent | 8f5c4dc52eba779104f04295d7d391191c5e32ff (diff) |
works lines draw
-rwxr-xr-x | main.py | 78 |
1 files changed, 70 insertions, 8 deletions
@@ -7,10 +7,13 @@ import pygame #pygame.draw.rect(self.captura_to_show, (0,0,255), (p[0]*self.c1, p[1]*self.c2, 5, 5), 5) -GRID_SIZE = (6, 5) -BOX_SIZE = (50, 50) +GRID_SIZE = (8, 6) +BOX_SIZE = (60, 60) X_OFFSET = 200 Y_OFFSET = 200 +T = 15 +COLOR1 = (255, 0, 0) +COLOR2 = (0, 0, 255) class Game: @@ -19,8 +22,9 @@ class Game: self.horizontal = [] self.vertical = [] - - self.screen = pygame.display.set_mode((1200, 700)) + self.x_end = 0 + self.y_end = 0 + self.screen = pygame.display.set_mode((900, 700)) self.screen.fill((84, 185, 72)) self.draw_grid() @@ -43,19 +47,76 @@ class Game: pygame.draw.circle(self.screen, (0, 0, 0), (x, y), 5, 5) + self.x_end = (len(self.horizontal) - 1) * BOX_SIZE[0] + X_OFFSET + self.y_end = (len(self.vertical) - 1) * BOX_SIZE[1] + Y_OFFSET + print self.horizontal print self.vertical - def where_x(self, pos): - x, y = pos + def where_x(self, x): for i in range(len(self.horizontal)): if i > 0: x1 = self.horizontal[i - 1] x2 = self.horizontal[i] - if x > x1 and x < x2: + if x >= x1 and x <= x2: return x1, x2 return False + def where_y(self, y): + for j in range(len(self.vertical)): + if j > 0: + y1 = self.vertical[j - 1] + y2 = self.vertical[j] + if y >= y1 and y <= y2: + return y1, y2 + return False + + def where(self, pos): + x, y = pos + r1 = self.where_x(x) + r2 = self.where_y(y) + + if not(r1 == False): + if not(r2 == False): + if x < (r1[0] + T): + #print 'cerca de', r1[0] + pygame.draw.line(self.screen, COLOR1, (r1[0],r2[0]), (r1[0],r2[1]), 5) + return + elif x > (r1[1] - T): + #print 'cerca de', r1[1] + pygame.draw.line(self.screen, COLOR1, (r1[1],r2[0]), (r1[1],r2[1]), 5) + return + else: + if (x > (X_OFFSET - T)) and (x < X_OFFSET): + if not(r2 == False): + pygame.draw.line(self.screen, COLOR1, (X_OFFSET,r2[0]), (X_OFFSET,r2[1]), 5) + return + elif (x < (self.x_end + T)) and (x > self.x_end): + if not(r2 == False): + pygame.draw.line(self.screen, COLOR1, (self.x_end,r2[0]), (self.x_end,r2[1]), 5) + return + + if not(r2 == False): + if not(r1 == False): + if y < (r2[0] + T): + #print 'aloja', r2[0] + pygame.draw.line(self.screen, COLOR2, (r1[0],r2[0]), (r1[1],r2[0]), 5) + return + elif y > (r2[1] - T): + #print 'aloja', r2[1] + pygame.draw.line(self.screen, COLOR2, (r1[0],r2[1]), (r1[1],r2[1]), 5) + return + else: + if (y > Y_OFFSET - T) and (y < Y_OFFSET): + if not(r1 == False): + pygame.draw.line(self.screen, COLOR2, (r1[0],Y_OFFSET), (r1[1],Y_OFFSET), 5) + return + elif (y < (self.y_end + T)) and (y > self.y_end): + if not(r1 == False): + pygame.draw.line(self.screen, COLOR2, (r1[0],self.y_end), (r1[1],self.y_end), 5) + return + + def run(self): run = True @@ -66,7 +127,8 @@ class Game: run = False elif event.type == pygame.MOUSEBUTTONDOWN: pos = event.pos - print pos, self.where_x(pos) + print pos + self.where(pos) pygame.display.flip() |