Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   работа с объектами (http://www.flasher.ru/forum/showthread.php?t=65533)

xaxa 12.06.2005 12:30

работа с объектами
 
Мне нужно сделать небольший цикл, а в экшн скрипте я почти не разбираюсь(( Времени учиться нет, ибо послезавтра нужно сдать. Так что, если поможете, буду очень признателен.
Итак, мне нужно создать небольший цикл.
На поле длинной, допустим, 100 на 100 нужно, чтобы через каждые 5 секунд в случайном месте появлялся случайный объект(например boomb или ball) и исчезал
а)после того, как координаты "beetle" совпадали с ним.
б) по прошествии 5 секунд.
Управление "Beetle" я уже полностью настроил, остался только экшн скрипт)

Nirth 12.06.2005 12:39

чтоб не получилось казусов покажи что из себя представляет жук, вообще лушче исходник покажи
P.s. о чем же ты раньше думал

Ostgur 12.06.2005 13:44

onCLipEvent(enterframe){
if(_root.beetle.hitTest("_root.ball+i")){
твои действия по удалению или ещё чему-нибудь
}
}

Nirth 12.06.2005 13:50

Брось каку, хватит юзать onClipEvent он устаревший с 6 версии.

Ostgur 12.06.2005 13:58

А чё мне так юзать что-ли, вешать в майн фрейм:
beetle.onEnterFrame{};

Так предлагаешь? ;)

Nirth 12.06.2005 14:07

тут вообще без онинтерфрейма можно обойтись

Ostgur 12.06.2005 14:11

можно по-подробнее, а то я тут заел на дизайнах, что-то вообще от программинга отстал!

Nirth 12.06.2005 14:30

Смотри, жучок двигаеться должен не по пикселю а по клеткам(то что двигаеться плавно это одно, но результат то ясен, мы двигаем по клеткам) тоесть координаты _x и _y нам вовсе не нужны, нам важны координаты сетки (назовем их X и Y чтобы отличались) тоесть нажимая на стрелку вправо, он двигаеться скажем на 20 пикселей(чтоб дойти до другой клетки) и сдвигаеться на X + 1 (на одну клетку в право) тоесть проверку можно осуществлять непосредственно перед движением.

xaxa 12.06.2005 17:10

Жучок дигвается по полю со скорстью 10 при нажатии стрелок на клавиатуре. Давайте по порядку))
1) как сделать генерацию случайного объекта в случайном месте каждые 5 секунд, например из объектов "car", "frog" и "girl" c координатами х(0-100), y(0-100)
2) как сделать, чтобы этот объект исчезал:
а) по прошествии 10 секунд
б) при совпадении координатов жука с ним
3) нужно, чтобы всё это выполнялось циклично, скажем, 100 секунд.

Nirth 12.06.2005 17:21

дубль два дай исходник

xaxa 12.06.2005 20:51

с работы приду - выложу.

silin 12.06.2005 23:57

Вложений: 1
Цитата:

Сообщение от xaxa
Жучок дигвается по полю со скорстью 10 при нажатии стрелок на клавиатуре. Давайте по порядку))
1) как сделать генерацию случайного объекта в случайном месте каждые 5 секунд, например из объектов "car", "frog" и "girl" c координатами х(0-100), y(0-100)
2) как сделать, чтобы этот объект исчезал:
а) по прошествии 10 секунд
б) при совпадении координатов жука с ним
3) нужно, чтобы всё это выполнялось циклично, скажем, 100 секунд.

1)
var l=['frog','girl','car'],cnt=0;
attachMovie(l[random(l.length)],cnt,cnt++,{_x:random(100),_y:random(100)})
2)
a)var id=setInterval(function(){mc.removeMovieClip();clearInterval(id)},10000)
b)mc.onEnterFrame=function(){if(this.hitTest(beetle))this.removeMovieClip();}

3)непонятно что должно повторяться через 100 с, (если и так все повторяется)
все в вместе в аттаче

xaxa 13.06.2005 18:33

Всё, всё работает, огромное спасибо))
Ещё один маленький вопрос) Чтобы пр навдении на эти же самые объекты число в textarea1 увеличивалось на 10. И ещё:
beetle.onEnterFrame=function(){
var d=0,r=0;
d+=Key.isDown(Key.UP);
d-=Key.isDown(Key.DOWN);
r-=s*Key.isDown(Key.LEFT);
r+=s*Key.isDown(Key.RIGHT);
this._rotation+=r;
this._x+=s*d*Math.sin(Math.PI*this._rotation/180);
this._y-=s*d*Math.cos(Math.PI*this._rotation/180);

}
Нужно, чтобы жук вращался не относительно экрана, а относительно самого себя. То есть: если жук напрвален "головой" вниз, то при нажатии стрелки вперёд он двигался вниз экрана, при нажатии стрело вперёд+вправо в нижний левый угол экрана... Помогите, пожалуйста)

silin 13.06.2005 19:09

>>Чтобы пр навдении на эти же самые объекты число в textarea1 увеличивалось на 10
mc.onRollOver=function(){
tablo+=10;//tablo - переменная текстфилда
}
>>Нужно, чтобы жук вращался не относительно экрана, а относительно самого себя. То есть: если жук напрвален "головой" вниз, то при нажатии стрелки вперёд он двигался вниз экрана, при нажатии стрело вперёд+вправо в нижний левый угол экрана...

как будем угадывать когда вращать а когда двигать?
он сейчас и движется в направлении головы по стрелкам вверх/вниз, по стрелкам влево/вправо вращается..
кстати, когда получится вращать относительно себя,не вращая оносительно экрана не забудь показать :D
впрочем, может такой вариант подойдет
..
r-=d*s*Key.isDown(Key.LEFT);
r+=d*s*Key.isDown(Key.RIGHT);
..

xaxa 13.06.2005 19:38

как будем угадывать?
стрелки влево и вправо должны являтся не двигательными, а только повортными... то есть, при нажатии "вправо" он будет тупо крутиться вокруг своей оси. заранее спасибо))

silin 13.06.2005 20:17

я окончательно перестал понимать чего надо: изначальный вариант и был таким

Nirth 13.06.2005 20:24

хаха приатачь сюда то что у тебя есть
и опиши все сразу подробно...

xaxa 13.06.2005 20:37

Так. Я выпил тонну кофе и понял, что то, что приаттачил silin было идеальным вариантом) Спасибо)

gaploid 14.06.2005 14:37

Цитата:

Брось каку, хватит юзать onClipEvent он устаревший с 6 версии.
а чего есть на замену?

Nirth 14.06.2005 14:48

события, в хелпе найдешь=)


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

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