maver98k Opublikowano 1 Września 2014 Zgłoś Opublikowano 1 Września 2014 Tworzę, krótką animację, w której obiekt porusza się w zadanym kierunku ze stałą prędkością. Chciałbym mieć możliwość sterowania tym obiektem za pomocą klawiatury i strzałek LEWO/PRAWO. Podaję poniżej mój kod. Niby flash nie wyrzuca mi żadnego błędu, a pomimo tego po naciśnięciu strzałek nic się nie dzieje. Co jest nie tak z tym kodem? Proszę o pomoc w tym jakże banalnym dla was developerów zagadnieniu.... import flash.geom.*; var distance:Number = 1; var kurs:Number = 360 var angle:Number = 2 * Math.PI * (kurs / 360); var translatePoint:Point = Point.polar(distance, angle); stage.addEventListener(KeyboardEvent.KEY_DOWN, skrecajstatek); function skrecajstatek(evt:KeyboardEvent){ if(evt.keyCode == Keyboard.LEFT){ kurs = 180; } if(evt.keyCode == Keyboard.RIGHT){ kurs = 360; } } stage.addEventListener(Event.ENTER_FRAME, ruszajstatek); function ruszajstatek(Event) { mcstatek.x += translatePoint.x; mcstatek.y += translatePoint.y; } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kodOdAli Opublikowano 27 Września 2014 Zgłoś Opublikowano 27 Września 2014 (edytowane) Nie programuję w AS, ale na pierwszy rzut oka może brakować aktualizacji wartości zmiennych angle i translatePoint przy obsłudze naciskania klawiszy lewo-prawo, czyli wewnątrz funkcji skrecajstatek - spróbuj dodać kod zaznaczony pogrubioną czcionką: function skrecajstatek(evt:KeyboardEvent){ if(evt.keyCode == Keyboard.LEFT){ kurs = 180; } if(evt.keyCode == Keyboard.RIGHT){ kurs = 360; } angle = 2 * Math.PI * (kurs / 360); translatePoint = Point.polar(distance, angle); } Edytowane 27 Września 2014 przez kodOdAli Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...