Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблема со столкновением (http://www.flasher.ru/forum/showthread.php?t=206577)

Графиня 12.02.2014 21:07

Проблема со столкновением
 
Здравствуйте. Помогите, пожалуйста, найти и исправить ошибку. Делаю столкновение объектов (kolo и star).
При столкновении муви star по задумке должен стать невидимым или исчезнуть. Но видимо что-то я пишу неправильно:

Код AS3:

import flash.events.MouseEvent;
import flash.display.MovieClip;
 
var kolo:MovieClip;
var star:MovieClip;
 
if(kolo.hitTestObject(star)){
star.visible==false;
}

Сталкиваются они при нажатии на кнопочку, kolo поднимается, но ничего дальше не происходит.

Akopalipsis 12.02.2014 21:09

Код AS3:

star.visible==false;

Двойное и тройное равно, это логическое сравнение, нужно просто одно = равно.

Графиня 12.02.2014 21:10

Исправила. Пока что все равно не работает.

Добавлено через 45 секунд
У меня при нажатии на кнопочку это самое kolo играет со второго кадра анимацию, поднимаясь вверх. Может быть это как-то поможет понять мою проблему...

samana 12.02.2014 21:44

Вам нужно постоянно проверять столкновения (через enterFrame).

Графиня 12.02.2014 21:51

А как это записать?

samana 12.02.2014 21:54

Код AS3:

addEventListener(Event.ENTER_FRAME, ef);
function ef(e:Event):void
{
    if(kolo.hitTestObject(star)){
    star.visible=false;
    removeEventListener(Event.ENTER_FRAME, ef);
    }
}


Графиня 12.02.2014 22:29

А если их несколько, например, 20 или 100?

samana 12.02.2014 22:41

Тогда наверно через цикл делать проверки. Либо через hitTestPont. Лучше конечно увидеть воочию вашу задачу.

Графиня 12.02.2014 22:46

Задача простая - это элемент простенькой игры. Предмет подпрыгивает, звездочки плывут мимо, и если он со звездочкой соприкасается, она исчезает, плывет следующая звездочка.

samana 12.02.2014 22:51

Тогда все проплывающие звёздочки, вам нужно занести в массив. И в цикле постоянно проверять столкновения с этими звёздочками, и если столкновение произошло или звёздочка вышла за предел экрана (и больше не вернётся), то удалять эту звёздочку из массива и со сцены.


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

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