コード例 #1
0
ファイル: animation.py プロジェクト: coderdojoka/py2cd
class AnimierteLinie(Animation):
    def __init__(self, start, ende, zeit_in_ms=None, geschwindigkeit=None, farbe=(0, 0, 0), dicke=1):

        if zeit_in_ms is None and geschwindigkeit is None:
            raise AttributeError("Entweder die Zeit oder die Geschwindigkeit müssen gesetzt sein.")

        self.linie = Linie(start, start, farbe=farbe, dicke=dicke)
        self.linie.verstecke()
        self.x_start = start[0]
        self.x_diff = ende[0] - start[0]
        self.y_start = start[1]
        self.y_diff = ende[1] - start[1]

        # Zeit berechnen
        if geschwindigkeit is not None:
            l = math.sqrt((ende[0] - start[0]) ** 2 + (ende[1] - start[1]) ** 2)

            zeit_in_ms = l / geschwindigkeit

        super().__init__(zeit_in_ms, aktualisiere=self._aktualisiere, animation_gestartet=self._gestartet)

    def _gestartet(self, wdh=False):
        self.linie.zeige()

    def _aktualisiere(self, dt):
        self.linie.setze_ende((self.x_start + self.x_diff * dt, self.y_start + self.y_diff * dt))
コード例 #2
0
ファイル: animation.py プロジェクト: TimKaechele/py2cd
    def __init__(self, start, ende, zeit_in_ms=None, geschwindigkeit=None, farbe=(0, 0, 0), dicke=1):

        if zeit_in_ms is None and geschwindigkeit is None:
            raise AttributeError("Entweder die Zeit oder die Geschwindigkeit müssen gesetzt sein.")

        self.linie = Linie(start, start, farbe=farbe, dicke=dicke)
        self.linie.verstecke()
        self.x_start = start[0]
        self.x_diff = ende[0] - start[0]
        self.y_start = start[1]
        self.y_diff = ende[1] - start[1]

        # Zeit berechnen
        if geschwindigkeit is not None:
            l = math.sqrt((ende[0] - start[0]) ** 2 + (ende[1] - start[1]) ** 2)

            zeit_in_ms = l / geschwindigkeit

        super().__init__(zeit_in_ms, self._aktualisiere, self._gestartet)