Comunidad de diseño web y desarrollo en internet online

Efecto de rebote y desaceleracion

Citar            
MensajeEscrito el 12 Jun 2007 12:53 pm
Hola,

estoy intentando hacer un ejercicio que consiste en que 2 pelotas reboten en un escenario y entre si y que cada vez que lo hagan vayan desacelerando hasta que se queden paradas, pero no lo acabo de conseguir. Dejo el código para si pueden me echen una mano y el ejercicio Gracias.


[code]bola1.onRelease = function(){
velocidad_bola1X = 5
velocidad_bola2X = 5
velocidad_bola1Y = 5
velocidad_bola2Y = 5

desacelerar = 0.7
onEnterFrame = function(){
bola1._x += velocidad_bola1X
bola2._x += velocidad_bola2X
bola1._y += velocidad_bola1Y
bola2._y += velocidad_bola2Y

if(bola1._x >=(550-bola1._width/2)){
bola1._x = 550-bola1._width/2

velocidad_bola1X *= -desacelerar
}
else if(bola1._x <=(0+bola1._width/2)){
bola1._x = 0+bola1._width/2

velocidad_bola1X *= -desacelerar
}
if(bola1._y<=(0+bola1._width/2)){
bola1._y = 0+bola1._width/2
velocidad_bola1Y *= -desacelerar
}
else if(bola1._y >=(400-bola1._width/2)){
bola1._y = 400-bola1._width/2

velocidad_bola1Y *= -desacelerar
}



if(bola2._x >=(550-bola2._width/2)){
bola2._x = 550-bola2._width/2

velocidad_bola2X *= -desacelerar
}
else if(bola2._x <=(0+bola2._width/2)){
bola2._x = 0+bola2._width/2

velocidad_bola2X *= -desacelerar
}
if(bola2._y<=(0+bola2._width/2)){
bola2._y = 0+bola2._width/2
velocidad_bola2Y *= -desacelerar
}
else if(bola2._y >=(400-bola2._width/2)){
bola2._y = 400-bola2._width/2

velocidad_bola2Y *= -desacelerar
}

colisionX = bola1.hitTest(bola2)
if(colisionX == true){
velocidad_bola1X *=-0.8
velocidad_bola2X *=-0.8
velocidad_bola1Y *=0.8
velocidad_bola2Y *=0.8
}



}
}[/flash]

Por osulivan

52 de clabLevel



 

Diseño web madrid

safari
Citar            
MensajeEscrito el 12 Jun 2007 02:09 pm
Yo hize un juego el kual utilizaba a una pelota rebotando por el escenario, solo ke yo utilizaba gravedad y friccion, lo mas probable es ke te sirva, haz la prueba. . .
. . . Expliko; kreas tus dos pelotas, a las kuales les agregas este script:

Código :

onClipEvent(load){
   //- >M@U<
   //- Variables iniciales (velocidades,limites y konstantes)
   xSpeed= 5, ySpeed= 0;
 friction= 0.99, gravity= 0.09, limit= 5;}
onClipEvent(enterFrame){if(_name== "Ball1"){
   //- Esta es la parte vital de los rebotes
   _x+= xSpeed, _y+= ySpeed, _rotation+= xSpeed*3;
   //- Pero esta otra se enkarga de la gravedad y friccion
   if(Math.abs(1)){xSpeed*= friction, ySpeed+= gravity;}
    //- Todas estas lineas son simples limites, tomando en kuenta ke la pelota
   //- NOTA: estan ajustados a un Stage ke mide 350x250 px...
   //-       ... y ke la pelota mide 30x30 px
   if(xSpeed> limit){xSpeed= limit;}else if(xSpeed< -limit){xSpeed= -limit;}
   if(ySpeed> limit){ySpeed= limit;}else if(ySpeed< -limit){ySpeed= -limit;}
  if(_x> 335){_x= 335, xSpeed*= -1;}  else if(_x< 15){_x= 15, xSpeed*= -1;}
  if(_y> 235){_y= 235, ySpeed*=- 0.8;}else if(_y< 15){_y= 15, ySpeed+= gravity*2;}
    //- Y si llega a chokar kon la otra pelota...
   //- NOTA: a la otra pelota deberas ponerle; ...(_root.Ball1)...
  if(this.hitTest(_root.Ball2)){xSpeed*= -0.9, ySpeed*= -0.9;}}}


Perdona el amontone, pero esta muy sencillo. . . Ojala te sirva de algo. . .
:lol:

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

msie
Citar            
MensajeEscrito el 12 Jun 2007 02:11 pm
. . .Te pondria el ".fla" o un ".swf" para darme a entender mejor, pero aun no se komo. . .
:lol:

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

msie
Citar            
MensajeEscrito el 12 Jun 2007 02:21 pm
Gracias por responder, pero lo que quiero es que parezca como un billar y no tenga efecto de gravedad, y que rebote 2 o 3 veces y se pare y no se quede pegadas las pelotas cuando entran en contacto por 3 o 4 vez

Por osulivan

52 de clabLevel



 

Diseño web madrid

safari
Citar            
MensajeEscrito el 12 Jun 2007 02:23 pm
A ora. . . ya te entendi, diskulpa las molestias . . .
:lol:

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

msie
Citar            
MensajeEscrito el 12 Jun 2007 02:41 pm
Batallo para kedarme sin tratar, por lo ke;
Ya komo ultimo intento (o molestia), solo kitale las lineas de gravedad y friccion. Algo asi. . .

Código :

onClipEvent(load){xSpeed= 5, ySpeed= 0, limit= 5;}
onClipEvent(enterFrame){if(_name== "Ball1"){
   _x+= xSpeed, _y+= ySpeed;
   if(xSpeed> limit){xSpeed= limit;}else if(xSpeed< -limit){xSpeed= -limit;}
   if(ySpeed> limit){ySpeed= limit;}else if(ySpeed< -limit){ySpeed= -limit;}
  if(_x> 335){_x= 335, xSpeed*= -0.7;}else if(_x< 15){_x= 15, xSpeed*= -0.7;}
  if(_y> 235){_y= 235, ySpeed*=- 0.7;}else if(_y< 15){_y= 15, ySpeed*= -0.7;}
  if(Math.abs(1)){xSpeed/= 1.01, xSpeed/= 1.01}
  if(this.hitTest(_root.Ball2)){
   xSpeed+= (_root.Ball2.xSpeed)*5, _x+= (_root.Ball2.xSpeed)*5;
   ySpeed+= (_root.Ball2.ySpeed)*5, _y+= (_root.Ball2.ySpeed)*5;}}}

Rekuerda en el otro clip, cambiar los "_root.Ball2" por "_root.Ball1", intentalo keda muy solido el efecto (ahora si komo billar), y diskulpa otra vez. . .
:crap:

Por M@U

BOFH

6210 de clabLevel

34 tutoriales
5 articulos

Genero:Masculino   Héroes Bastard Operators From Hell Editores

Bate jubilado de Cristalab

msie
Citar            
MensajeEscrito el 12 Jun 2007 02:56 pm
Gracias, este tiene mejor pinta, voy a estudiarlo. Muchas gracias!

Por osulivan

52 de clabLevel



 

Diseño web madrid

safari

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.