Esempio n. 1
0
    def events(self):
        """Deal with the user input."""
        cursor = copy.deepcopy(Point(*self.context.point()))
        click = self.context.click()
        for event in pygame.event.get():
            if event.type == QUIT:
                self.context.open = False

            if event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    self.context.open = False

            if event.type == MOUSEBUTTONDOWN:

                if event.button == 1:
                    self.focus_index = None
                    for body in self.bodies:
                        if cursor in body.absolute:
                            self.focus_index = self.bodies.index(body)
                    if self.focus_index:
                        self.bodies[self.focus_index].position = Vector(
                            *cursor)

                if event.button == 3:
                    c = copy.deepcopy(cursor)
                    if self.focus_index == None:
                        self.focus_index = len(self.bodies)
                        f = Form([c])
                        self.bodies.append(Body.createFromAbsolute(f))
                    else:
                        fa = copy.deepcopy(
                            self.bodies[self.focus_index].absolute)
                        fa.points.append(c)
                        self.bodies[self.focus_index].absolute = fa

            if event.type == MOUSEMOTION:
                if self.focus and click:
                    self.focus.position = Vector(*cursor)

        keys = pygame.key.get_pressed()

        if keys[K_DOWN]:
            self.context.draw.plane.position[1] -= 1
        if keys[K_UP]:
            self.context.draw.plane.position[1] += 1
        if keys[K_LEFT]:
            self.context.draw.plane.position[0] -= 1
        if keys[K_RIGHT]:
            self.context.draw.plane.position[0] += 1

        if keys[K_LSHIFT]:
            self.context.draw.plane.zoom([0.9, 0.9])
        if keys[K_RSHIFT]:
            self.context.draw.plane.zoom([1.1, 1.1])
Esempio n. 2
0
from myabstract import Form,Point
from mybody import Body
from mycontext import Context

import copy
import mycolors

ps=[Point(10,2),Point(12,5),Point(15,-2)]
f=Form(ps)
b=Body.createFromAbsolute(f)

context=Context()
while context.open:
    context.check()
    context.control()
    context.clear()
    context.show()

    p=Point(*context.point())

    nb=copy.deepcopy(b)
    nba=copy.deepcopy(nb.absolute)
    nba.points.append(p)
    for point in nba.points:
        point.show(context,color=mycolors.BLUE)
    nb.absolute=nba

    nb.show(context)
    nb.absolute.center.show(context,color=mycolors.RED)

    context.flip()