summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustyna Att Ilczuk <justyna.ilczuk@gmail.com>2012-11-10 17:19:47 +0100
committerJustyna Att Ilczuk <justyna.ilczuk@gmail.com>2012-11-10 17:19:47 +0100
commit10e996d8b88f6cce7ae8d63b0029de83ad29de71 (patch)
tree415092773c153af59f1b87ade478541bbb355332
downloadlaserz_und_stuff-10e996d8b88f6cce7ae8d63b0029de83ad29de71.tar.gz
laserz_und_stuff-10e996d8b88f6cce7ae8d63b0029de83ad29de71.tar.bz2
laserz_und_stuff-10e996d8b88f6cce7ae8d63b0029de83ad29de71.tar.xz
laserz_und_stuff-10e996d8b88f6cce7ae8d63b0029de83ad29de71.zip
Some gui and aiming stuff in python.
-rw-r--r--Lasers_und_stuff/.project17
-rw-r--r--Lasers_und_stuff/.pydevproject8
-rw-r--r--Lasers_und_stuff/main.py195
3 files changed, 220 insertions, 0 deletions
diff --git a/Lasers_und_stuff/.project b/Lasers_und_stuff/.project
new file mode 100644
index 0000000..f1968da
--- /dev/null
+++ b/Lasers_und_stuff/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>Lasers_und_stuff</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.python.pydev.PyDevBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.python.pydev.pythonNature</nature>
+ </natures>
+</projectDescription>
diff --git a/Lasers_und_stuff/.pydevproject b/Lasers_und_stuff/.pydevproject
new file mode 100644
index 0000000..7c73a66
--- /dev/null
+++ b/Lasers_und_stuff/.pydevproject
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?eclipse-pydev version="1.0"?><pydev_project>
+<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
+<path>/Lasers_und_stuff</path>
+</pydev_pathproperty>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
+<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">python2</pydev_property>
+</pydev_project>
diff --git a/Lasers_und_stuff/main.py b/Lasers_und_stuff/main.py
new file mode 100644
index 0000000..71825e9
--- /dev/null
+++ b/Lasers_und_stuff/main.py
@@ -0,0 +1,195 @@
+'''
+Created on Nov 10, 2012
+
+@author: attero
+'''
+
+
+import random, pygame, sys
+#import time
+from pygame.locals import *
+from math import fabs
+from math import ceil
+#import and init pygame
+pygame.init()
+
+def main():
+ #create the screen
+ window = pygame.display.set_mode((640, 480))
+
+
+ #draw a line
+ pygame.draw.line(window, (255, 255, 255), (0,0), (300, 50))
+
+ #draw it to the screen
+
+
+ GRAY = ( 182, 182, 182)
+ VIOLET = (150, 100, 190)
+ RED = (150, 0, 0)
+ GREEN = (0, 150, 0)
+ BLUE = (0, 0, 150)
+ VERYLIGHT = (210, 210, 210)
+ BACKGROUND_COLOR = GREEN
+
+ colors = [GRAY, VIOLET, RED, GREEN, BLUE, VERYLIGHT]
+
+ window.fill(BACKGROUND_COLOR)
+
+ mouseClicked = False
+ pygame.display.flip()
+ cannon = CannonController()
+
+
+ screen = Screen(window, colors)
+ screen.draw_surface(cannon)
+
+ gunpoint = Gunpoint((5, 4), (200, 4), (5, 210))
+ coords = gunpoint.aim((0,0))
+ #input handling ( code):
+ while True:
+ screen.draw_surface(cannon)
+
+ mouseClicked = False
+
+
+ for event in pygame.event.get():
+ if event.type == pygame.QUIT:
+ sys.exit(0)
+ elif event.type == KEYUP and event.key == K_SPACE:
+
+ if cannon.fired:
+ cannon.fired = False
+ else:
+ cannon.fired = True
+ elif event.type == KEYUP and event.key == K_RIGHT:
+ cannon.move_right(2)
+ elif event.type == KEYUP and event.key == K_LEFT:
+ cannon.move_left(2)
+ elif event.type == KEYUP and event.key == K_UP:
+ cannon.move_up(2)
+ elif event.type == KEYUP and event.key == K_DOWN:
+ cannon.move_down(2)
+ elif event.type == KEYUP and event.key == K_l:
+ if cannon.laser:
+ cannon.disable_laser()
+ if "Laser enabled" in screen.communicates :
+ screen.communicates.remove("Laser enabled")
+ screen.communicates.append("Laser disabled")
+ else:
+ cannon.enable_laser()
+ if "Laser disabled" in screen.communicates :
+ screen.communicates.remove("Laser disabled")
+ screen.communicates.append("Laser enabled")
+
+ elif event.type == MOUSEBUTTONUP:
+ print "mouse button up"
+ mouseClicked = True
+ screen.change_color()
+
+
+
+ if mouseClicked :
+ print("Mouse was clicked!")
+ coords = [gunpoint.aim((x/10.0,x/10.0)) for x in range(0,11)]
+ samples = [(x/10.0,x/10.0) for x in range(0, 11)]
+ print samples
+ print coords
+
+
+
+class Screen:
+
+ def __init__(self, window, colors):
+ self.communicates = []
+ self.communicates.append("Press space to fire!")
+ self.communicates.append("Use arrows to adjust position")
+ self.communicates.append("Press L to enable laser")
+ self.window = window
+ self.colors = colors
+ self.color = random.choice(self.colors)
+
+ def change_color(self):
+ self.color = random.choice(self.colors)
+
+ def draw_surface(self, cannon):
+ self.window.fill(self.color)
+ for i, text in enumerate(self.communicates):
+ self.print_text(text, 20, 20 + i*20, (0, 0, 0), 20, self.window)
+
+ if cannon.fired:
+ self.print_text("Fired!", 20, 100, (150, 20, 40), 40, self.window)
+
+ self.print_text(cannon.get_data_to_send().__str__(), 20, 300, (0, 0, 0), 30, self.window)
+ pygame.display.flip()
+
+ def print_text(self, text,xx,yy,color,text_size, screen):
+ font = pygame.font.SysFont("Courier New",text_size)
+ ren = font.render(text,1,color)
+ screen.blit(ren, (xx,yy))
+
+
+class CannonController :
+ def __init__(self):
+ print("cannon controller started")
+ self.position = [0, 0]
+ self.fired = False
+ self.laser = False
+
+ def fire(self):
+ self.fired = True
+
+ def enable_laser(self):
+ self.laser = True
+
+ def disable_laser(self):
+ self.laser = False
+
+ def move_left(self, change):
+ self.position[0] -= change
+ def move_right(self, change):
+ self.position[0] += change
+ def move_up(self, change):
+ self.position[1] += change
+ def move_down(self, change):
+ self.position[1] -= change
+ def check_validity_of_data(self):
+ if(fabs(self.position[0]) > 255):
+ return False
+ if (fabs(self.position[1]) > 255):
+ return False
+ return True
+
+ def get_data_to_send(self):
+ # ('a' - os X, 'b' - os Y, 'c' - Strzal, 'd' - laser)
+ if self.check_validity_of_data():
+ data = []
+ data.extend(self.position)
+ if(self.fired):
+ data.append(255)
+ else:
+ data.append(0)
+
+ if(self.laser):
+ data.append(255)
+ else:
+ data.append(0)
+
+ return data
+ else:
+ return [0, 0, 0, 0]
+
+class Gunpoint :
+ def __init__(self, point1, point2, point3):
+ self.vertical_angle = point3[1] - point1[1]
+ self.horizontal_angle = point2[0] - point1[0]
+ self.beginnig_horizontal = point1[0]
+ self.beginnig_vertical = point1[1]
+
+ def aim(self, point):
+ horizontal = ceil(self.beginnig_horizontal + self.horizontal_angle*point[0])
+ vertical = ceil(self.beginnig_vertical + self.vertical_angle*point[1])
+ return [horizontal, vertical]
+
+if __name__ == '__main__':
+ main() \ No newline at end of file