diff options
Diffstat (limited to 'data/en/graphics/lines')
-rw-r--r-- | data/en/graphics/lines | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/data/en/graphics/lines b/data/en/graphics/lines new file mode 100644 index 0000000..16db9d6 --- /dev/null +++ b/data/en/graphics/lines @@ -0,0 +1,104 @@ +# lines: make lots of lines on the screen +# pep8-ignore: E501 + +import pippy +import pygame +import sys +from pygame.locals import * +from random import * + +# always need to init first thing +pygame.init() + +# turn off the cursor +pygame.mouse.set_visible(False) + +# create the window and keep track of the surface +# for drawing into +screen = pygame.display.set_mode((0, 0), pygame.FULLSCREEN) + +# ask for screen's width and height +size = width, height = screen.get_size() + +# start the screen all black +screen.fill((0, 0, 0)) + +# we need starting endpoints for the line and seed motion vectors +start = [randint(0, size[0]), randint(0, size[1])] +end = [randint(0, size[0]), randint(0, size[1])] + +# randomize the motion, 1..3 in each direction, positive or negative, but +# never 0 +mvect_start = [choice((-1, 1)) * randint(1, 3), choice((-1, 1)) * randint(1, 3)] +mvect_end = [choice((-1, 1)) * randint(1, 3), choice((-1, 1)) * randint(1, 3)] + +# start with a random color and color direction +color = [randint(0, 255), randint(0, 255), randint(0, 255)] +direction = [choice((-1, 1)), choice((-1, 1)), choice((-1, 1))] + +while pippy.pygame.next_frame(): + + for event in pygame.event.get(): + if event.type == QUIT: + sys.exit() + + elif event.type == KEYDOWN: + sys.exit() + + # draw the line using the current values and width=3 + pygame.draw.line(screen, color, start, end, 3) + + # update the display + pygame.display.flip() + + # update the end points and the color + for i in range(2): + start[i] = start[i] + mvect_start[i] + end[i] = end[i] + mvect_end[i] + + for i in range(3): + color[i] = color[i] + direction[i] + + # check if anything has gone out of range and + # if so, bring back to edge and reverse the + # corresponding motion vector + if start[0] < 0: + start[0] = 0 + mvect_start[0] = (-1) * mvect_start[0] + elif start[0] >= size[0]: + start[0] = size[0] - 1 + mvect_start[0] = (-1) * mvect_start[0] + + if start[1] < 0: + start[1] = 0 + mvect_start[1] = (-1) * mvect_start[1] + elif start[1] >= size[1]: + start[1] = size[1] - 1 + mvect_start[1] = (-1) * mvect_start[1] + + if end[0] < 0: + end[0] = 0 + mvect_end[0] = (-1) * mvect_end[0] + elif end[0] >= size[0]: + end[0] = size[0] - 1 + mvect_end[0] = (-1) * mvect_end[0] + + if end[1] < 0: + end[1] = 0 + mvect_end[1] = (-1) * mvect_end[1] + elif end[1] >= size[1]: + end[1] = size[1] - 1 + mvect_end[1] = (-1) * mvect_end[1] + + for i in range(3): + if color[i] < 0: + color[i] = 0 + direction[i] = direction[i] * (-1) + elif color[i] >= 255: + color[i] = 255 + direction[i] = direction[i] * (-1) + + # randomly change the color directon on occasion + if randint(0, 511) == 128: + for i in range(3): + direction[i] = choice((-1, 1)) |