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

lorddexon 09.10.2009 00:38

Как сделать препятствие?
 
В общем, во флэше я новичок) Подскажите, как сделать препятствие, мол когда объект соприкасается с другим объектом- стеной например, он останавливался? Я пробовал хитТестом, но че-то логики не хватает додумать.

alex_195 09.10.2009 03:30

//ball_mc - движущийся объект, st_mc - стена
ball_mc.onEnterFrame = function() {
ball_mc._x += ball_mc._x*0.1;
if(ball_mc.hitTest(st_mc)) {
ball_mc._x = st_mc._x - 15;
trace("мувики пересеклись");
}
}

lorddexon 09.10.2009 14:54

не пашет.( У меня шар проваливается медленно сквозь стенку, будто она из песка

mooncar 09.10.2009 15:35

http://www.flasher.ru/forum/showthread.php?t=130103
http://www.flasher.ru/forum/showthre...hlight=hittest
http://www.freeactionscript.com/2009...ion-detection/

lorddexon 09.10.2009 16:17

это немного не то. Мне надо, чтобы стена блокировала дальнейшее смещение шара по координате х/у при соприкосновении с шаром. мол
Код AS1/AS2:

if (_root.block.hitTest(this))
{
вот тут я думал надо написать решение) а придумать его не могу
}


mooncar 09.10.2009 16:21

Код оформляйте тегами AS - смотреть неоформленный код никто не будет.

frops 09.10.2009 17:10

Тебе нужно это делать при помощи определения координат. Грубо говоря:

Код AS1/AS2:

var player_mc:MovieClip; //Игрок (шарик)
var wall_mc:MovieClip; //Стена
if((player_mc._x+player_mc._width)>=wall_mc._x)
{
  trace("Шарик попал в стену");
}

Так же и дальше, если стена слева, то:
Код AS1/AS2:

if(player_mc._x<=wall_mc._x)
{
  trace("Шарик попал в стену");
}

Аналогично с Y координатами. Если стена наверху

Добавлено через 2 минуты
Можно ожидать всех случаев если объект посередине, и грубо говоря квадратный или прямоугольный

Код AS1/AS2:

var player_mc:MovieClip; //Игрок (шарик)
var wall_mc:MovieClip; //Стена
if((player_mc._x+player_mc._width)>=wall_mc._x)
{
  trace("Шарик попал в стену");
}
if(player_mc._x<=wall_mx._x)
{
  trace("Шарик попал в стену");
}
if((player_mc._y+player_mc._height)>=wall_mc._y)
{
  trace("Шарик попал в стену");
}
if(player_mc._y<=wall_mc._y)
{
  trace("Шарик попал в стену");
}


lorddexon 09.10.2009 17:25

спасибо, это понятно. То есть при соприкосновении выводится надпись. А как сделать, чтобы при соприкосновении стена останавливала движения шара?

alex_195 11.10.2009 01:31

lorddexon мой тебе совет... Я месяца четыре назад был таким как ты. Скачай книги по AS2 и почитай - почувствуешь себя другим человеком и не будешь задавать таких вопросов...

lorddexon 12.10.2009 00:02

а можешь автора книги назвать? а то их полно) но там либо оч. поверхностно, либо непонятно))


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

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