Форум 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=36041)

Bipe® 20.08.2002 23:40

Преграда
 
Вложений: 1
И так начну с приветствия:
Здрасте!
Продолжим тему,
Дело вот в чём я хочу сделать(точнее уже сделал,но осталося доделать)!
Суть вот в чём:
Есть объект и есть стена
в ActionScrip'te пишу чтобы обьект двигался
onClipEvent (load) {
maxspeed=15;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
_x -= speed;
}
if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
_ += speed;
НУ вот едем дальше!

-
Когда мой объект едет вправо (именно в этом направлении я поставил стенку) и когда он попадает в эту стенку (обьект(поподает)) ну вот когда попадает в стенку чтобы был взрыв!
короче еду а впереди стена и я в эту стенку и Бах!
Ну и тд
Как так сделать?Если кто-нибудь знает подскажите плз!

Palag 21.08.2002 01:42

Добавь в свой объект несколько дополнительных кадров с взрывом и при столкновении your-object.gotoAndPlay("взрыв")
Должно работать!

yurail 21.08.2002 01:47

est takoe sobitie - mc.hitTest(MC2);

vot ego i usai....

Bipe® 21.08.2002 13:12

Вы меня не поняли!
Я делаю обьект и стену!
Виду этот обьект к стене но он её просто проходит насквозь(как будто там ничего и нету)А мне надо чтобы он при столкновении с этой стеной взрывался!

Bipe® 21.08.2002 13:13

Цитата:

Оригинал написал(а) yurail
est takoe sobitie - mc.hitTest(MC2);

vot ego i usai....

Я таких событий вообще не знаю можеть просветишь?

Egoritch 21.08.2002 13:23

Ну так почитай хелп по .hitTest

и сразу будешь знать.

Не, ты так порадовал тут всю нашу контору описанием своей проблемы (некоторые ржали вголос, особенно от картинки), что расскажу.

Ентот метод возвращает - пересекается ли один объект с другим или нет.

например, если mc1 пересекается с mc2, то

mc1.hitTest(mc2) вернёт значение true;
то есть

if (mc1.hitTest(mc2)){
trace("Пересекается!");
}

Читай хелп.

LostWarrior 21.08.2002 13:42

2 yurail:

hitTest не событие а метод. Надеюсь ты понимаеш разницу и это просто опечатка.

2 Bipe®:

Egoritch правильно написал. Вставляеш это в свой onEnterFrame и вуаля...

Papa Karlo 21.08.2002 16:25

2 yurail:
век живи, век учись ;) :) :)

Bipe® 22.08.2002 05:39

Ну так дайте мне ссылку на этот ХЕЛП!
надеюсь там будет всё подробно написанно!

freez 22.08.2002 07:55

Вложений: 1
надеюсь разберешься

LostWarrior 22.08.2002 11:04

C:\Program Files\Macromedia\Flash MX\Help\Flash\ContextHelp_asd.htm

DeliMIter 22.08.2002 13:01

Хелп находится на первой сцене, вызывается кнопкой F1.

Bipe® 23.08.2002 00:25

про хелп забыли
скажите просто на словах как так сделать
если конечно знаете если не знаите то я вас пойму куда же вам такое сложное знать??
просто напишите мне весь actionscript а не отрывки!

Bipe® 23.08.2002 03:47

Мдяяяяяяяяя.........
Как я вижу тут никто незнает ответа на мой вопрос?

Bipe® 23.08.2002 03:49

А вопрос то кстати несложный!
Но к сожалению я на него не знаю ответа потому что я только учюся! Но правда я знал как это делать но я давно этого не делал и вот решил сделать и вдруг бац!

LostWarrior 23.08.2002 10:56

Тебе же все написали :confused:

Если до сих пор не понял, повторяю:

Код:

onClipEvent (load) {
maxspeed=15;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
_x -= speed;
}
if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
_ += speed;
}
if (mc1.hitTest(mc2)){
trace("Пересекается!");
}
 
}

где mc1 - твой объект, а mc2 - стена.

infinity 23.08.2002 11:24

1
 
по моему biper'у просто лень :o :D :D :D

Bipe® 24.08.2002 03:52

Спасибо что всё написал
Только что значит
trace("Пересекается!");

Bipe® 24.08.2002 03:53

Ну вы не подумайте что я глупый просто для меня это почти впервые
Вот к примеру откуда вы всё это узнали????

Bipe® 24.08.2002 03:56

[list=1]
[*]Вот когда я буду всё знать[*]Я к вам с такими дурацкими вопросами не полезу[*]Я буду всё делать самостоятельно а сюда исходники отправлять[*]И всё в этом духе
[/list=1]

Bipe® 24.08.2002 03:58

Но покачто я не в состаянии чему нить научиться неоткуда брать инфу!
Код:

Про ActionScript

Bipe® 24.08.2002 04:00

Толлко и остаёться надеяться на вас,вас же 16000 человек зарегестрированно!
Вот я у вас и спрашиваю!

Pietrovich 24.08.2002 23:32

можно за руским хелпом на www.vmstudio.com сходить...
а потом сюда с вопросами...

navidim 25.08.2002 00:00

ну вот так...
 
делай в своем обьекте несколько кадров, например так в первом сам обьект и stop() а во втором взрыв и stop() (если взрыв длиннее одного кадра делай например со второго до пятого, и т.д.) Назови стену Instance Name: stena
а в коде объекта пиши:
onClipEvent (enterFrame) {
if (this.hitTest (_root.stena)) {
this.gotoAndPlay(2);
}
}
Причем _root только в случае если твоя стена и обьект на главной линейке!

Bipe® 25.08.2002 00:31

Так спасибо
navidim'у
И Petrovich'у
За предоставленные материалы!
Если у меня возникнут вопросы то я продолжу это тему!

Bipe® 25.08.2002 02:15

Я пробывал сделать по методу
navadim'a
Всё работает
Обьект взрываеться только он может двигаться за стенку
А мне надо так что бы обьект врезался в стену и всё дальше неё не ехал
А у меня получилося так обьект врезаеться в стену и едет дальше за неё!

Bipe® 25.08.2002 02:17

Вот как это исправить??

navidim 25.08.2002 02:44

делай так...
 
это смотря как ты объект двигаешь. Если с помощью Motion Tweening то просто сделай стоп в нужном кадре, а если програмно то тогда лично я делаю так:
onClipEvent (load) {
speed=5;
}
//задаем начальную скорость движения обьекта
onClipEvent (enterFrame) {
this._x+=speed; //изменяем координату по скорости
if (this.hitTest (_root.stena)) {
speed=0; //скорость равна нулю значит объект стоит на месте
this.gotoAndPlay(2);
}
}
Прописываешь этот код своему объекту, и всё класс!!! :D

Pietrovich 25.08.2002 17:08

Бипер. ты б исходники выложил, сразу стало бы ясно где проблема...
а то вслепую советовать...

а так, наощупь...
если пролетают сквозь стену, сделай стенутолстой (но прозрачной) или увеличь фреймРэйт так чтобы при той скорости. с которой летит твоя бодяга, она не успевала пролететь стеу насквозь... (если привязываешь к ентерФрейм)
, а если пишешь в МХе то тогда попробуй привязаться к сетИнтервал... (типа риалтам и все такое...)


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

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