Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema "undefined" (actionscript Avanzado)

Iniciado por J_F_NASH, 09 de Septiembre de 2004, 08:39:05 PM

« anterior - próximo »

J_F_NASH

 En el siguiente código "distancia_txt.text" me tiene que mostrar la distancia entre 2 puntos, pero solo me muestra un "UNDEFINED" ¿alguien puede decirme que hago mal?

var x:Number;
var y:Number;
var distancia:Number;
onEnterFrame = function ()
{
cuadrado1_mc._x = 0;
cuadrado1_mc._y = 0;
// startDrag(cuadrado1_mc);
cuadrado2_mc._x = 130;
cuadrado2_mc._y = 130;
// Colision:
x = cuadrado2_mc._x - cuadrado1_mc._x;
y = cuadrado2_mc._y - cuadrado1_mc._y;
distancia = math.round(math.sqrt(x * x + y * y));
distancia_txt.text = distancia;
};




S2.

sés

 Prueba con:
distancia = Math.round( Math.sqrt(x * x + y * y));

Recuerda que AS 2.0 es sensible a mayúsculas/minúsculas.

P.D.: ¿Por qué dices "Actionscript avanzado"?
Soy indeciso... ¿o no?

J_F_NASH

 Que fallo mas tonto, por dios  O_O
Muchas gracias.

Lo de ActionScript avanzado... nose, me hace sentir mas macho :rolleyes: . Quiero decir, que para mi es avanzado dado mis conocimientos de programación.

Una duda mas sés:
¿Cómo declaro una constante?


S2.

sés

 Que yo sepa, las constantes en Flash no existen.
Soy indeciso... ¿o no?

J_F_NASH

 Una duda mas.
¿Cual es la diferencia, al declarar una variable, en estos 2 casos?:

var variable1;
variable 2;

Es decir, ¿en que casos no se utiliza var?, no creo que los resultados sean los mismos.





S2.

sés

 Supongo que te refieres a la diferencia entre
var a = 1;
y
a = 1;

Lo primero declara la variable 'a' como local, teniendo solo validez en el contexto actual (función, if, for...).

El segundo caso (sin poner la mano en el fuego, que luego hace pupa), creo que la declara global. En Javascript juraría que es así, y en Flash creo que también, pero vamos... eso lo puedes probar fácilmente.

Estoy en casa y no tengo el Flash instalado, solo lo uso en el curro por obligación (asco), pero si tienes interés lo puedo probar.
Soy indeciso... ¿o no?

J_F_NASH

 Nada hombre, gracias de nuevo. Es tal y como comentas.




S2.

J_F_NASH

 Bueno, me acabo de meter en un fregao y tengo un "pequeño" problema con las colisiones
Trato de hacer un mini-juego de plataformas. Abajo dejo el código.

La Situación:
1)Tengo dos 2 clips de película "Player_mc" y Escenario_mc".
2)Al caer desde una altura "Player_mc" debe pararse cuando detecte cualquier pixel de "Escenario_mc". Y así ocurre.
3)EL PROBLEMA es que la posición de parada no coincide de forma precisa, siempre se pasa unos píxeles dando la sensación de que "Player_mc" se hunde en el suelo. Entiendo por que ocurre pero no se resolverlo.
¿Cual es la forma mas habitual de hacer este tipo de juegos en Flash?


grav = 0;
//MitadAnchoPlayer = Player_mc._width/2;
AltoPlayer = Player_mc._height;
function MovePlayer(player) {
fall = true;
//Teclado:
if (Key.isDown(Key.RIGHT)) {
 player._x += vel;
}
if (Key.isDown(Key.LEFT)) {
 player._x -= vel;
}
if (Key.isDown(Key.SPACE) && !jumping) {
 jumpingVel = 10;
 jumping = true;
}
//Salto:
if (jumping == true) {
 fall = false;
 jumpingVel -= vel;
 if (jumpingVel<=-10) {
  jumpingVel = -10;
 }
 player._y -= jumpingVel;
}
//Colisión:
if (Escenario_mc.hitTest(player._x, player._y, true)) {
 player._y -=1;
 jumping=false;
 fall = false;
 vel = 1;
 grav = 0;
}
//Caida
if (fall) {
 velCaida = 0.5;
 grav += velCaida;
 if (grav>=14) {
  grav = 14;
 }
 player._y += grav;
}
}
//MAIN
onEnterFrame = function () {
// datos_txt.text =
MovePlayer(Player_mc);
};




S2.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.