This shows you the differences between the selected revision and the current
version of the page.
es:resource:script_to_prevent_actor_from_walking_thanks_to_3d_2d_conversion_imperfection 2010/03/19 14:08 | es:resource:script_to_prevent_actor_from_walking_thanks_to_3d_2d_conversion_imperfection 2010/03/19 18:53 current | ||
---|---|---|---|
Line 3: | Line 3: | ||
A veces puedes encontrarte con el siguiente problema. Tu actor se detiene el algún punto gracias a los puntos calientes. Pinchas otra vez en ese punto y el actor se da la vuelta misteriosamente. Esto es debido a la conversión del espacio 3D/2D, y el problema es que el actor piensa que tiene que caminar un pixel más allá. | A veces puedes encontrarte con el siguiente problema. Tu actor se detiene el algún punto gracias a los puntos calientes. Pinchas otra vez en ese punto y el actor se da la vuelta misteriosamente. Esto es debido a la conversión del espacio 3D/2D, y el problema es que el actor piensa que tiene que caminar un pixel más allá. | ||
- | Fix is simple: create a script which you attach to your actor. Inside put the following code: | + | La solución es sencilla: crea un script y vincúlalo al actor. Inserta este código dentro: |
<code script>#include "scripts/base.inc" | <code script>#include "scripts/base.inc" | ||
- | var C_DX = 2; // thresholds which define that the actor is on one place | + | var C_DX = 2; // límites que definen que el actor está en un lugar |
var C_DY = 2; | var C_DY = 2; | ||
- | function abs(X) //returns absolute value of the number | + | function abs(X) // devuelve el valor absoluto de un número |
{ | { | ||
if (X <0) X = X*-1; | if (X <0) X = X*-1; | ||
Line 19: | Line 19: | ||
{ | { | ||
- | if (abs(this.X - DestX) < C_DX && abs(this.Y - DestY) < C_DY) return; // Let's not spin by approx clicks. | + | if (abs(this.X - DestX) < C_DX && abs(this.Y - DestY) < C_DY) return; // No dejamos que gire por clics aproximados |
this.GoTo(DestX,DestY); | this.GoTo(DestX,DestY); | ||
}</code> | }</code> |