Просмотр полной версии : программное задание движения
Fenix2009
21.01.2009, 18:16
задача: есть шар...надо с помощью AS заставить его двигаться, начиная от вправо вверх, отпражаясь от стенок и до бесконечности...размер экрана 550*400
Добавлено через 2 минуты
причем он может двигаться и по часовой стрелке и против, все зависит как он будет размещен, изначальное размещение может меняться, а программа все-равно должна работать
Это проще паряной репы
твой объект называется допустим sharik
ну вот и в эксперементируй АS ...
координата по диагонали прописывается так: sharik._x...;
координата по горизонтали прописывается так: sharik._x...;
ширина объекта прописывается так: sharik._xscale=...;
высота объекта прописывается так: sharik._yscale=...;
ну случайное месторасположение - random
lexa2000lexa
21.01.2009, 19:13
ширина объекта прописывается так: sharik._xscale=...;
высота объекта прописывается так: sharik._yscale=...;
это вы счего взяли что это шиина и высота обьекта, мне казалось, что это
._width и ._height соответственно.
Fenix2009
21.01.2009, 19:16
ниче про репу не поняла
я тут такой код написала, но он не работает
a=5;
b=5;
_root.shar._x=_root.shar._x+a;
_root.shar._y=_root.shar._y-b;
if (_root.shar._x=550)
a=-5;
if (_root.shar._x=0)
a=5;
if (_root.shar._y=400)
b=-5;
if (_root.shar._y=0)
b=5;
lexa2000lexa, можно и так, _xscale тоже работает
Fenix2009
21.01.2009, 19:24
объект я рисую графически, мне не надо его программно задавать, программно надо чтоб он двигался, программа в трехкадровом управляющем клипе
lexa2000lexa
21.01.2009, 19:26
lexa2000lexa, можно и так, _xscale тоже работает
так можно , но только это свойство масштабирование клипа в процентах, а свойство _width - ширина клипа в пикселях,
разницу видите?
if (_root.shar._x=550)
a=-5;
r=10;
//Случайное место появление шара
shar._x=random(550)-r; // r - радиус
shar._y=random(400)-r;
//Грани за которые не выйдет шар
if (shar._x>550-r) {shar._x=550-r}
if (shar._x<0+r) {shar._x<0+r}
if (shar._y>400-r) {shar._y=400-r}
if (shar._y<0+r) {shar._y<0+r}
Ps: как lexa2000lexa сказал scale это в процентах, если надо в пикселях то _width
Fenix2009
21.01.2009, 19:34
r=10;
shar._x=randon(550)-r; // r - радиус
shar._y=random(400)-r; Зачем это?
программа не работает
Зачем это?
так вам же надо было
изначальное размещение может меняться
................
программа не работает
Вы думаете я буду вам весь код писать?
и надо шарик нарисовать сначало.
А еще я не понял что именно вам надо! Чтобы шарик бегал по окошку и стукался об борта при запуске флешки?
Fenix2009
21.01.2009, 19:42
еще раз повторяю шар есть он нарисован
Добавлено через 1 минуту
я шар нарисовала он в клипе shar...программу написала, но она не работает, я пытаюсь понять почему
сейчас я вас все сделаю и кину исходник
Fenix2009
21.01.2009, 19:45
А еще я не понял что именно вам надо! Чтобы шарик бегал по окошку и стукался об борта при запуске флешки? да! но шар рисуется вручную а не программно
lexa2000lexa
21.01.2009, 19:49
вот посмотрите почитайте, должно помочь вам
http://silin.fatal.ru/#AS/balls
Fenix2009
22.01.2009, 12:14
cпасибо, но не поможет...новичку в этом не разобраться
lexa2000lexa
22.01.2009, 12:37
А вы как хотели, чтоб раз и все готово? Если что то конкретно не получаеться то спрашивайте, а если вы хотите чтоб кто то за вас, сделал то вы ошиблись разделом, раздел вакансий ниже.
Fenix2009
22.01.2009, 12:57
хорошо, спорим, фиг кто ответит, у меня летит шар врезается в стенку
изначально я задаю свиги: a=5; b=5
программа проверяет, равно ли значение границе поля или 0...если да, то в зависимости от места удара, присваивается новое значение сдвигов с плюсом или минусом....
так вот, как программно задать, чтоб это значение сдвига сохранялось до врезания в следующую стенку
lexa2000lexa
22.01.2009, 13:10
С такой постановкой вопроса действительно не кому не захочется отвечать вам,
а по сути, создаете переменную и меняете ее в моменты соударения ,что ту не понятно , вы ведь сами ответили на свой вопрос, или вас нужна реализация этого? Тогда примерно вот так это должно выгладить var переменная = начальное значение;
onEnterFrame = function(){
if(произошло столкновение){
переменная = нужное значение;
}
}
Fenix2009
22.01.2009, 14:39
ща все расскажу программно:
есть кнопка, которая запускает шар, ее код
on (release){
tsikl3.play();
}
потом сам tsikl3, который по нажатию доводит до края:
1 кадр
stop();
2 кадр
_root.ball._x=_root.ball._x+5
_root.ball._y=_root.ball._y-5 [CODE]
3 кадр
[CODE]if (_root.ball._x<550-_root.ball._height/2&&_root.ball._y>0+_root.ball._height/2)
gotoAndPlay(2);
else
_root.tsikl3new.Play();
и сам tsikl3new, который гоняет шарик по площадке
a=5; b=5;
if (_root.ball._x>=550-_root.ball._height/2)
anew=a*(-1);
if (_root.ball._y<=0+_root.ball._height/2)
bnew=b*1;
if (_root.ball._x<=0+_root.ball._height/2)
anew=a*1;
if (_root.ball._y>=400-_root.ball._height/2)
bnew=b*(-1)
_root.ball._x=_root.ball._x+anew;
_root.ball._y=_root.ball._y+bnew;
trace (anew);
trace (bnew);
так вот у меня гоняет только по х, по y какие-то проблемы
lexa2000lexa
22.01.2009, 14:57
скинте ваш исходник так будет проще.
Fenix2009
22.01.2009, 16:16
вот оно
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.