Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как изменить направление движения рисунка? (http://www.flasher.ru/forum/showthread.php?t=193862)

Tina 02.02.2013 21:47

Как изменить направление движения рисунка?
 
Есть шарик, он двигается в право, доходя до края сцены он должен менять направление движения на противоположное. Подскажите пожалуйста как это сделать.

saikspaik 03.02.2013 12:28

Умножь горизонтальную скорость шарика на -1.

Tina 03.02.2013 22:47

Ну это я понимаю. Как оформинить не знаю. Код такой, для движения вправо. Как его развернуть, а потом опять развернуть чтоб он двигался от одного края сцены к другому?
Код AS3:

public var ball:Ball;
                public function Main():void
                {
                        ball = new Ball();
                        ball.x = ball.y = 100;
                        addChild(ball);
                        addEventListener(Event.ENTER_FRAME, onLoop);
                }
                private function onLoop(evt:Event):void
                {
                                ball.x ++;
                }


mooncar 04.02.2013 10:15

Tina,
1. Ваш вопрос по программированию, поэтому необходимо было сразу разместить его в нужном разделе.
2. Код оформляется тегами [as3], соответственная кнопка расположена на панели редактирования сообщения.

bav 04.02.2013 10:21

Код AS3:

public var ball:Ball;
// Добавить переменную, содержащую скорость
private var speed:Number = 1;
public function Main():void
{
        ball = new Ball();
        ball.x = ball.y = 100;
        addChild(ball);
        addEventListener(Event.ENTER_FRAME, onLoop);
}
private function onLoop(evt:Event):void
{
                ball.x += speed;
}
// А потом, где нужно, умножить скорость на -1,
// как и сказал saikspaik
speed *= -1;


Tina 04.02.2013 13:48

mooncar, извиняюсь. Просто я только зарегистрировалась и еще не совсем разобралась.
saikspaik, bav, спасибо за помощь.

caseyryan 04.02.2013 15:50

Код AS3:

package  {
        import flash.display.Sprite;
        import flash.events.Event;
 
        public class Main extends Sprite {
 
 
                private var _ball:Sprite = new Sprite();
                private var _speed:Number = 10;
 
                public function Main() {
                        _ball.graphics.beginFill(0xFF0000);
                        _ball.graphics.drawCircle(0, 0, 20);
                        _ball.graphics.endFill();
                        _ball.y        = 100;
                        addChild(_ball);
                        addEventListener(Event.ENTER_FRAME, update);
 
                }
 
                private function update(e:Event):void {
                        _ball.x += _speed;
                        if (_ball.x >= stage.stageWidth || _ball.x < 0) {
                                _speed *= -1;
                        }
                }
        }
}


Tina 04.02.2013 21:20

caseyryan, спасибо, так и сделала.


Часовой пояс GMT +4, время: 01:43.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.