Comunidad de diseño web y desarrollo en internet online

tengo un problema sobre SCORE en un juego de plataforma

Citar            
MensajeEscrito el 07 Jul 2009 06:19 pm
veran es que es un juego de plataforma tipo scrolling ... osea que el bacground se mueve y el personaje se queda en medio, bueno mi problema es que el SCORE o puntaje sale muy bien solo que se mueve con el fondo :roll:
me podrian decir como hacer que se quede en la pantalla y que no se mueva con el fondo?

aqui el codigo:
stop();

//variables que influyen
///en el movimiento
var velLateral:Number = 3;
var friccion:Number = .8;
var friccionAire:Number = .8;
var gravedad:Number = -3;
var tiempoSalto:Number = 4;
var salto:Number = 30/tiempoSalto;
var velMaxima:Number = 20;

//puntos de colisiónes
///estos se pueden cambiar para que
///queden de acuerdo a la medida que quieras
var puntoIzq:Number = -15;
var puntoDer:Number = 15;
var puntoBajo:Number = 14;
var puntoArriba:Number = -25;

//corre funcion que checa las teclas presionadas
onEnterFrame = manejarPersonaje;

//da valores iniciales al personaje
inicializarPersonaje(mcPlayer1);

//corre funcion que mueve al personaje
///dependiendo de las variables que tenga
mcPlayer1.onEnterFrame = aplicarMovimiento;

function inicializarPersonaje(mc:MovieClip):Void{
if(mc.dx==undefined){
mc.dx = 0;//vel x
mc.dy = 0;//vel y
mc.saltando = true;
mc.empezoSalto=0;
}
mc.friccion = friccion;
mc.vel = velLateral;
mc.salto = salto;
}

function manejarPersonaje():Void{
//jugador1
if(Key.isDown(key.LEFT)){//izquierda
mcPlayer1.dx -= mcPlayer1.vel;
}
if(Key.isDown(Key.RIGHT)){//derecha
mcPlayer1.dx += mcPlayer1.vel;
}

//arriba
if(Key.isDown(Key.UP)&&mcPlayer1.saltando==false){
salta(mcPlayer1);
}else if(Key.isDown(Key.UP)&&mcPlayer1.empezoSalto>0){
mcPlayer1.dy-=mcPlayer1.salto;
}
mcPlayer1.empezoSalto--;
}

function salta(mc:MovieClip):Void{
inicializarPersonaje(mc);
mc.friccion = friccionAire;
mc.dy -= mc.salto;
mc.saltando = true;
mc.empezoSalto=tiempoSalto;
}

function aplicarMovimiento():Void{
this._x+=this.dx;
this.dx*=this.friccion;

if(this.dx>velMaxima){
this.dx=velMaxima;
}else if(this.dx<-velMaxima){ this.dx=-velMaxima; } this._y+=this.dy; if(!mcSuelo.hitTest(this._x,this._y+puntoBajo+1,true)){ this.saltando = true; } if(this.saltando){ this.suelo = 0; this.dy-=gravedad; if(this.dy>salto*tiempoSalto){
this.dy = salto*tiempoSalto;
}
}

checarColisiones(this);

vCam._x=this._x;
vCam._y=this._y;
vCam.camControl();
}

function checarColisiones(mc:MovieClip):Void{

//pega arriba
while(mcSuelo.hitTest(mc._x,mc._y+puntoArriba,true)){
mc._y++;
mc.dy = Math.abs(mc.dy);
}

//pega abajo
while(mcSuelo.hitTest(mc._x,mc._y+puntoBajo,true)){
mc.saltando = false;
mc._y--;
mc.dy = 0;
}

//pega izq
while(mcSuelo.hitTest(mc._x+puntoIzq+1,mc._y,true)){
mc._x++;
mc.dx=0;
}
while(mcSuelo.hitTest(mc._x+puntoIzq+1,mc._y+puntoBajo/2,true)){
mc._x++;
mc.dx=0;
}

//pega der
while(mcSuelo.hitTest(mc._x+puntoDer-1,mc._y,true)){
mc._x--;
mc.dx=0;
}
while(mcSuelo.hitTest(mc._x+puntoDer-1,mc._y+puntoBajo/2,true)){
mc._x--;
mc.dx=0;
}

}

Por eduardoloco

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Jul 2009 08:06 pm
Para postear códigos ActionScript sitúa el script entre los tags correspondientes para poderlo leer:

Código :

[as]
Tus códigos aquí
[/as]


Todo parece indicar que los textFields que muestran el scrore están dentro de el fondo que mueves, crealos en la escena y cuando muevas el fondo estos no se moverán.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 12 Jul 2009 05:42 am
mmmm ya los intente poner en el movie clip llamado ground,
pero como sea se mueve -.-
, despues lo intente poniendolo en el personaje y sirvio!! pero el problema es
que el contador de score cuenta como el personaje,
y si un enemigo toca el conter tambien lo mata =.=
??? me dirian que hacer???

Por eduardoloco

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Jul 2009 09:03 am
No los pongas dentro de ningún MovieClip que tengas creado ni dentro del personaje, haz lo que te recomendé sitúalos directamente en la escena que en definitivas cuentas es un MovieClip.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 13 Jul 2009 05:01 pm
Hola, yo hago juegos en flash y es facil lo que debes hacer. Primero el texto que muestra el score conviertelo en un simbolo si es que no lo es luego modifica el movimiento del personaje por:


Código ActionScript :

function manejarPersonaje():Void{
//jugador1
if(Key.isDown(key.LEFT)){//izquierda
mcPlayer1.dx -= mcPlayer1.vel;
scoreMc._x += mcPlayer1.vel;
}
if(Key.isDown(Key.RIGHT)){//derecha
mcPlayer1.dx += mcPlayer1.vel;
scoreMc._y -= mcPlayer1.vel;
}



(scoreMc es el MovieClip del texto de score)
Es simplemente que el texto vaya en el mismo sentido que el personaje cuando este se mueva pero contrario al escenario

Por elxsergio

25 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Jul 2009 04:54 am
mmm gracias elxsegio, se queda quieto pero cuando el personaje se mueve a la derecha el score se mueve un poquito
y tambien a la derecha xD se ve como que el SCORE tiene vida xD

heeeeeeeelpppppp :,(

Por eduardoloco

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2010 01:53 am
hola ahi algo q no entiendo estas usando la vCam o no?

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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