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

KirillWd 09.02.2012 23:22

Помогите с коллизией
 
Всем привет. Дело такое - я нахожу столкновение шара с линией, всё понятно, но как сделать так, чтобы шар не "проваливался" в линию, а был как бы на ней (это нужно для большой скорости).
чтобы вот так вот размещался:
http://photoshare.ru/data/79/79877/3/5frjz1-8j4.jpg

вот код (line - клип, в котором находятся точки A и В, координаты которых нам нужны, и circle - круг):
Код AS1/AS2:

circle.onEnterFrame = function() {
        line.a = {x:line.A._x, y:line.A._y};
        line.b = {x:line.B._x, y:line.B._y};
        line.localToGlobal(line.a); line.localToGlobal(line.b);
        globalToLocal(line.a); globalToLocal(line.b);
        line.angle1 = Math.atan2(line.b.y-line.a.y, line.b.x-line.a.x);
        line.angle2 = Math.atan2(this._y-line.a.y, this._x-line.a.x);
        line.angle = line.angle1-line.angle2;
        line.hypot = Math.sqrt((this._x-line.a.x)*(this._x-line.a.x)+(this._y-line.a.y)*(this._y-line.a.y));
        line.dist = line.hypot*Math.cos(line.angle);
        line.x = line.a.x+line.dist*Math.cos(line.angle1);
        line.y = line.a.y+line.dist*Math.sin(line.angle1);
        line.distance = Math.sqrt((this._x-line.x)*(this._x-line.x)+(this._y-line.y)*(this._y-line.y));
        if(line.distance<=this._width/2) {
        trace("col");
        /*И здесь надо что-то написать, но что?..*/
        }
}


Hauts 10.02.2012 00:04

http://animbook.mirmap.com/content/view/32/43/

KirillWd 12.02.2012 12:02

я понял, больше не надо. не знаю, почему я раньше не додумался? :)


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

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