Люди добрые помогите кто может.... я по образованию художник... а нас пытаются в универе учить программировать. В обшем очень надо помогите...
Задача такова два шара находятся на противоположных сторонах поля (правый нижний и левый верхний углы) далее они должны двигаться на встречу друг другу в центр поля меняя прозрачность от 10% до 100... соприкоснувшись они должны уехать назад в свой угол снова понижая прозрачность до 10%. вся анимация есессно должна быть кодом
Не смейтесь пожалуйста! очень надо ! помогите плиз буду по гроб жизни благодарен. и если не влом откоментируйте код !
ОЧЕНЬ ПРОШУ ПОМОГИТЕ !
в setInterval() или onEnterFrame() меняешь свойства _x, _y, _alpha до определённого предела.
з.ы.не обсирайте меня пожалуйста
здесь так не выражаются
var r:Number = 30;
var angle:Number = 45;//угол под которым и происходит движение
var Go:Number = 3;
var rad:Number = Math.PI/180;
var control:Number = 1;
this.createEmptyMovieClip("circle", 1);
with (circle) {
createEmptyMovieClip("circle_mc", 1);
circle_mc.lineStyle(0, 0x000000);
circle_mc.beginFill(0x6600FF);
drawCircle(circle_mc, r, r, r);
}
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}
//
circle.circle_mc.onEnterFrame = function() {
if (control == 1) {
this._x += Math.cos(angle*rad)*Go;
this._y += Math.sin(angle*rad)*Go;
//
if (this._x>=(Stage.width/2)-((r*2)-8)) {
control = -control;
}
}
//
if (control == -1) {
this._x -= Math.cos(angle*rad)*Go;
this._y -= Math.sin(angle*rad)*Go;
//
if (this._x<=0) {
control = -control;
}
}
};
//////
//////
//////
//////
//////
//////
this.createEmptyMovieClip("circle1", 2);
with (circle1) {
createEmptyMovieClip("circle_mc", 1);
circle_mc.lineStyle(0, 0x000000);
circle_mc.beginFill(0x6600FF);
drawCircle(circle_mc, r, r, r);
}
function drawCircle(mc:MovieClip, x:Number, y:Number, r:Number):Void {
mc.moveTo(x+r, y);
mc.curveTo(r+x, Math.tan(Math.PI/8)*r+y, Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, r+y, x, r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, r+y, -Math.sin(Math.PI/4)*r+x, Math.sin(Math.PI/4)*r+y);
mc.curveTo(-r+x, Math.tan(Math.PI/8)*r+y, -r+x, y);
mc.curveTo(-r+x, -Math.tan(Math.PI/8)*r+y, -Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(-Math.tan(Math.PI/8)*r+x, -r+y, x, -r+y);
mc.curveTo(Math.tan(Math.PI/8)*r+x, -r+y, Math.sin(Math.PI/4)*r+x, -Math.sin(Math.PI/4)*r+y);
mc.curveTo(r+x, -Math.tan(Math.PI/8)*r+y, r+x, y);
}
//
circle1.circle_mc.onEnterFrame = function() {
if (control == 1) {
this._x += Math.cos(angle*rad)*Go;
this._y += Math.sin(angle*rad)*Go;
//
if (this._x>=(Stage.width/2)-((r*2)-8)) {
control = -control;
}
}
//
if (control == -1) {
this._x -= Math.cos(angle*rad)*Go;
this._y -= Math.sin(angle*rad)*Go;
//
if (this._x<=0) {
control = -control;
}
}
};
circle1._x = Stage.width;
circle1._y = Stage.height;
circle1._rotation = 180;
для кубического поля =) ну хотябы 550*550 :)
тихий ужас :wacko: :D
если пузыри не в кубическом поле то нужно подобрать угол движение "angle" под прямоугольник, если силен в матиматике то можно сделать програмно, насчет альфы сделать можно но тут все хитрей ведь неизвесны границы поля а если делать под универсальность нужно в проценты переводить что бы равномерно было
да и круг толком , нормальный , я програмно рисовать неумею =)
.Огромное спасибо.... Вот только программа сложновата. я сам тут за ночь кое что своял.... правда работает не до конца ... назрел другой вопрос если делать это не такими сложными математическими функциями к примеру чтобы шарик двигался от точки х1 до точки х2 с шагом n нну dx=(x2-x1)/n; типа того...
var xb1=0;
var yb1=0;
var xb2=180;
var yb2=180;
var n = 50;
var dxb=(xb2-xb1)/n;
var dyb=(yb2-yb1)/n;
var x=xb1;
var y=yb1;
_root.ball._x =xb1;
_root.ball._y =yb1;
// MovieClip ball;
_root.onEnterFrame = function ()
{
x+=dxb;
y+=dyb;
_root.ball._x =x;
_root.ball._y =y;
}
все очень примитивно но оно и должно быть примитивнее..... движение идет вот только ни как не могу остановить шарик по условию.. к примеру поле 400 на 400 шарик радиусом 20 чтобы доходя до точки 180 180 начинал движение назад ну второй соответсвенно на 220 220 .. тогда можно будет точно привязать альфу по тому же принципу... почемуто ни как не могу поставить условие по IF пробовал вариант через switch (step) но чтото я там запутался.
помогите плиз все должно быть как то проще... :( вот только не получается...
ЗЫ на унивверсальность можно забить.... мне бы так разобраться. Задачка то простая... вроде ... должна быть... у меня теперь вся проблема шарик от определенной точки назад заставить ехать.
MAMMOTH, для оформления своего кода, надо использовать теги .
Предлагаю заюзать программную анимация с помощью класса Tween, поймать момент столкновения и пустить твином с параметром Back, как идея? =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.