Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Где ошибка (http://www.flasher.ru/forum/showthread.php?t=38109)

Artem Brigert 07.10.2002 01:17

Где ошибка
 
Итак код следующий:

bb=random(7);
aa=int(bb);


if(aa==0){
aaa._y++
aaa._x--
}
else if(aa==1){
aaa._y--
}
else if(aa==2){
aaa._y--
aaa._x++
}
else if(aa==3){
aaa._x--
}
else if(aa==4){
aaa._x++
}
else if(aa==5){
aaa._x--
aaa._y++
}
else if(aa==6){
aaa._y++
}
else if(aa==7){
aaa._y++
aaa._x++
}


ааа почему-то всегда движется в левый нижний угол. Почемууу???

Хэлпните плз. :D

Nox Noctis 07.10.2002 02:50

—рандом(7) выдает:
0,1,2,3,4,5,6
то есть else if(aa==7){ в любом случае не работает...

и еще замечание:
bb = random(7); выдает целое число
то есть aa=int(bb); инт() здесь незачем...

Nox Noctis 07.10.2002 02:59

и еще (япросто подписал направления):
Код:

        if (aa == 0) {
                // left down
                aaa._y++;
                aaa._x--;
        } else if (aa == 1) {
                // up
                aaa._y--;
        } else if (aa == 2) {
                // right up
                aaa._y--;
                aaa._x++;
        } else if (aa == 3) {
                // left
                aaa._x--;
        } else if (aa == 4) {
                // right
                aaa._x++;
        } else if (aa == 5) {
                // left down
                aaa._x--;
                aaa._y++;
        } else if (aa == 6) {
                // down
                aaa._y++;
        } else if (aa == 7) {
                // right down
                aaa._y++;
                aaa._x++;
        }

влево+вниз встречается два раза...
то есть это двежение НЕ равновероятно всем остальным...
ты я так понял хотел добиться дрожания объекта на одном месте, да ?
тогда гораздо проще засечь его начальные координаты и сделать:

_y = defaultY + random(2)||-1;
_x = defaultX + random(2)||-1;

гораздо проще, правда ? :))

Artem Brigert 07.10.2002 03:03

Пасиб :)
я хотел сделать хатичное движение :)
Чтобы мувик двигался непонятно куда, а он зараза по ему только понятному направлению пошёл :D

Artem Brigert 07.10.2002 03:15

Блин я сам напорол :)

if(aa==0){
aaa._y++
aaa._x--
}

ведь при нуле у меня подразумевалось движение в верхний левый угол :D

Значит

_y--
_x--

Artem Brigert 07.10.2002 03:29

Кстати Noctis не подскажеш как сделать, чтобы мувик плавно летал по всему ролику? :rolleyes:
Я что-то не допру никак.

Только принцип ;) дальше я сам

sergwizard 07.10.2002 03:47

Давай уясним, что движение в левый нижний угол - это увеличение _У и уменьшение _Х. Правильно?
Теперь рассмотрим твой код, и посчитаем, сколько раз мы заставляем увеличиваться _Х и _У, и сколько раз уменьшаться.
Сразу условимся, что этот блок кода
else if(aa==7){
aaa._y++
aaa._x++
}
ты написал зря, т.к. аа никогда не примет значение 7. (Протрассируй аа для проверки.)
Из 7 условий, у тебя 2 увеличения _Х и три уменьшения.
И 3 увеличения _У и всего два уменьшения.
То есть, ты сам заставляешь постепенно передвигаться "ааа" в левый нижний угол. Удивляться нечему.

sergwizard 07.10.2002 03:49

Блин, пока я писал ответ, Nox Noctis уже ответил. И даже переписку завязал. Ну что ж, кто не успел, тот протютюкал.

Artem Brigert 07.10.2002 03:52

:D ты не расстраивайся. Я тут ещё вопрос задал. ;)

sergwizard 07.10.2002 04:10

Успокоил. Тогда получай исходник. Может быть, он тебе поможет. Если тебе достаточно одного объекта, поставь n = 1 и не дублируй МС. Разберешься.


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

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