Foros del Web » Creando para Internet » Flash y Actionscript »

Problema con cambio de direccion con AS

Estas en el tema de Problema con cambio de direccion con AS en el foro de Flash y Actionscript en Foros del Web. Hola, esto debe ser una pavada pero ya probe todo y no se como solucionarlo... Estoy intentando hacer que un clip de pelicula de una ...
  #1 (permalink)  
Antiguo 03/10/2006, 12:52
 
Fecha de Ingreso: enero-2002
Ubicación: Mar del Plata
Mensajes: 243
Antigüedad: 22 años, 3 meses
Puntos: 0
Problema con cambio de direccion con AS

Hola, esto debe ser una pavada pero ya probe todo y no se como solucionarlo...
Estoy intentando hacer que un clip de pelicula de una pelotita (instancia "bola") que se mueve por AS a velocidad constante hacia otro clip con forma de bloque (instancia "block") invierta su direccion al tocarlo.
Para lograr esto hice lo siguiente:

En acciones del clip de pelicula de la pelotita de puse esto:

onClipEvent (enterFrame) {
this._x += 5;
if (this, hitTest(this._parent.block)) {
this._x -= 20;
}
}

Y funciona bien en el sentido que la pelota al llegar al bloque lo detecta y cambia de direccion pero claro, al no detectar mas el bloque inmediatamente despues vuelve a acercarse al bloque repitiendose lo anterior una y otra vez.

Como hago para que la pelotita una vez que toca el bloque se aleje y no vuelva hacia el bloque nuevamente ?



Gracias
  #2 (permalink)  
Antiguo 03/10/2006, 20:28
Avatar de bernethe  
Fecha de Ingreso: abril-2004
Ubicación: San José, Costa Rica
Mensajes: 384
Antigüedad: 20 años
Puntos: 2
Trata con este código:
Código:
onClipEvent (enterFrame) {
	if (_root.vel == undefined) {
		_root.vel=5
	}
	this._x += _root.vel;
	if (this.hitTest(this._parent.block)) {
		this._x -= 20;
		_root.vel=_root.vel*-1
	}
}
__________________
..::BERNETHE::..

Última edición por bernethe; 03/10/2006 a las 20:29 Razón: error en el código
  #3 (permalink)  
Antiguo 04/10/2006, 08:07
 
Fecha de Ingreso: enero-2002
Ubicación: Mar del Plata
Mensajes: 243
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias !! :)

Funciona muy bien....Me podrias explicar un poco lo que hiciste ?
Por ejemplo las siguientes lineas:

if (_root.vel == undefined) {
_root.vel=5}



_root.vel=_root.vel*-1

Lo que quiero entender es porque esto funciona....
Muchas gracias
  #4 (permalink)  
Antiguo 04/10/2006, 09:10
Avatar de bernethe  
Fecha de Ingreso: abril-2004
Ubicación: San José, Costa Rica
Mensajes: 384
Antigüedad: 20 años
Puntos: 2
Lo que hice fué meter el valor de los pixeles a desplazar en una variable que llamé _root.vel.

En estas lineas:
if (_root.vel == undefined) {
_root.vel=5;
}


lo que hice fué decirle que si _root.vel esta indefinida le diera un valor de 5

entonces this._x += _root.vel; va sumandole 5 px por cuadro a la posición de x de la bolita.

Finalmente cuando choca, multipliqué _root.vel por -1 para que me dé el mismo valor pero negativo, es decir, si el valor era 5, ahora será -5.

entonces this._x += _root.vel; ya ni hiría sumandole 5 px sino que va sumando -5px que sería una resta, o sea, ahora no hiría a la derecha sinó a la izquierda.

Espero quede claro
Salu2
__________________
..::BERNETHE::..
  #5 (permalink)  
Antiguo 04/10/2006, 09:28
 
Fecha de Ingreso: enero-2002
Ubicación: Mar del Plata
Mensajes: 243
Antigüedad: 22 años, 3 meses
Puntos: 0
Entiendo:)

Muchas Gracias Por Tu Ayuda !
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:05.