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

terbooter 02.11.2006 09:47

Вложений: 1
Ну я это представляю примерно вот так...

x1 и y1 это координаты точки
по которой проверяется столкновение с фоном.
Начало координат клипа clash в левом верхнем углу

Далее можно добавить сколько нужно точек

Zmitrek 03.11.2006 04:57

Цитата:

Сообщение от terbooter
Ну я это представляю примерно вот так...

x1 и y1 это координаты точки
по которой проверяется столкновение с фоном.
Начало координат клипа clash в левом верхнем углу

Далее можно добавить сколько нужно точек

ОООоо!!!! Беспредельная уважуха!!!
Чел ,ты спас меня !
Огромное спасибо!Спасибо за аттач (*.fla)

:drinks:

Zmitrek 03.11.2006 06:16

Еще один вопросик, можно ли заставить clash двигаться по диагонали, когда зажаты две клавиши (вверх и влево например)?

примерно с этим хендлером:

on(keyPress "<Left>")

...или подскажите альтернативный путь (биндить на отдельные клавиши эти действия не предлагать)

terbooter 03.11.2006 08:16

так вроде двигается мувик по диагонали при одновременно нажатых
двух кнопках

Zmitrek 03.11.2006 20:15

не-а, вот так пишу в clash и не получаеться

Код:

on(keyPress "<Left>") {
        this._x-=4;
}
on(keyPress "<Right>") {
        this._x+=4;
}

on(keyPress "<Up>") {
        this._y-=4;
}
on(keyPress "<Down>") {
        this._y+=4;
}


Хемуль 04.11.2006 02:01

Вложений: 1
2 Zmitrek:
Опрашивать клавиши на onEnterFrame.
Например, вставьте этот код просто в пустой кадр новой флешки:
Код:

var left:Number = Stage.width / 2;
var top:Number = Stage.height / 2;
var radius:Number = 40;
var speed:Number = 5;
var fillColor:Number = 0xff0000;
var fillAlpha:Number = 100;
var lineColor:Number = 0x000000;
var lineAlpha:Number = 100;
var lineWidth:Number = 1;
var circleClipName:String = "circle";
var circleClip:MovieClip = createCircleMovieClip(circleClipName, this, this, left, top, radius, fillColor, fillAlpha, lineColor, lineAlpha, lineWidth);

this.onEnterFrame = function()
{
        if (Key.isDown(Key.RIGHT))
        {
                circleClip._x += speed;
        }
        if (Key.isDown(Key.LEFT))
        {
                circleClip._x -= speed;
        }
        if (Key.isDown(Key.UP))
        {
                circleClip._y -= speed;
        }
        if (Key.isDown(Key.DOWN))
        {
                circleClip._y += speed;
        }               
}

function createCircleMovieClip(circleName:String, parentClip:MovieClip, parentClipDepth:Number, circleX:Number, circleY:Number, circleRadius:Number, circleFillColor:Number, circleFillAlpha:Number, circleLineColor:Number, circleLineAlpha:Number, circleLineWidth:Number):MovieClip
{
        var newCircleClip:MovieClip = parentClip.createEmptyMovieClip(circleName, parentClipDepth);
        newCircleClip._x = circleX - circleRadius;
        newCircleClip._y = circleY - circleRadius;
        newCircleClip.lineStyle(circleLineWidth, circleLineColor, circleLineAlpha);
        newCircleClip.beginFill(circleFillColor, circleFillAlpha);
        var tanPI8:Number = Math.tan(Math.PI / 8);
        var sinPI4:Number = Math.sin(Math.PI / 4);
        newCircleClip.moveTo(2 * circleRadius, circleRadius);
        newCircleClip.curveTo(2 * circleRadius, (tanPI8 + 1) * circleRadius, (sinPI4 + 1) * circleRadius, (sinPI4 + 1) * circleRadius);
        newCircleClip.curveTo((tanPI8 + 1) * circleRadius, 2 * circleRadius, circleRadius, 2 * circleRadius);
        newCircleClip.curveTo((1 - tanPI8) * circleRadius, 2 * circleRadius, (1 - sinPI4) * circleRadius, (sinPI4 + 1) * circleRadius);
        newCircleClip.curveTo(0, (tanPI8 + 1) * circleRadius, 0, circleRadius);
        newCircleClip.curveTo(0, (1 - tanPI8) * circleRadius, (1 - sinPI4) * circleRadius, (1 - sinPI4) * circleRadius);
        newCircleClip.curveTo((1 - tanPI8) * circleRadius, 0, circleRadius, 0);
        newCircleClip.curveTo((tanPI8 + 1) * circleRadius, 0, (sinPI4 + 1) * circleRadius, (1 - sinPI4) * circleRadius);
        newCircleClip.curveTo(2 * circleRadius, (1 - tanPI8) * circleRadius, 2 * circleRadius, circleRadius);       
        newCircleClip.endFill();
        return newCircleClip;
}

Исходник прикрепляю...

Zmitrek 04.11.2006 04:04

Ух ты! Здорово!
Огромное спасибо, Хемуль!
Очень выручил, рад до бесподобства, продолжаю созидание геймы!

РЕСПЕКТ! Форум и здешние обитатели - ПРОСТО СУПЕР!


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

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