|
SWiSH Forum Forum użytkowników programów SWiSH |
|
Skrypty do programu SWiSH2 i SWISHmax - Konwersja skryptu
Gyver - Sob 26 Lut, 2011 09:08 Temat postu: Konwersja skryptu Witam,
Znalazłem bardzo ciekawą animację zrobioną w CS3 i próbowałem zrobić coś podobnego w SM, ale niestety bez skutku :/ (Podgląd animacji z CS3 w załączniku)
Skrypt w CS3 wygląda tak:
Kod: |
//Vars
m = 1;
inercia = 180;
inx = _x;
iny = _y;
r = _rotation;
min = 1;
originx = _x;
originy = _y;
originr = _rotation;
//friccion
b = 1.2;
//inicializando
vr = 0;
torque = 0;
vx = 0;
vy = 0;
modo = 2;
//
onEnterFrame = function () {
if (modo != 0) {
if (modo == 1) {
if (modo_time == 1) {
modo_time = 0;
mxx = _root._xmouse;
my = _root._ymouse;
mx0 = mxx;
my0 = my;
dmx = mxx-mx0;
dmy = my-my0;
} else {
mxx = (_root._xmouse+mxx)/2;
my = (_root._ymouse+my)/2;
dmx = mxx-mx0;
dmy = my-my0;
mx0 = mxx;
my0 = my;
}
fx = (dmx-vx)*m;
fy = (dmy-vy)*m;
ldx = mxx-inx;
ldy = my-iny;
if (fx == 0) {
mlength = ldx;
mforce = fy;
torque = mforce*mlength;
} else if (fy == 0) {
mlength = ldy;
mforce = fx;
torque = -(mforce)*mlength;
} else {
k = fy/fx;
kx = (-(k)*k*ldx+k*ldy)/(-(k)*k-1);
ky = k*(kx-ldx)+ldy;
mlength = Math.sqrt(kx*kx+ky*ky);
mforce = Math.sqrt(fx*fx+fy*fy);
if (fx*ky>0) {
torque = -(mforce)*mlength;
} else {
torque = mforce*mlength;
}
}
vx = dmx;
vy = dmy;
inx += vx;
iny += vy;
vr = vr-torque/inercia;
ldx = mxx-inx;
ldy = my-iny;
var cos;
var sin;
cos = Math.cos(vr/180*Math.PI);
sin = Math.sin(vr/180*Math.PI);
addx = ldx*cos+ldy*sin-ldx;
addy = -(ldx)*sin+ldy*cos-ldy;
inx += -(addx);
iny += -(addy);
} else if (modo == 2) {
if (modo_time == 1) {
modo_time = 0;
vx = vx-(addx);
vy = vy-(addy);
}
torque = 0;
addx = 0;
addy = 0;
inx += vx;
iny += vy;
}
//rotacion
r -= vr;
this._rotation = r;
}
if (inx<0) {
this.inx=0;
}
if (inx>Stage.width) {
this.inx=Stage.width;
}
if (iny>Stage.height) {
this.iny=Stage.height;
}
if (iny<0) {
this.iny=0;
}
//posicion
this._x = inx;
this._y = iny;
vx = vx/b;
vy = vy/b;
vr = vr/b;
};
stop();
|
Kod: |
on (press) {
modo = 1;
modo_time = 1;
}
on (release, releaseOutside) {
modo = 2;
modo_time = 1;
}
|
Może ktoś wie jak przerobić ten skrypt na potrzeby SM? Albo w inny sposób uzyskać taki efekt?
|
|