ActionScript - mouse on = rehuye clip

 
Vista:

mouse on = rehuye clip

Publicado por javier (1 intervención) el 20/02/2006 21:54:00
como hago para que un clip que tengo circular me rehuya cuando el mouse esta arriba en sentido contrario? esque no se como expresar que tiene que irse con el angulo alfa=-coseno*raizcuadrada(x2+y2)
donde x=/x_clip - x_ratón/(módulo) y y es lo mismo pero despejando en y, la formula y la teoría es simple pero no se pasar todo esto a action script
y que me haga colision con otro clip llamado bath que sería algo asi... creo... if clip !hit_bath nose.. please help!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Cómo hacer que un clip evite al mouse y colisione con otro clip

Publicado por Alejandro (369 intervenciones) el 21/06/2023 23:56:37
Para lograr que un clip circular evite al mouse y colisione con otro clip, puedes seguir los siguientes pasos:

1. Obtén las coordenadas del mouse:
1
2
var mouseX:Number = _root._xmouse;
var mouseY:Number = _root._ymouse;

2. Calcula las coordenadas relativas del clip circular en relación con el mouse:
1
2
var dx:Number = this._x - mouseX;
var dy:Number = this._y - mouseY;

3. Calcula el ángulo entre el clip circular y el mouse utilizando la función `Math.atan2`:
1
var angle:Number = Math.atan2(dy, dx);

4. Calcula la distancia entre el clip circular y el mouse:
1
var distance:Number = Math.sqrt(dx*dx + dy*dy);

5. Calcula las coordenadas a las que el clip circular debe dirigirse para evitar al mouse en sentido contrario:
1
2
var targetX:Number = this._x + Math.cos(angle) * distance;
var targetY:Number = this._y + Math.sin(angle) * distance;

6. Actualiza la posición del clip circular para que se mueva hacia las coordenadas calculadas:
1
2
this._x += (targetX - this._x) * velocidad;
this._y += (targetY - this._y) * velocidad;
Donde `velocidad` es una variable que determina la velocidad de movimiento del clip circular.

7. Para la detección de colisiones con otro clip llamado `bath`, puedes utilizar el siguiente código:
1
2
3
if (this.hitTest(_root.bath)) {
    // Realizar acciones cuando hay colisión
}

Recuerda reemplazar `this` con el nombre de tu clip circular y `bath` con el nombre de tu otro clip.

Con esta solución, el clip circular debería evitar el mouse y colisionar con el otro clip de manera adecuada. Puedes aplicar estos pasos y ajustar los valores según tus necesidades específicas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar