Просмотр полной версии : Где ошибка
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 и не дублируй МС. Разберешься.
sergwizard
07.10.2002, 04:12
Опять файл не прицепился.
Artem Brigert
07.10.2002, 12:26
Пасиб, скачал.
Жаль времени нет сейчас посмотреть.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.