From c0b065605df1ac9b478c992ed044d6d58b95c15a Mon Sep 17 00:00:00 2001 From: David Papp Date: Mon, 29 Feb 2016 13:41:11 -0500 Subject: [PATCH 01/26] main code --- main.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..315b566 --- /dev/null +++ b/main.py @@ -0,0 +1,5 @@ +#main + +def main(): + #just tryna see if github works + pass \ No newline at end of file From 7a3519c60f15901120679d55a621da94e5d666e9 Mon Sep 17 00:00:00 2001 From: David Papp Date: Mon, 29 Feb 2016 14:47:46 -0500 Subject: [PATCH 02/26] world class --- grid.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 grid.py diff --git a/grid.py b/grid.py new file mode 100644 index 0000000..240f8a5 --- /dev/null +++ b/grid.py @@ -0,0 +1,4 @@ +#World + +class World(): + pass From 33b162036b6e3189ecdb931ef882c5a774cde5d0 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Mon, 29 Feb 2016 14:56:12 -0500 Subject: [PATCH 03/26] creating class files --- plane.py | 0 player.py | 0 world.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 plane.py create mode 100644 player.py create mode 100644 world.py diff --git a/plane.py b/plane.py new file mode 100644 index 0000000..e69de29 diff --git a/player.py b/player.py new file mode 100644 index 0000000..e69de29 diff --git a/world.py b/world.py new file mode 100644 index 0000000..e69de29 From 0b42987e7da08954bd917c0d5503c00431eaab23 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Wed, 2 Mar 2016 22:15:11 -0500 Subject: [PATCH 04/26] framework for plane and player --- plane.py | 18 ++++++++++++++++++ plane.pyc | Bin 0 -> 920 bytes player.py | 11 +++++++++++ player.pyc | Bin 0 -> 423 bytes 4 files changed, 29 insertions(+) create mode 100644 plane.pyc create mode 100644 player.pyc diff --git a/plane.py b/plane.py index e69de29..688181c 100644 --- a/plane.py +++ b/plane.py @@ -0,0 +1,18 @@ +class plane: + import random + def __init__(self, player, planeMap = []): + self.planeNum = p #identify which plane this is + self.player = p #the player + self.map = planeMap #matrix of points for floor/holes + # def advance(self, amount): #advances current y-position by an amount + # self.pos[1] += amount + # return self.pos + # def shift(self, amount): #shifts current x-position by an amount + # self.pos[0] += amount + # return self.pos + def populate(self, numRows, numCols): #randomly populate itself + self.map = [] + for x in range(numRows): + self.map.append([(1 if random.randint(1, 5) < 5 else 0) for i in range(numCols)]) #floors are weighted 4x more than holes + def onFloor(self): #returns True if the current position is on an existing floor, false if it is on a hole + return (self.map[int(self.player.x)][int(self.player.y)] == 1) #1 constitutes floor, 0 indicates hole diff --git a/plane.pyc b/plane.pyc new file mode 100644 index 0000000000000000000000000000000000000000..798508062b71f510f6548f39b9062c45fca549fc GIT binary patch literal 920 zcmbVKyG{c!5M1AdMwP-tjVK}i!K1QH!r7zv4MtW$EpLGA%|kdWx$U-%?GgdbpL zFS-bcP>^IdyX&3tcperwXg=) z%(5!)un{V!Fn8ZCHI5Jn_Sdn9MDCbs3AaCaJ+&R~8Y?$yYvi0cBR zkybz{P-D=Oj0g*xaH=Vpmw}b0_WECDP1`}~KA+tLqM9Y(0u88$I^XdeG%woYTu~Ll zISTXZY&3m*C(LQ2Rl$1*p!Oc;HiG3L)E~v;wsbjSZ&Gk?m2H`8(UKvMIVcehSU;gc`nNZOYCwBjea~1i*-G;R@co|uOIj0q=l$RHvGk)YR2vU$3%D{ Fz5%JgeAfT~ literal 0 HcmV?d00001 diff --git a/player.py b/player.py index e69de29..2340d08 100644 --- a/player.py +++ b/player.py @@ -0,0 +1,11 @@ +class player: + def __init__(self, xPos = 0, yPos = 0, advanceIncrement = 1): #can set advance increment so that advance can be called on player to easily increase position + self.x = xPos + self.y = yPos + self.increment = advanceIncrement + def setPos(self, xPos, yPos): #set the new position + self.x = xPos + self.y = yPos + def advance(self): + self.y += self.increment + \ No newline at end of file diff --git a/player.pyc b/player.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f30d537695a8856eb11c0f5e186b158210859670 GIT binary patch literal 423 zcmaJ+%W48a5UiOEqJmfR3v=?~HH2X9BD)aCUIuYDu&_RGCg6fM^D+LBACezPbx%Zu zkYT&Fdb+E+C;J`^r{~Mt3cn}g|Ai4A2^GH#mBANq0^UpJ7KM9YE%pezcG=bYJMru) zu7T311y!`LC@u2BSvE8btYnsi+`KZvm~b>W0-nSwQH#PEmgcIBLJx|a6M2+%Lfw8S zIV`q8Nk`&XfkGINrFAE}F7}yu-)x%by^Igy0W&bkF_kyVb?to|YVUemeYQ+ Date: Thu, 3 Mar 2016 10:47:46 -0500 Subject: [PATCH 05/26] draws map --- graphics.py | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 graphics.py diff --git a/graphics.py b/graphics.py new file mode 100644 index 0000000..e536276 --- /dev/null +++ b/graphics.py @@ -0,0 +1,174 @@ +#graphics +import pygame +import random + +pygame.init() +pygame.display.init() +size = (1020, 1020) +screen = pygame.display.set_mode(size) +red = (255, 0, 0) +green = (0, 255, 0) +blue = (0, 0, 255) +black = (0, 0, 0) +screen.fill(black) + +def create_map(num_lines): + hole_size = 10 + map = [] + for i in range(1000): + nested_map = [] + for j in range(num_lines): + nested_map.append(1) + map.append(nested_map) + + """#make holes + for i in range(100): + width = random.randint(5, 25) + depth = random.randint(5, 15) + index1 = random.randint(0, 1000) + index2 = random.randint(0, 50) + for j in range(width): + for k in range(depth): + if index1 + depth < 1000 and index2 + width < num_lines: + map[index1 + depth][index2 + width] = 0 + map""" + + make_zero_width = 0 + make_zero_depth = 0 + for i in range(1000): + for j in range(num_lines): + if random.randint(0, 400) == 0 and make_zero_width <= 0: + make_zero_width = random.randint(2, 30) + if random.randint(0, 1000) == 0 and make_zero_depth <= 0: + make_zero_depth = random.randint(2, 8) + if make_zero_width > 0 or make_zero_depth > 0: + map[i][j] = 0 + make_zero_width -= 1 + make_zero_depth -= 1 + return map + + +def update(coordinate1, coordinate2, coordinate3, coordinate4): + done = False + index = 1 + while not done: + pygame.display.update() + draw_grid(coordinate1, map1, index, screen, num_lines, (0, 125, 125)) + draw_grid(coordinate2, map2, index, screen, num_lines, (0, 125, 125)) + draw_grid(coordinate3, map3, index, screen, num_lines, (125, 0, 125)) + draw_grid(coordinate4, map4, index, screen, num_lines, (125, 0, 125)) + pygame.time.wait(20) + index += 1 + print index + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit(); sys.exit(); + +def draw_grid(coordinates, map, index, screen, num_lines, input_color): + copy = index + for i in range(num_lines): + for j in range(num_lines): + color = (0, 0, 0) + if (map[j + index][i] == 1): + color = input_color + count = i * (num_lines) + j + pygame.draw.polygon(screen, color, coordinates[-count], 0) + +def create_coordinates(side, width, height, num_lines, depth): + y_loc = height / 2 + interval = width / num_lines + horizon_line = [depth, 'vertical'] + x = 0 + if side == 'right' or side == 'top': + x = width + horizon_line = [width - depth, 'vertical'] + + + lines = [] + for i in range(num_lines + 1): + lines.append(find_slope_intercept([x, interval * i], [width / 2, y_loc])) + red = (255, 0, 0) + #pygame.draw.line(screen, red, [x, interval * i], [width / 2, y_loc], 2) + + + point = find_intersection(horizon_line, lines[0]) + + cross_line = find_slope_intercept(point, [x, height]) + #pygame.draw.line(screen, green, point, [x, height], 2) + + vert_lines = [] + for i in range(num_lines + 1): + intersection = find_intersection(cross_line, lines[i]) + vert_lines.append(create_vertical_line(intersection)) + + coordinates = [] + for i in range(len(lines) - 1): + for j in range(len(vert_lines) - 1): + p1 = find_intersection(lines[i], vert_lines[j]) + p2 = find_intersection(lines[i + 1], vert_lines[j]) + p3 = find_intersection(lines[i + 1], vert_lines[j + 1]) + p4 = find_intersection(lines[i], vert_lines[j + 1]) + if side == 'left' or side == 'right': + coordinates.append([p1, p2, p3, p4]) + rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) + pygame.draw.polygon(screen, rand_color, [p1, p2, p3, p4], 0) + elif side == 'bottom' or side == 'top': + coordinates.append([reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)]) + rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) + pygame.draw.polygon(screen, rand_color, [reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)], 0) + return coordinates + +def reflect_point(p): + return [p[1], p[0]] + +def find_intersection(l1, l2): + l1_b0 = l1[0] + l1_b1 = l1[1] + l2_b0 = l2[0] + l2_b1 = l2[1] + if l1_b1 == 'vertical': + return [l1_b0, int(l2_b0 + 1.0 * l2_b1 * l1_b0)] + elif l2_b1 == 'vertical': + return [l2_b0, int(l1_b0 + 1.0 * l1_b1 * l2_b0)] + else: + x = 1.0 * (l1_b0 - l2_b0) / (l2_b1 - l1_b1) + y = l1_b0 + l1_b1 * x + return [int(x), int(y)] + +def find_slope_intercept(p1, p2): + print p1, " ", p2 + p1_x = p1[0] + p1_y = p1[1] + p2_x = p2[0] + p2_y = p2[1] + run = p2_x - p1_x + rise = p2_y - p1_y + if run == 0: + return [p1_x, 'vertical'] + slope = 1.0 * rise / run + return [1.0 * p1_y - slope * p1_x, slope] + +def create_vertical_line(p): + p_x = p[0] + p_y = p[1] + return [p_x, 'vertical'] + +def create_horizontal_line(p): + p_x = p[0] + p_y = p[1] + return [p_y, 0] + + +width = 1020 +height = 1020 +num_lines = 60 +depth = 400 +left_coordinates = create_coordinates('left', width, height, num_lines, depth) +right_coordinates = create_coordinates('right', width, height, num_lines, depth) +bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) +top_coordinates = create_coordinates('top', width, height, num_lines, depth) +map1 = create_map(num_lines) +map2 = create_map(num_lines) +map3 = create_map(num_lines) +map4 = create_map(num_lines) +update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates) \ No newline at end of file From ebeab431eb1dcd3ea5da169d16f482b20e253c60 Mon Sep 17 00:00:00 2001 From: David Papp Date: Thu, 3 Mar 2016 10:51:18 -0500 Subject: [PATCH 06/26] grid --- grid.py | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 180 insertions(+), 1 deletion(-) diff --git a/grid.py b/grid.py index 240f8a5..597a53e 100644 --- a/grid.py +++ b/grid.py @@ -1,4 +1,183 @@ #World +import pygame +import random -class World(): +def main(): + + pygame.init() + pygame.display.init() + size = (1200, 1000) + screen = pygame.display.set_mode(size) + red = (255, 0, 0) + green = (0, 255, 0) + blue = (0, 0, 255) + black = (0, 0, 0) + screen.fill(black) + """ + #horizontal + height = 1000 + width = 1000 + num_lines = 10 + + bottom_interval = width / num_lines + left_interval = height / num_lines + + + left_lines = [] + bottom_lines = [] + for i in range(num_lines): + [b0, b1] = find_line([width / 2, 0], [i * left_interval, height]) + print "left", [b0, b1] + left_lines.append([b0, b1]) + + for i in range(num_lines): + [b0, b1] = find_line([0, width / 2], [height, i * bottom_interval]) + print "bottom",[b0, b1] + bottom_lines.append([b0, b1]) + + horizon = 300 + left_horizon_Line = [horizon, 'vertical'] + bottom_horizon_line = [horizon, 'vertical'] + + left_cross_line = find_intersection(left_lines[-1], left_horizon_Line) + bottom_cross_line = find_intersection(bottom_lines[-1], bottom_horizon_line) + print left_cross_line + print bottom_cross_line + + #horizon_point1 = find_intersection(top_line, horizon_line) + #horizon_point2 = find_intersection(top_line, horizon_line) + #pygame.draw.line(screen, green, horizon_point, [horizon_x, 0]) + """ + + + width = 1800 + height = 1000 + vanishing_point_x = 0 + vanishing_point_y = height / 2 + num_lines = 100 + y_interval = height / num_lines + horizon_x = 400 + + width2 = height / 2 + height2 = height + vanishing_point_x2 = height2 / 2 + vanishing_point_y2 = 0 + num_lines2 = num_lines + y_interval2 = height2 / num_lines2 + horizon_x = 200 + + map = [] + for i in range(1000): + nested_map = [] + for j in range(num_lines): + nested_map.append(random.randint(0, 1)) + map.append(nested_map) + + map2 = [] + for i in range(1000): + nested_map2 = [] + for j in range(num_lines): + nested_map.append(random.randint(0, 1)) + map2.append(nested_map) + + lines = [] + for i in range(num_lines): + #print [width, i * y_interval] + [b0, b1] = find_line([0, height / 2], [width, i * y_interval]) + lines.append([b0, b1]) + + + top_line = lines[-1] + horizon_line = [horizon_x, 'vertical'] + horizon_point = find_intersection(top_line, horizon_line) + #pygame.draw.line(screen, green, horizon_point, [horizon_x, 0]) + + cross_line = find_line(horizon_point, [width, 0]) + points = [] + for i in range(num_lines): + points.append(find_intersection(lines[i], cross_line)) + + for i in range(len(points)): + #pygame.draw.circle(screen, green, points[i], 10, 1) + pass + + #pygame.draw.line(screen, blue, horizon_point, [width, 0]) + for i in range(num_lines): + pygame.draw.line(screen, red, [0, height2 / 2], [width2, i * (y_interval2)], 2) + pass + + vert_lines = [] + for i in range(len(points)): + vert_lines.append([points[i][0], 'vertical']) + vert_point = find_intersection(top_line, vert_lines[i]) + #pygame.draw.line(screen, red, vert_point, [points[i][0], 0], 6) + + coordinates = [] + for i in range(len(lines) - 1): + for j in range(len(vert_lines) - 1): + p1 = find_intersection(lines[i], vert_lines[j]) + p2 = find_intersection(lines[i + 1], vert_lines[j]) + p3 = find_intersection(lines[i + 1], vert_lines[j + 1]) + p4 = find_intersection(lines[i], vert_lines[j + 1]) + coordinates.append([p1, p2, p3, p4]) + rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) + pygame.draw.polygon(screen, rand_color, [p1, p2, p3, p4], 0) + + + print len(coordinates) + done = False + index = 0 + + while not done: + draw_grid(coordinates, map, index, screen, num_lines) + pygame.display.update() + pygame.time.wait(1000) + index += 1 + print index + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit(); sys.exit(); + + +def draw_grid(coordinates, map, index, screen, num_lines): + copy = index + for i in range(num_lines - 1): + for j in range(num_lines - 1): + color = (0, 0, 0) + if (map[j + index][i] == 1): + color = (0, 125, 125) + count = i * (num_lines - 1) + j + pygame.draw.polygon(screen, color, coordinates[count], 0) + + +def find_polygon(): pass + +def find_intersection(l1, l2): + l1_b0 = l1[0] + l1_b1 = l1[1] + l2_b0 = l2[0] + l2_b1 = l2[1] + + #if one of the lines is vertical + if (l1_b1 == 'vertical'): + return [l1_b0, l2_b0 + l2_b1 * l1_b0] + if (l2_b1 == 'vertical'): + return [l2_b0, l1_b0 + l1_b1 * l2_b0] + x = (l1_b0 - l2_b0) / (l2_b1 - l1_b1) + y = l1_b0 + l1_b1 * x + return [int(x), int(y)] + +def find_line(p1, p2): + p1_x = p1[0] + p1_y = p1[1] + p2_x = p2[0] + p2_y = p2[1] + if (p2_x - p1_x == 0): + return [p2_x, 'vertical'] + b1 = -1.0 * (p2_y - p1_y) / (p2_x - p1_x) + b0 = 1.0 * p1_y + b1 * p1_x + return [b0, b1] + + +main() \ No newline at end of file From 10fca520f6cc6a35c54bd0969f52f891abca4dfe Mon Sep 17 00:00:00 2001 From: apan64 Date: Sun, 6 Mar 2016 15:49:07 -0500 Subject: [PATCH 07/26] Delete plane.pyc --- plane.pyc | Bin 920 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 plane.pyc diff --git a/plane.pyc b/plane.pyc deleted file mode 100644 index 798508062b71f510f6548f39b9062c45fca549fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 920 zcmbVKyG{c!5M1AdMwP-tjVK}i!K1QH!r7zv4MtW$EpLGA%|kdWx$U-%?GgdbpL zFS-bcP>^IdyX&3tcperwXg=) z%(5!)un{V!Fn8ZCHI5Jn_Sdn9MDCbs3AaCaJ+&R~8Y?$yYvi0cBR zkybz{P-D=Oj0g*xaH=Vpmw}b0_WECDP1`}~KA+tLqM9Y(0u88$I^XdeG%woYTu~Ll zISTXZY&3m*C(LQ2Rl$1*p!Oc;HiG3L)E~v;wsbjSZ&Gk?m2H`8(UKvMIVcehSU;gc`nNZOYCwBjea~1i*-G;R@co|uOIj0q=l$RHvGk)YR2vU$3%D{ Fz5%JgeAfT~ From deb0f2796aeead56d3d758df91f394bb4aa58b55 Mon Sep 17 00:00:00 2001 From: apan64 Date: Sun, 6 Mar 2016 15:49:12 -0500 Subject: [PATCH 08/26] Delete player.pyc --- player.pyc | Bin 423 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 player.pyc diff --git a/player.pyc b/player.pyc deleted file mode 100644 index f30d537695a8856eb11c0f5e186b158210859670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 423 zcmaJ+%W48a5UiOEqJmfR3v=?~HH2X9BD)aCUIuYDu&_RGCg6fM^D+LBACezPbx%Zu zkYT&Fdb+E+C;J`^r{~Mt3cn}g|Ai4A2^GH#mBANq0^UpJ7KM9YE%pezcG=bYJMru) zu7T311y!`LC@u2BSvE8btYnsi+`KZvm~b>W0-nSwQH#PEmgcIBLJx|a6M2+%Lfw8S zIV`q8Nk`&XfkGINrFAE}F7}yu-)x%by^Igy0W&bkF_kyVb?to|YVUemeYQ+ Date: Sun, 6 Mar 2016 17:35:13 -0500 Subject: [PATCH 09/26] integrated plane and player classes, can now move player around and jump, walls rotate when player reaches edges, but the top and right planes need to be flipped as they are currently reversed --- graphics.py | 93 +++++++++++++++++++++++++++++++++++++---------------- plane.py | 22 +++++++++---- player.py | 6 +++- 3 files changed, 87 insertions(+), 34 deletions(-) diff --git a/graphics.py b/graphics.py index e536276..1295556 100644 --- a/graphics.py +++ b/graphics.py @@ -1,6 +1,7 @@ #graphics -import pygame -import random +import pygame, random, sys, time +from plane import plane +from player import player pygame.init() pygame.display.init() @@ -48,31 +49,60 @@ def create_map(num_lines): return map -def update(coordinate1, coordinate2, coordinate3, coordinate4): +def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player): done = False index = 1 + maps = [map1, map2, map3, map4] while not done: pygame.display.update() - draw_grid(coordinate1, map1, index, screen, num_lines, (0, 125, 125)) - draw_grid(coordinate2, map2, index, screen, num_lines, (0, 125, 125)) - draw_grid(coordinate3, map3, index, screen, num_lines, (125, 0, 125)) - draw_grid(coordinate4, map4, index, screen, num_lines, (125, 0, 125)) - pygame.time.wait(20) + keys = pygame.key.get_pressed() + if(keys[pygame.K_LEFT] != 0): + if(player.x > 100): + player.x -= 10 + else: + player.x = 900 + maps = [maps[2], maps[3], maps[1], maps[0]] + elif(keys[pygame.K_RIGHT] != 0): + if(player.x < 920): + player.x += 10 + else: + player.x = 120 + maps = [maps[3], maps[2], maps[0], maps[1]] + if(keys[pygame.K_UP] != 0 and not player.inAir): + player.goingUp = True + player.inAir = True + elif(player.inAir): + if(player.jumpHeight <= 0 and not player.goingUp): + player.jumpHeight = 0 + player.inAir = False + elif(player.goingUp and player.jumpHeight < 80): + player.jumpHeight += 10 + elif(player.goingUp and player.jumpHeight >= 80): + player.goingUp = False + else: + player.jumpHeight -= 10 + draw_grid(coordinate1, maps[0], index, screen, num_lines) + draw_grid(coordinate2, maps[1], index, screen, num_lines) + draw_grid(coordinate3, maps[2], index, screen, num_lines) + draw_grid(coordinate4, maps[3], index, screen, num_lines) + draw_player(player, screen) + pygame.time.wait(25) index += 1 print index for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit(); sys.exit(); - -def draw_grid(coordinates, map, index, screen, num_lines, input_color): +def draw_player(player, screen): + pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) +def draw_grid(coordinates, mapC, index, screen, num_lines): copy = index for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) - if (map[j + index][i] == 1): - color = input_color + if (mapC.map[j + index][i] == 1): + color = mapC.color count = i * (num_lines) + j - pygame.draw.polygon(screen, color, coordinates[-count], 0) + pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) def create_coordinates(side, width, height, num_lines, depth): y_loc = height / 2 @@ -158,17 +188,26 @@ def create_horizontal_line(p): p_y = p[1] return [p_y, 0] - -width = 1020 -height = 1020 -num_lines = 60 -depth = 400 -left_coordinates = create_coordinates('left', width, height, num_lines, depth) -right_coordinates = create_coordinates('right', width, height, num_lines, depth) -bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) -top_coordinates = create_coordinates('top', width, height, num_lines, depth) -map1 = create_map(num_lines) -map2 = create_map(num_lines) -map3 = create_map(num_lines) -map4 = create_map(num_lines) -update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates) \ No newline at end of file +if __name__ == '__main__': + width = 1020 + height = 1020 + num_lines = 60 + depth = 400 + left_coordinates = create_coordinates('left', width, height, num_lines, depth) + right_coordinates = create_coordinates('right', width, height, num_lines, depth) + bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) + top_coordinates = create_coordinates('top', width, height, num_lines, depth) + # map1 = create_map(num_lines) + # map2 = create_map(num_lines) + # map3 = create_map(num_lines) + # map4 = create_map(num_lines) + play = player(510, 925) + map1 = plane(1, play, (0, 125, 125)) + map2 = plane(2, play, (0, 125, 125)) + map3 = plane(3, play, (125, 0, 125)) + map4 = plane(4, play, (125, 0, 125)) + map1.populate(1000, num_lines) + map2.populate(1000, num_lines) + map3.populate(1000, num_lines) + map4.populate(1000, num_lines) + update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play) \ No newline at end of file diff --git a/plane.py b/plane.py index 688181c..f9d0d11 100644 --- a/plane.py +++ b/plane.py @@ -1,9 +1,10 @@ +import random class plane: - import random - def __init__(self, player, planeMap = []): - self.planeNum = p #identify which plane this is - self.player = p #the player + def __init__(self, num, pl, color, planeMap = []): + self.planeNum = num #identify which plane this is + self.player = pl #the player self.map = planeMap #matrix of points for floor/holes + self.color = color # def advance(self, amount): #advances current y-position by an amount # self.pos[1] += amount # return self.pos @@ -12,7 +13,16 @@ def __init__(self, player, planeMap = []): # return self.pos def populate(self, numRows, numCols): #randomly populate itself self.map = [] - for x in range(numRows): - self.map.append([(1 if random.randint(1, 5) < 5 else 0) for i in range(numCols)]) #floors are weighted 4x more than holes + mapRef = [] + for x in range(numRows/5): + mapRef.append([(1 if random.randint(1, 10) < 10 else 0) for i in range(numCols/5)]) #floors are weighted 9x more than holes + for row in mapRef: + realRow = [] + for entry in row: + for i in range(5): + realRow.append(entry) + for i in range(5): + self.map.append(realRow) + return self.map def onFloor(self): #returns True if the current position is on an existing floor, false if it is on a hole return (self.map[int(self.player.x)][int(self.player.y)] == 1) #1 constitutes floor, 0 indicates hole diff --git a/player.py b/player.py index 2340d08..9a6e59f 100644 --- a/player.py +++ b/player.py @@ -1,8 +1,12 @@ class player: - def __init__(self, xPos = 0, yPos = 0, advanceIncrement = 1): #can set advance increment so that advance can be called on player to easily increase position + def __init__(self, xPos = 0, yPos = 0, advanceIncrement = 1, color = (0, 255, 0)): #can set advance increment so that advance can be called on player to easily increase position self.x = xPos self.y = yPos self.increment = advanceIncrement + self.inAir = False + self.color = color + self.jumpHeight = 0 + player.goingUp = True def setPos(self, xPos, yPos): #set the new position self.x = xPos self.y = yPos From 756998c94a9870c1bc40780c057fbe975f5707e7 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Sun, 6 Mar 2016 19:51:54 -0500 Subject: [PATCH 10/26] working on collision --- graphics.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/graphics.py b/graphics.py index 1295556..9e3a7d4 100644 --- a/graphics.py +++ b/graphics.py @@ -49,11 +49,13 @@ def create_map(num_lines): return map -def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player): +def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines): done = False index = 1 maps = [map1, map2, map3, map4] while not done: + # if(maps[3].map[index][int(player.x/820)] == 0): + # break pygame.display.update() keys = pygame.key.get_pressed() if(keys[pygame.K_LEFT] != 0): @@ -95,7 +97,6 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, def draw_player(player, screen): pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) def draw_grid(coordinates, mapC, index, screen, num_lines): - copy = index for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) @@ -210,4 +211,4 @@ def create_horizontal_line(p): map2.populate(1000, num_lines) map3.populate(1000, num_lines) map4.populate(1000, num_lines) - update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play) \ No newline at end of file + update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) \ No newline at end of file From 4b3efeae9e6b3afda3618072318dd0feb428bd99 Mon Sep 17 00:00:00 2001 From: David Papp Date: Mon, 7 Mar 2016 13:32:05 -0500 Subject: [PATCH 11/26] fixed reverse planes --- graphics.py | 55 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 16 deletions(-) diff --git a/graphics.py b/graphics.py index 9e3a7d4..ed1b736 100644 --- a/graphics.py +++ b/graphics.py @@ -16,7 +16,7 @@ def create_map(num_lines): hole_size = 10 map = [] - for i in range(1000): + for i in range(10000): nested_map = [] for j in range(num_lines): nested_map.append(1) @@ -36,12 +36,12 @@ def create_map(num_lines): make_zero_width = 0 make_zero_depth = 0 - for i in range(1000): + for i in range(10000): for j in range(num_lines): if random.randint(0, 400) == 0 and make_zero_width <= 0: - make_zero_width = random.randint(2, 30) + make_zero_width = random.randint(5, 30) if random.randint(0, 1000) == 0 and make_zero_depth <= 0: - make_zero_depth = random.randint(2, 8) + make_zero_depth = random.randint(5, 8) if make_zero_width > 0 or make_zero_depth > 0: map[i][j] = 0 make_zero_width -= 1 @@ -83,10 +83,10 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, player.goingUp = False else: player.jumpHeight -= 10 - draw_grid(coordinate1, maps[0], index, screen, num_lines) - draw_grid(coordinate2, maps[1], index, screen, num_lines) - draw_grid(coordinate3, maps[2], index, screen, num_lines) - draw_grid(coordinate4, maps[3], index, screen, num_lines) + draw_grid(coordinate1, maps[0], index, screen, num_lines, False) #left + draw_grid(coordinate2, maps[1], index, screen, num_lines, True) #right + draw_grid(coordinate3, maps[2], index, screen, num_lines, True) #top + draw_grid(coordinate4, maps[3], index, screen, num_lines, False) #bottom draw_player(player, screen) pygame.time.wait(25) index += 1 @@ -96,14 +96,22 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, pygame.quit(); sys.exit(); def draw_player(player, screen): pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) -def draw_grid(coordinates, mapC, index, screen, num_lines): + +def draw_grid(coordinates, mapC, index, screen, num_lines, reverse): for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) - if (mapC.map[j + index][i] == 1): - color = mapC.color - count = i * (num_lines) + j - pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) + if not reverse: + if (mapC.map[j + index][i] == 1): + color = mapC.color + count = i * (num_lines) + j + pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) + else: + if (mapC.map[j + index][-i] == 1): + color = mapC.color + count = i * (num_lines) + j + pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) + def create_coordinates(side, width, height, num_lines, depth): y_loc = height / 2 @@ -139,16 +147,31 @@ def create_coordinates(side, width, height, num_lines, depth): p2 = find_intersection(lines[i + 1], vert_lines[j]) p3 = find_intersection(lines[i + 1], vert_lines[j + 1]) p4 = find_intersection(lines[i], vert_lines[j + 1]) - if side == 'left' or side == 'right': + if side == 'left': coordinates.append([p1, p2, p3, p4]) rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) pygame.draw.polygon(screen, rand_color, [p1, p2, p3, p4], 0) - elif side == 'bottom' or side == 'top': + elif side == 'right': + coordinates.append([p1, p2, p3, p4]) + rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) + pygame.draw.polygon(screen, rand_color, [p1, p2, p3, p4], 0) + elif side == 'bottom': + coordinates.append([reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)]) + rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) + pygame.draw.polygon(screen, rand_color, [reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)], 0) + elif side == 'top': coordinates.append([reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)]) rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) pygame.draw.polygon(screen, rand_color, [reflect_point(p1), reflect_point(p2), reflect_point(p3), reflect_point(p4)], 0) return coordinates +def flip_horizontal(width, height, p): + return [width - p[0], p[1]] + +def flip_vertical(width, height, p): + return [p[0], height - p[1]] + + def reflect_point(p): return [p[1], p[0]] @@ -196,8 +219,8 @@ def create_horizontal_line(p): depth = 400 left_coordinates = create_coordinates('left', width, height, num_lines, depth) right_coordinates = create_coordinates('right', width, height, num_lines, depth) - bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) top_coordinates = create_coordinates('top', width, height, num_lines, depth) + bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) # map1 = create_map(num_lines) # map2 = create_map(num_lines) # map3 = create_map(num_lines) From 95426b97cb049734fc0b0c46517abdc070e0c959 Mon Sep 17 00:00:00 2001 From: David Papp Date: Mon, 7 Mar 2016 14:50:36 -0500 Subject: [PATCH 12/26] final game --- graphics.py | 61 +++++++++++++++++++++++++++++++++++++++++++---------- plane.py | 10 ++++----- 2 files changed, 55 insertions(+), 16 deletions(-) diff --git a/graphics.py b/graphics.py index ed1b736..cd9aeb7 100644 --- a/graphics.py +++ b/graphics.py @@ -53,6 +53,9 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, done = False index = 1 maps = [map1, map2, map3, map4] + myfont = pygame.font.SysFont("monospace", 20) + score = 0 + max_score = 0 while not done: # if(maps[3].map[index][int(player.x/820)] == 0): # break @@ -83,21 +86,43 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, player.goingUp = False else: player.jumpHeight -= 10 - draw_grid(coordinate1, maps[0], index, screen, num_lines, False) #left - draw_grid(coordinate2, maps[1], index, screen, num_lines, True) #right - draw_grid(coordinate3, maps[2], index, screen, num_lines, True) #top - draw_grid(coordinate4, maps[3], index, screen, num_lines, False) #bottom + locs = round_player_loc(player.x, width, num_lines) + if collision(maps[3], locs, index, player.inAir): + score = 0 + draw_grid(coordinate1, maps[0], index, screen, num_lines, False, locs, False, player.inAir) #left + draw_grid(coordinate2, maps[1], index, screen, num_lines, True, locs, False, player.inAir) #right + draw_grid(coordinate3, maps[2], index, screen, num_lines, True, locs, False, player.inAir) #top + draw_grid(coordinate4, maps[3], index, screen, num_lines, False, locs, True, player.inAir) #bottom + + score += 1 + if score > max_score: + max_score = score + show_score(score, max_score, myfont, width, height) draw_player(player, screen) - pygame.time.wait(25) + pygame.time.wait(10) index += 1 - print index for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit(); sys.exit(); + +def show_score(score, max_score, myfont, width, height): + pygame.draw.rect(screen, (0, 0, 0), (width / 2 - 100, height / 2 - 100, 200, 200), 0) + label = myfont.render(str(score), 1, (255, 255, 255)) + label2 = myfont.render("Max score: " + str(max_score), 1, (255, 255, 255)) + screen.blit(label2, (width / 2 - 90, height / 2 - 50)) + screen.blit(label, (width / 2 - 50, height / 2)) + +def round_player_loc(x, width, num_lines): + new_x = 1.0 * (width - x) / width * num_lines + values_to_check = [] + for i in range(-2, 2): + values_to_check.append([int(new_x) + i, 2]) + return values_to_check + def draw_player(player, screen): pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) -def draw_grid(coordinates, mapC, index, screen, num_lines, reverse): +def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom, in_air): for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) @@ -105,6 +130,10 @@ def draw_grid(coordinates, mapC, index, screen, num_lines, reverse): if (mapC.map[j + index][i] == 1): color = mapC.color count = i * (num_lines) + j + if bottom and not in_air: + for loc in locs: + if loc[0] == i and j == loc[1]: + color = (255, 0, 0) pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) else: if (mapC.map[j + index][-i] == 1): @@ -112,6 +141,16 @@ def draw_grid(coordinates, mapC, index, screen, num_lines, reverse): count = i * (num_lines) + j pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) +def collision(mapC, locs, index, in_air): + if in_air: + return False + for loc in locs: + x = loc[1] + index + y = loc[0] + if mapC.map[x][y] == 0: + return True + return False + def create_coordinates(side, width, height, num_lines, depth): y_loc = height / 2 @@ -230,8 +269,8 @@ def create_horizontal_line(p): map2 = plane(2, play, (0, 125, 125)) map3 = plane(3, play, (125, 0, 125)) map4 = plane(4, play, (125, 0, 125)) - map1.populate(1000, num_lines) - map2.populate(1000, num_lines) - map3.populate(1000, num_lines) - map4.populate(1000, num_lines) + map1.populate(10000, num_lines, 10) + map2.populate(10000, num_lines, 10) + map3.populate(10000, num_lines, 10) + map4.populate(10000, num_lines, 10) update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) \ No newline at end of file diff --git a/plane.py b/plane.py index f9d0d11..9ad8856 100644 --- a/plane.py +++ b/plane.py @@ -11,17 +11,17 @@ def __init__(self, num, pl, color, planeMap = []): # def shift(self, amount): #shifts current x-position by an amount # self.pos[0] += amount # return self.pos - def populate(self, numRows, numCols): #randomly populate itself + def populate(self, numRows, numCols, size): #randomly populate itself self.map = [] mapRef = [] - for x in range(numRows/5): - mapRef.append([(1 if random.randint(1, 10) < 10 else 0) for i in range(numCols/5)]) #floors are weighted 9x more than holes + for x in range(numRows/size): + mapRef.append([(1 if random.randint(1, 6) < 6 else 0) for i in range(numCols/size)]) #floors are weighted 9x more than holes for row in mapRef: realRow = [] for entry in row: - for i in range(5): + for i in range(size): realRow.append(entry) - for i in range(5): + for i in range(size): self.map.append(realRow) return self.map def onFloor(self): #returns True if the current position is on an existing floor, false if it is on a hole From e3000bab809fd0ea4ac8858e25c081277e8c8f81 Mon Sep 17 00:00:00 2001 From: David Papp Date: Mon, 7 Mar 2016 15:03:08 -0500 Subject: [PATCH 13/26] finalized comments --- graphics.py | 21 +++++++++++++-------- plane.py | 3 ++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/graphics.py b/graphics.py index cd9aeb7..f9c4fa8 100644 --- a/graphics.py +++ b/graphics.py @@ -99,7 +99,7 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, max_score = score show_score(score, max_score, myfont, width, height) draw_player(player, screen) - pygame.time.wait(10) + pygame.time.wait(8) index += 1 for event in pygame.event.get(): if event.type == pygame.QUIT: @@ -115,8 +115,13 @@ def show_score(score, max_score, myfont, width, height): def round_player_loc(x, width, num_lines): new_x = 1.0 * (width - x) / width * num_lines values_to_check = [] + fix = 0 + if new_x < num_lines / 3: + fix = -1 + elif new_x > 2 * num_lines / 3: + fix = 1 for i in range(-2, 2): - values_to_check.append([int(new_x) + i, 2]) + values_to_check.append([int(new_x) + i + fix, 2]) return values_to_check def draw_player(player, screen): @@ -134,12 +139,12 @@ def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom for loc in locs: if loc[0] == i and j == loc[1]: color = (255, 0, 0) - pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) + pygame.draw.polygon(screen, color, coordinates[-count], 0) else: if (mapC.map[j + index][-i] == 1): color = mapC.color count = i * (num_lines) + j - pygame.draw.polygon(screen, color, coordinates[-count], 0) #need to find a way to flip the top and right planes (currently reversed) + pygame.draw.polygon(screen, color, coordinates[-count], 0) def collision(mapC, locs, index, in_air): if in_air: @@ -269,8 +274,8 @@ def create_horizontal_line(p): map2 = plane(2, play, (0, 125, 125)) map3 = plane(3, play, (125, 0, 125)) map4 = plane(4, play, (125, 0, 125)) - map1.populate(10000, num_lines, 10) - map2.populate(10000, num_lines, 10) - map3.populate(10000, num_lines, 10) - map4.populate(10000, num_lines, 10) + map1.populate(10000, num_lines, 6) + map2.populate(10000, num_lines, 6) + map3.populate(10000, num_lines, 6) + map4.populate(10000, num_lines, 6) update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) \ No newline at end of file diff --git a/plane.py b/plane.py index 9ad8856..216f0e7 100644 --- a/plane.py +++ b/plane.py @@ -14,8 +14,9 @@ def __init__(self, num, pl, color, planeMap = []): def populate(self, numRows, numCols, size): #randomly populate itself self.map = [] mapRef = [] + weight = 4 for x in range(numRows/size): - mapRef.append([(1 if random.randint(1, 6) < 6 else 0) for i in range(numCols/size)]) #floors are weighted 9x more than holes + mapRef.append([(1 if random.randint(1, weight) < weight else 0) for i in range(numCols/size)]) #floors are weighted more than holes for row in mapRef: realRow = [] for entry in row: From cfe1d25870258b566a4f28776ed5c67f6d616350 Mon Sep 17 00:00:00 2001 From: David Papp Date: Wed, 9 Mar 2016 18:27:14 -0500 Subject: [PATCH 14/26] face recognition --- face.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 face.py diff --git a/face.py b/face.py new file mode 100644 index 0000000..22a465c --- /dev/null +++ b/face.py @@ -0,0 +1,19 @@ +import numpy as np +import cv2 + +cap = cv2.VideoCapture(0) +face_cascade = cv2.CascadeClassifier('/home/youngdp/workspace/haarcascade_frontalface_alt.xml') +kernel = np.ones((21,21),'uint8') +while(True): + print x, y + cv2.imshow('frame',frame) + ret, frame = cap.read() + faces = face_cascade.detectMultiScale(frame, scaleFactor=1.2, minSize=(20,20)) + + cv2.imshow('frame',frame) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + +# When everything done, release the capture +cap.release() +cv2.destroyAllWindows() \ No newline at end of file From 7fb29648996cc47c165805831265f0f2003a1925 Mon Sep 17 00:00:00 2001 From: David Papp Date: Wed, 9 Mar 2016 18:29:32 -0500 Subject: [PATCH 15/26] changed --- face.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/face.py b/face.py index 22a465c..104f18d 100644 --- a/face.py +++ b/face.py @@ -5,15 +5,20 @@ face_cascade = cv2.CascadeClassifier('/home/youngdp/workspace/haarcascade_frontalface_alt.xml') kernel = np.ones((21,21),'uint8') while(True): - print x, y - cv2.imshow('frame',frame) + # Capture frame-by-frame ret, frame = cap.read() - faces = face_cascade.detectMultiScale(frame, scaleFactor=1.2, minSize=(20,20)) - cv2.imshow('frame',frame) + # Display the resulting frame + cv2.imshow('frame',frame) + ret, frame = cap.read() + faces = face_cascade.detectMultiScale(frame, scaleFactor=1.2, minSize=(20,20)) + for (x,y,w,h) in faces: + print x, y + cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == ord('q'): break # When everything done, release the capture + cap.release() cv2.destroyAllWindows() \ No newline at end of file From 566f3ee8b64410b4ae82788318fc817546e6408c Mon Sep 17 00:00:00 2001 From: David Papp Date: Wed, 9 Mar 2016 18:54:00 -0500 Subject: [PATCH 16/26] added face detection --- graphics.py | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) diff --git a/graphics.py b/graphics.py index f9c4fa8..9b45689 100644 --- a/graphics.py +++ b/graphics.py @@ -1,5 +1,7 @@ #graphics import pygame, random, sys, time +import numpy as np +import cv2 from plane import plane from player import player @@ -11,6 +13,7 @@ green = (0, 255, 0) blue = (0, 0, 255) black = (0, 0, 0) +middle = 250 screen.fill(black) def create_map(num_lines): @@ -48,7 +51,24 @@ def create_map(num_lines): make_zero_depth -= 1 return map - +def read_frame(face_cascade, cap): + et, frame = cap.read() + cv2.imshow('frame',frame) + ret, frame = cap.read() + faces = face_cascade.detectMultiScale(frame, scaleFactor=1.1, minSize=(20,20)) + print faces + for (x,y,w,h) in faces: + return (x, y) + cv2.imshow('frame',frame) + return (middle, middle) + +def move_x(x): + if int(x) - middle < -10: + return 10 + elif int(x) - middle > 10: + return -10 + return 0 + def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines): done = False index = 1 @@ -56,11 +76,30 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, myfont = pygame.font.SysFont("monospace", 20) score = 0 max_score = 0 + + cap = cv2.VideoCapture(0) + face_cascade = cv2.CascadeClassifier('/home/youngdp/workspace/haarcascade_frontalface_alt.xml') + kernel = np.ones((21,21),'uint8') + while not done: # if(maps[3].map[index][int(player.x/820)] == 0): # break pygame.display.update() + (x, y) = read_frame(face_cascade, cap) keys = pygame.key.get_pressed() + player.x += move_x(x) + if(player.x > 100): + player.x -= 10 + else: + player.x = 900 + maps = [maps[2], maps[3], maps[1], maps[0]] + + if(player.x < 920): + player.x += 10 + else: + player.x = 120 + maps = [maps[3], maps[2], maps[0], maps[1]] + if(keys[pygame.K_LEFT] != 0): if(player.x > 100): player.x -= 10 @@ -259,7 +298,7 @@ def create_horizontal_line(p): if __name__ == '__main__': width = 1020 height = 1020 - num_lines = 60 + num_lines = 30 depth = 400 left_coordinates = create_coordinates('left', width, height, num_lines, depth) right_coordinates = create_coordinates('right', width, height, num_lines, depth) From 05c9e928ed8d52985a9fbcd6d359d172a9fc5524 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Wed, 9 Mar 2016 18:56:13 -0500 Subject: [PATCH 17/26] doesn't crash when end of map is reached --- graphics.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/graphics.py b/graphics.py index 9b45689..110b19f 100644 --- a/graphics.py +++ b/graphics.py @@ -317,4 +317,16 @@ def create_horizontal_line(p): map2.populate(10000, num_lines, 6) map3.populate(10000, num_lines, 6) map4.populate(10000, num_lines, 6) - update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) \ No newline at end of file + try: + update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) + except IndexError: + while True: + pygame.display.update() + pygame.draw.rect(screen, (0, 0, 0), (width / 2 - 100, height / 2 - 100, 200, 200), 0) + label = pygame.font.SysFont("comicsansms", 50).render('You made it', 1, (0, 255, 0)) + label2 = pygame.font.SysFont("comicsansms", 50).render('to the end!', 1, (0, 255, 0)) + screen.blit(label, (width / 2 - 100, height / 2 - 50)) + screen.blit(label2, (width / 2 - 95, height / 2 - 20)) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + pygame.quit(); sys.exit(); \ No newline at end of file From 97ecfcb0c031b2557c9f24b1e6e53a37a345ac5d Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Wed, 9 Mar 2016 20:13:11 -0500 Subject: [PATCH 18/26] threading fixed --- graphics.py | 87 ++++++++++++++++++++++++++--------------------------- 1 file changed, 43 insertions(+), 44 deletions(-) diff --git a/graphics.py b/graphics.py index 110b19f..1720a74 100644 --- a/graphics.py +++ b/graphics.py @@ -1,7 +1,6 @@ #graphics -import pygame, random, sys, time +import pygame, random, sys, time, cv2, threading import numpy as np -import cv2 from plane import plane from player import player @@ -15,6 +14,7 @@ black = (0, 0, 0) middle = 250 screen.fill(black) +faceCoordinates = [] def create_map(num_lines): hole_size = 10 @@ -25,18 +25,6 @@ def create_map(num_lines): nested_map.append(1) map.append(nested_map) - """#make holes - for i in range(100): - width = random.randint(5, 25) - depth = random.randint(5, 15) - index1 = random.randint(0, 1000) - index2 = random.randint(0, 50) - for j in range(width): - for k in range(depth): - if index1 + depth < 1000 and index2 + width < num_lines: - map[index1 + depth][index2 + width] = 0 - map""" - make_zero_width = 0 make_zero_depth = 0 for i in range(10000): @@ -51,41 +39,45 @@ def create_map(num_lines): make_zero_depth -= 1 return map -def read_frame(face_cascade, cap): - et, frame = cap.read() - cv2.imshow('frame',frame) - ret, frame = cap.read() - faces = face_cascade.detectMultiScale(frame, scaleFactor=1.1, minSize=(20,20)) - print faces - for (x,y,w,h) in faces: - return (x, y) - cv2.imshow('frame',frame) - return (middle, middle) - +def read_frame(run): + cap = cv2.VideoCapture(0) + face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml') + kernel = np.ones((21,21),'uint8') + while(True): + et, frame = cap.read() + ret, frame = cap.read() + faces = face_cascade.detectMultiScale(frame, scaleFactor=1.1, minSize=(20,20)) + print faces + for (x,y,w,h) in faces: + if(x == None or y == None): + faceCoordinates.append((middle, middle)) + else: + faceCoordinates.append((x, y)) + if(not run.running): + break def move_x(x): if int(x) - middle < -10: return 10 elif int(x) - middle > 10: return -10 return 0 - -def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines): +def check_jump(value): + if (middle - value) > 40: + return True + return False +def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines, fThread, run): done = False index = 1 maps = [map1, map2, map3, map4] myfont = pygame.font.SysFont("monospace", 20) score = 0 max_score = 0 - - cap = cv2.VideoCapture(0) - face_cascade = cv2.CascadeClassifier('/home/youngdp/workspace/haarcascade_frontalface_alt.xml') - kernel = np.ones((21,21),'uint8') - while not done: - # if(maps[3].map[index][int(player.x/820)] == 0): - # break pygame.display.update() - (x, y) = read_frame(face_cascade, cap) + try: + (x, y) = faceCoordinates.pop() + except IndexError: + (x, y) = (middle, middle) keys = pygame.key.get_pressed() player.x += move_x(x) if(player.x > 100): @@ -112,7 +104,7 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, else: player.x = 120 maps = [maps[3], maps[2], maps[0], maps[1]] - if(keys[pygame.K_UP] != 0 and not player.inAir): + if((keys[pygame.K_UP] != 0 or check_jump(y)) and not player.inAir): player.goingUp = True player.inAir = True elif(player.inAir): @@ -142,6 +134,7 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, index += 1 for event in pygame.event.get(): if event.type == pygame.QUIT: + run.running = False pygame.quit(); sys.exit(); def show_score(score, max_score, myfont, width, height): @@ -210,13 +203,11 @@ def create_coordinates(side, width, height, num_lines, depth): for i in range(num_lines + 1): lines.append(find_slope_intercept([x, interval * i], [width / 2, y_loc])) red = (255, 0, 0) - #pygame.draw.line(screen, red, [x, interval * i], [width / 2, y_loc], 2) point = find_intersection(horizon_line, lines[0]) cross_line = find_slope_intercept(point, [x, height]) - #pygame.draw.line(screen, green, point, [x, height], 2) vert_lines = [] for i in range(num_lines + 1): @@ -273,7 +264,7 @@ def find_intersection(l1, l2): return [int(x), int(y)] def find_slope_intercept(p1, p2): - print p1, " ", p2 + # print p1, " ", p2 p1_x = p1[0] p1_y = p1[1] p2_x = p2[0] @@ -295,6 +286,10 @@ def create_horizontal_line(p): p_y = p[1] return [p_y, 0] +class running: + def __init__(self): + self.running = False + if __name__ == '__main__': width = 1020 height = 1020 @@ -304,10 +299,6 @@ def create_horizontal_line(p): right_coordinates = create_coordinates('right', width, height, num_lines, depth) top_coordinates = create_coordinates('top', width, height, num_lines, depth) bottom_coordinates = create_coordinates('bottom', width, height, num_lines, depth) - # map1 = create_map(num_lines) - # map2 = create_map(num_lines) - # map3 = create_map(num_lines) - # map4 = create_map(num_lines) play = player(510, 925) map1 = plane(1, play, (0, 125, 125)) map2 = plane(2, play, (0, 125, 125)) @@ -317,8 +308,15 @@ def create_horizontal_line(p): map2.populate(10000, num_lines, 6) map3.populate(10000, num_lines, 6) map4.populate(10000, num_lines, 6) + r = running() try: - update(left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines) + faceThread = threading.Thread(target = read_frame, name = 'face', args = (r,)) + gameThread = threading.Thread(target = update, name = 'game', args = (left_coordinates, right_coordinates, bottom_coordinates, top_coordinates, map1, map2, map3, map4, play, num_lines, faceThread, r)) + gameThread.start() + r.running = True + faceThread.start() + gameThread.join() + faceThread.join() except IndexError: while True: pygame.display.update() @@ -329,4 +327,5 @@ def create_horizontal_line(p): screen.blit(label2, (width / 2 - 95, height / 2 - 20)) for event in pygame.event.get(): if event.type == pygame.QUIT: + r.running = False pygame.quit(); sys.exit(); \ No newline at end of file From 4114ec49a3299b5b2f2fb988b11cb40c7ed097f0 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Wed, 9 Mar 2016 20:14:43 -0500 Subject: [PATCH 19/26] deleted print statements --- graphics.py | 1 - 1 file changed, 1 deletion(-) diff --git a/graphics.py b/graphics.py index 1720a74..9f9fe02 100644 --- a/graphics.py +++ b/graphics.py @@ -47,7 +47,6 @@ def read_frame(run): et, frame = cap.read() ret, frame = cap.read() faces = face_cascade.detectMultiScale(frame, scaleFactor=1.1, minSize=(20,20)) - print faces for (x,y,w,h) in faces: if(x == None or y == None): faceCoordinates.append((middle, middle)) From 44a44be6c5b1db2a160788d111e3475f9d1d7f00 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Wed, 9 Mar 2016 20:37:24 -0500 Subject: [PATCH 20/26] commented through code, deleted deprecated functions --- graphics.py | 106 +++++++++++++++++++--------------------------------- plane.py | 8 +--- player.py | 2 - 3 files changed, 39 insertions(+), 77 deletions(-) diff --git a/graphics.py b/graphics.py index 9f9fe02..a90707e 100644 --- a/graphics.py +++ b/graphics.py @@ -1,9 +1,10 @@ #graphics -import pygame, random, sys, time, cv2, threading +import pygame, random, sys, time, cv2, threading #imports import numpy as np from plane import plane from player import player +'''initializing pygame and setting globals''' pygame.init() pygame.display.init() size = (1020, 1020) @@ -14,32 +15,9 @@ black = (0, 0, 0) middle = 250 screen.fill(black) -faceCoordinates = [] +faceCoordinates = [] #list used as a stack (pushes, pops) -def create_map(num_lines): - hole_size = 10 - map = [] - for i in range(10000): - nested_map = [] - for j in range(num_lines): - nested_map.append(1) - map.append(nested_map) - - make_zero_width = 0 - make_zero_depth = 0 - for i in range(10000): - for j in range(num_lines): - if random.randint(0, 400) == 0 and make_zero_width <= 0: - make_zero_width = random.randint(5, 30) - if random.randint(0, 1000) == 0 and make_zero_depth <= 0: - make_zero_depth = random.randint(5, 8) - if make_zero_width > 0 or make_zero_depth > 0: - map[i][j] = 0 - make_zero_width -= 1 - make_zero_depth -= 1 - return map - -def read_frame(run): +def read_frame(run): #function that handles reading in face location in openCV, adds relevant values to the global stack cap = cv2.VideoCapture(0) face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml') kernel = np.ones((21,21),'uint8') @@ -52,19 +30,20 @@ def read_frame(run): faceCoordinates.append((middle, middle)) else: faceCoordinates.append((x, y)) - if(not run.running): + if(not run.running): #had trouble forcing an end to the function when pygame is closed and even when sys.exit() is called, instead a class variable that could be edited by update was used break -def move_x(x): +def move_x(x): #determines whether character moves from face location if int(x) - middle < -10: - return 10 + return 20 elif int(x) - middle > 10: - return -10 + return -20 return 0 -def check_jump(value): +def check_jump(value): #determines whether the character should jump if (middle - value) > 40: return True return False -def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines, fThread, run): +def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines, fThread, run): #handles all game running + '''initials''' done = False index = 1 maps = [map1, map2, map3, map4] @@ -73,13 +52,18 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, max_score = 0 while not done: pygame.display.update() - try: + try: #try/catch for getting face coordinates, in case of empty stack assume middle facial position (no movement of character) (x, y) = faceCoordinates.pop() except IndexError: (x, y) = (middle, middle) keys = pygame.key.get_pressed() - player.x += move_x(x) - if(player.x > 100): + player.x += move_x(x) #moves based on face position + + if(keys[pygame.K_LEFT] != 0): #moves based on key input + player.x -= 10 + elif(keys[pygame.K_RIGHT] != 0): + player.x += 10 + if(player.x > 100): #allows player to 'rotate' onto a side wall based on character position player.x -= 10 else: player.x = 900 @@ -90,23 +74,10 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, else: player.x = 120 maps = [maps[3], maps[2], maps[0], maps[1]] - - if(keys[pygame.K_LEFT] != 0): - if(player.x > 100): - player.x -= 10 - else: - player.x = 900 - maps = [maps[2], maps[3], maps[1], maps[0]] - elif(keys[pygame.K_RIGHT] != 0): - if(player.x < 920): - player.x += 10 - else: - player.x = 120 - maps = [maps[3], maps[2], maps[0], maps[1]] - if((keys[pygame.K_UP] != 0 or check_jump(y)) and not player.inAir): + if((keys[pygame.K_UP] != 0 or check_jump(y)) and not player.inAir): #jumping based on either face input or up button player.goingUp = True player.inAir = True - elif(player.inAir): + elif(player.inAir): #logic for jumping if(player.jumpHeight <= 0 and not player.goingUp): player.jumpHeight = 0 player.inAir = False @@ -116,34 +87,34 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, player.goingUp = False else: player.jumpHeight -= 10 - locs = round_player_loc(player.x, width, num_lines) - if collision(maps[3], locs, index, player.inAir): + locs = round_player_loc(player.x, width, num_lines) #creates hitbox of player + if collision(maps[3], locs, index, player.inAir): #checks for collision score = 0 - draw_grid(coordinate1, maps[0], index, screen, num_lines, False, locs, False, player.inAir) #left - draw_grid(coordinate2, maps[1], index, screen, num_lines, True, locs, False, player.inAir) #right - draw_grid(coordinate3, maps[2], index, screen, num_lines, True, locs, False, player.inAir) #top - draw_grid(coordinate4, maps[3], index, screen, num_lines, False, locs, True, player.inAir) #bottom + draw_grid(coordinate1, maps[0], index, screen, num_lines, False, locs, False, player.inAir) #draws left wall + draw_grid(coordinate2, maps[1], index, screen, num_lines, True, locs, False, player.inAir) #draws right wall + draw_grid(coordinate3, maps[2], index, screen, num_lines, True, locs, False, player.inAir) #draws top wall + draw_grid(coordinate4, maps[3], index, screen, num_lines, False, locs, True, player.inAir) #draws bottom wall score += 1 - if score > max_score: + if score > max_score: #score handling max_score = score show_score(score, max_score, myfont, width, height) - draw_player(player, screen) + draw_player(player, screen) #draws player pygame.time.wait(8) index += 1 - for event in pygame.event.get(): + for event in pygame.event.get(): #handles quitting if event.type == pygame.QUIT: run.running = False pygame.quit(); sys.exit(); -def show_score(score, max_score, myfont, width, height): +def show_score(score, max_score, myfont, width, height): #displays score in center of screen pygame.draw.rect(screen, (0, 0, 0), (width / 2 - 100, height / 2 - 100, 200, 200), 0) label = myfont.render(str(score), 1, (255, 255, 255)) label2 = myfont.render("Max score: " + str(max_score), 1, (255, 255, 255)) screen.blit(label2, (width / 2 - 90, height / 2 - 50)) screen.blit(label, (width / 2 - 50, height / 2)) -def round_player_loc(x, width, num_lines): +def round_player_loc(x, width, num_lines): #handles hitbox new_x = 1.0 * (width - x) / width * num_lines values_to_check = [] fix = 0 @@ -155,10 +126,10 @@ def round_player_loc(x, width, num_lines): values_to_check.append([int(new_x) + i + fix, 2]) return values_to_check -def draw_player(player, screen): +def draw_player(player, screen): #draws player pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) -def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom, in_air): +def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom, in_air): #handles drawing walls based on coordinates for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) @@ -177,7 +148,7 @@ def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom count = i * (num_lines) + j pygame.draw.polygon(screen, color, coordinates[-count], 0) -def collision(mapC, locs, index, in_air): +def collision(mapC, locs, index, in_air): #determines if player is colliding with hole if in_air: return False for loc in locs: @@ -188,7 +159,7 @@ def collision(mapC, locs, index, in_air): return False -def create_coordinates(side, width, height, num_lines, depth): +def create_coordinates(side, width, height, num_lines, depth): #creates coordinate system for drawings to give the impression of 3D y_loc = height / 2 interval = width / num_lines horizon_line = [depth, 'vertical'] @@ -248,7 +219,7 @@ def flip_vertical(width, height, p): def reflect_point(p): return [p[1], p[0]] -def find_intersection(l1, l2): +def find_intersection(l1, l2): #finds the intersection of two verteces l1_b0 = l1[0] l1_b1 = l1[1] l2_b0 = l2[0] @@ -263,7 +234,6 @@ def find_intersection(l1, l2): return [int(x), int(y)] def find_slope_intercept(p1, p2): - # print p1, " ", p2 p1_x = p1[0] p1_y = p1[1] p2_x = p2[0] @@ -285,7 +255,7 @@ def create_horizontal_line(p): p_y = p[1] return [p_y, 0] -class running: +class running: #class to be passed into both threaded functions so they can communicate when to end mid-thread def __init__(self): self.running = False diff --git a/plane.py b/plane.py index 216f0e7..c2e92f8 100644 --- a/plane.py +++ b/plane.py @@ -5,19 +5,13 @@ def __init__(self, num, pl, color, planeMap = []): self.player = pl #the player self.map = planeMap #matrix of points for floor/holes self.color = color - # def advance(self, amount): #advances current y-position by an amount - # self.pos[1] += amount - # return self.pos - # def shift(self, amount): #shifts current x-position by an amount - # self.pos[0] += amount - # return self.pos def populate(self, numRows, numCols, size): #randomly populate itself self.map = [] mapRef = [] weight = 4 for x in range(numRows/size): mapRef.append([(1 if random.randint(1, weight) < weight else 0) for i in range(numCols/size)]) #floors are weighted more than holes - for row in mapRef: + for row in mapRef: #this structure was to create holes larger than a single matrix point realRow = [] for entry in row: for i in range(size): diff --git a/player.py b/player.py index 9a6e59f..e81b346 100644 --- a/player.py +++ b/player.py @@ -10,6 +10,4 @@ def __init__(self, xPos = 0, yPos = 0, advanceIncrement = 1, color = (0, 255, 0) def setPos(self, xPos, yPos): #set the new position self.x = xPos self.y = yPos - def advance(self): - self.y += self.increment \ No newline at end of file From 1c26337211f4efb3c630a44e10f614ae0389dc3e Mon Sep 17 00:00:00 2001 From: apan64 Date: Wed, 9 Mar 2016 21:07:17 -0500 Subject: [PATCH 21/26] Delete main.py --- main.py | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 main.py diff --git a/main.py b/main.py deleted file mode 100644 index 315b566..0000000 --- a/main.py +++ /dev/null @@ -1,5 +0,0 @@ -#main - -def main(): - #just tryna see if github works - pass \ No newline at end of file From 79c367fed97e2eebb88501a28443bd69d11dc310 Mon Sep 17 00:00:00 2001 From: apan64 Date: Wed, 9 Mar 2016 21:07:27 -0500 Subject: [PATCH 22/26] Delete world.py --- world.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 world.py diff --git a/world.py b/world.py deleted file mode 100644 index e69de29..0000000 From ce43bd31fee9f309326d06ed520b9922dd6d7588 Mon Sep 17 00:00:00 2001 From: apan64 Date: Wed, 9 Mar 2016 21:08:31 -0500 Subject: [PATCH 23/26] Delete grid.py --- grid.py | 183 -------------------------------------------------------- 1 file changed, 183 deletions(-) delete mode 100644 grid.py diff --git a/grid.py b/grid.py deleted file mode 100644 index 597a53e..0000000 --- a/grid.py +++ /dev/null @@ -1,183 +0,0 @@ -#World -import pygame -import random - -def main(): - - pygame.init() - pygame.display.init() - size = (1200, 1000) - screen = pygame.display.set_mode(size) - red = (255, 0, 0) - green = (0, 255, 0) - blue = (0, 0, 255) - black = (0, 0, 0) - screen.fill(black) - """ - #horizontal - height = 1000 - width = 1000 - num_lines = 10 - - bottom_interval = width / num_lines - left_interval = height / num_lines - - - left_lines = [] - bottom_lines = [] - for i in range(num_lines): - [b0, b1] = find_line([width / 2, 0], [i * left_interval, height]) - print "left", [b0, b1] - left_lines.append([b0, b1]) - - for i in range(num_lines): - [b0, b1] = find_line([0, width / 2], [height, i * bottom_interval]) - print "bottom",[b0, b1] - bottom_lines.append([b0, b1]) - - horizon = 300 - left_horizon_Line = [horizon, 'vertical'] - bottom_horizon_line = [horizon, 'vertical'] - - left_cross_line = find_intersection(left_lines[-1], left_horizon_Line) - bottom_cross_line = find_intersection(bottom_lines[-1], bottom_horizon_line) - print left_cross_line - print bottom_cross_line - - #horizon_point1 = find_intersection(top_line, horizon_line) - #horizon_point2 = find_intersection(top_line, horizon_line) - #pygame.draw.line(screen, green, horizon_point, [horizon_x, 0]) - """ - - - width = 1800 - height = 1000 - vanishing_point_x = 0 - vanishing_point_y = height / 2 - num_lines = 100 - y_interval = height / num_lines - horizon_x = 400 - - width2 = height / 2 - height2 = height - vanishing_point_x2 = height2 / 2 - vanishing_point_y2 = 0 - num_lines2 = num_lines - y_interval2 = height2 / num_lines2 - horizon_x = 200 - - map = [] - for i in range(1000): - nested_map = [] - for j in range(num_lines): - nested_map.append(random.randint(0, 1)) - map.append(nested_map) - - map2 = [] - for i in range(1000): - nested_map2 = [] - for j in range(num_lines): - nested_map.append(random.randint(0, 1)) - map2.append(nested_map) - - lines = [] - for i in range(num_lines): - #print [width, i * y_interval] - [b0, b1] = find_line([0, height / 2], [width, i * y_interval]) - lines.append([b0, b1]) - - - top_line = lines[-1] - horizon_line = [horizon_x, 'vertical'] - horizon_point = find_intersection(top_line, horizon_line) - #pygame.draw.line(screen, green, horizon_point, [horizon_x, 0]) - - cross_line = find_line(horizon_point, [width, 0]) - points = [] - for i in range(num_lines): - points.append(find_intersection(lines[i], cross_line)) - - for i in range(len(points)): - #pygame.draw.circle(screen, green, points[i], 10, 1) - pass - - #pygame.draw.line(screen, blue, horizon_point, [width, 0]) - for i in range(num_lines): - pygame.draw.line(screen, red, [0, height2 / 2], [width2, i * (y_interval2)], 2) - pass - - vert_lines = [] - for i in range(len(points)): - vert_lines.append([points[i][0], 'vertical']) - vert_point = find_intersection(top_line, vert_lines[i]) - #pygame.draw.line(screen, red, vert_point, [points[i][0], 0], 6) - - coordinates = [] - for i in range(len(lines) - 1): - for j in range(len(vert_lines) - 1): - p1 = find_intersection(lines[i], vert_lines[j]) - p2 = find_intersection(lines[i + 1], vert_lines[j]) - p3 = find_intersection(lines[i + 1], vert_lines[j + 1]) - p4 = find_intersection(lines[i], vert_lines[j + 1]) - coordinates.append([p1, p2, p3, p4]) - rand_color = (random.uniform(0, 255), random.uniform(0, 255), random.uniform(0, 255)) - pygame.draw.polygon(screen, rand_color, [p1, p2, p3, p4], 0) - - - print len(coordinates) - done = False - index = 0 - - while not done: - draw_grid(coordinates, map, index, screen, num_lines) - pygame.display.update() - pygame.time.wait(1000) - index += 1 - print index - for event in pygame.event.get(): - if event.type == pygame.QUIT: - pygame.quit(); sys.exit(); - - -def draw_grid(coordinates, map, index, screen, num_lines): - copy = index - for i in range(num_lines - 1): - for j in range(num_lines - 1): - color = (0, 0, 0) - if (map[j + index][i] == 1): - color = (0, 125, 125) - count = i * (num_lines - 1) + j - pygame.draw.polygon(screen, color, coordinates[count], 0) - - -def find_polygon(): - pass - -def find_intersection(l1, l2): - l1_b0 = l1[0] - l1_b1 = l1[1] - l2_b0 = l2[0] - l2_b1 = l2[1] - - #if one of the lines is vertical - if (l1_b1 == 'vertical'): - return [l1_b0, l2_b0 + l2_b1 * l1_b0] - if (l2_b1 == 'vertical'): - return [l2_b0, l1_b0 + l1_b1 * l2_b0] - x = (l1_b0 - l2_b0) / (l2_b1 - l1_b1) - y = l1_b0 + l1_b1 * x - return [int(x), int(y)] - -def find_line(p1, p2): - p1_x = p1[0] - p1_y = p1[1] - p2_x = p2[0] - p2_y = p2[1] - if (p2_x - p1_x == 0): - return [p2_x, 'vertical'] - b1 = -1.0 * (p2_y - p1_y) / (p2_x - p1_x) - b0 = 1.0 * p1_y + b1 * p1_x - return [b0, b1] - - -main() \ No newline at end of file From fb82bdcf84597116526f18448f4ec89b7fe598f2 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Thu, 10 Mar 2016 09:57:02 -0500 Subject: [PATCH 24/26] docstrings --- graphics.py | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/graphics.py b/graphics.py index a90707e..8b6c773 100644 --- a/graphics.py +++ b/graphics.py @@ -17,7 +17,8 @@ screen.fill(black) faceCoordinates = [] #list used as a stack (pushes, pops) -def read_frame(run): #function that handles reading in face location in openCV, adds relevant values to the global stack +def read_frame(run): + '''Function that handles reading in face location in openCV, adds relevant values to the global stack''' cap = cv2.VideoCapture(0) face_cascade = cv2.CascadeClassifier('/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml') kernel = np.ones((21,21),'uint8') @@ -32,17 +33,20 @@ def read_frame(run): #function that handles reading in face location in openCV, faceCoordinates.append((x, y)) if(not run.running): #had trouble forcing an end to the function when pygame is closed and even when sys.exit() is called, instead a class variable that could be edited by update was used break -def move_x(x): #determines whether character moves from face location +def move_x(x): + '''Determines whether character moves from face location''' if int(x) - middle < -10: return 20 elif int(x) - middle > 10: return -20 return 0 -def check_jump(value): #determines whether the character should jump +def check_jump(value): + '''determines whether the character should jump''' if (middle - value) > 40: return True return False -def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines, fThread, run): #handles all game running +def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, map4, player, num_lines, fThread, run): + '''handles all game running''' '''initials''' done = False index = 1 @@ -100,21 +104,23 @@ def update(coordinate1, coordinate2, coordinate3, coordinate4, map1, map2, map3, max_score = score show_score(score, max_score, myfont, width, height) draw_player(player, screen) #draws player - pygame.time.wait(8) + pygame.time.wait(10) index += 1 for event in pygame.event.get(): #handles quitting if event.type == pygame.QUIT: run.running = False pygame.quit(); sys.exit(); -def show_score(score, max_score, myfont, width, height): #displays score in center of screen +def show_score(score, max_score, myfont, width, height): + '''Displays score in center of screen''' pygame.draw.rect(screen, (0, 0, 0), (width / 2 - 100, height / 2 - 100, 200, 200), 0) label = myfont.render(str(score), 1, (255, 255, 255)) label2 = myfont.render("Max score: " + str(max_score), 1, (255, 255, 255)) screen.blit(label2, (width / 2 - 90, height / 2 - 50)) screen.blit(label, (width / 2 - 50, height / 2)) -def round_player_loc(x, width, num_lines): #handles hitbox +def round_player_loc(x, width, num_lines): + '''Handles hitbox''' new_x = 1.0 * (width - x) / width * num_lines values_to_check = [] fix = 0 @@ -122,14 +128,16 @@ def round_player_loc(x, width, num_lines): #handles hitbox fix = -1 elif new_x > 2 * num_lines / 3: fix = 1 - for i in range(-2, 2): + for i in range(-1, 1): values_to_check.append([int(new_x) + i + fix, 2]) return values_to_check -def draw_player(player, screen): #draws player +def draw_player(player, screen): + '''dDaws player''' pygame.draw.circle(screen, player.color, [player.x, player.y - player.jumpHeight], 30) -def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom, in_air): #handles drawing walls based on coordinates +def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom, in_air): + '''Handles drawing walls based on coordinates''' for i in range(num_lines): for j in range(num_lines): color = (0, 0, 0) @@ -148,7 +156,8 @@ def draw_grid(coordinates, mapC, index, screen, num_lines, reverse, locs, bottom count = i * (num_lines) + j pygame.draw.polygon(screen, color, coordinates[-count], 0) -def collision(mapC, locs, index, in_air): #determines if player is colliding with hole +def collision(mapC, locs, index, in_air): + '''Determines if player is colliding with hole''' if in_air: return False for loc in locs: @@ -159,7 +168,8 @@ def collision(mapC, locs, index, in_air): #determines if player is colliding wit return False -def create_coordinates(side, width, height, num_lines, depth): #creates coordinate system for drawings to give the impression of 3D +def create_coordinates(side, width, height, num_lines, depth): + '''Creates coordinate system for drawings to give the impression of 3D''' y_loc = height / 2 interval = width / num_lines horizon_line = [depth, 'vertical'] @@ -210,16 +220,20 @@ def create_coordinates(side, width, height, num_lines, depth): #creates coordina return coordinates def flip_horizontal(width, height, p): + '''Returns a point mirrored about the y axis''' return [width - p[0], p[1]] def flip_vertical(width, height, p): + '''Returns a point mirrored about the x axis''' return [p[0], height - p[1]] def reflect_point(p): + '''Returns a point mirrored about the line y = x''' return [p[1], p[0]] -def find_intersection(l1, l2): #finds the intersection of two verteces +def find_intersection(l1, l2): + '''Finds the intersection of two verteces''' l1_b0 = l1[0] l1_b1 = l1[1] l2_b0 = l2[0] @@ -234,6 +248,7 @@ def find_intersection(l1, l2): #finds the intersection of two verteces return [int(x), int(y)] def find_slope_intercept(p1, p2): + '''Finds the point at which two lines intersect''' p1_x = p1[0] p1_y = p1[1] p2_x = p2[0] @@ -246,16 +261,19 @@ def find_slope_intercept(p1, p2): return [1.0 * p1_y - slope * p1_x, slope] def create_vertical_line(p): + '''Creates a vertical line''' p_x = p[0] p_y = p[1] return [p_x, 'vertical'] def create_horizontal_line(p): + '''Creates a horizontal line''' p_x = p[0] p_y = p[1] return [p_y, 0] -class running: #class to be passed into both threaded functions so they can communicate when to end mid-thread +class running: + '''Class to be passed into both threaded functions so they can communicate when to end mid-thread''' def __init__(self): self.running = False From 09f01ad1e04a66c81d47712ac455cbbc956405a2 Mon Sep 17 00:00:00 2001 From: Andrew Pan Date: Thu, 10 Mar 2016 10:01:28 -0500 Subject: [PATCH 25/26] edited readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 61ec120..edae79a 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # InteractiveProgramming -This is the base repo for the interactive programming project for Software Design, Spring 2016 at Olin College. +This is the repository for our game, which allows the player character to be controlled via keyboard inputs or the location of a face detected by a computer's webcam. In order to play the game, the graphics.py file must be run. From 926afbdf7e9664a239800e3b45f5ff0a4a5cdce9 Mon Sep 17 00:00:00 2001 From: David Papp Date: Thu, 10 Mar 2016 10:05:13 -0500 Subject: [PATCH 26/26] added reflection --- Reflection.pdf | Bin 0 -> 263660 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Reflection.pdf diff --git a/Reflection.pdf b/Reflection.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dc3ebc1449b3a475bea197021a79f8e68a33d56e GIT binary patch literal 263660 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

q|Zz8$t_ekU*k<|C;bA}R2{ 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%0DYychD0hrh}(si53jn|nSPylFJu&@8H4ye$J4s} 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

  • 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 OK`|m$Rz)o(qW=N}g2FQZ literal 0 HcmV?d00001