Comunidad de diseño web y desarrollo en internet online

Texto dinamico que me suma 1 cada hitTest(); (me falla)

Citar            
MensajeEscrito el 28 Ene 2011 07:52 am
Hola, estoy abusando mucho de esto que es pedir consejos en el foro de cristalab, pero la verdad es que solo aqui se resuelven estas pequeñas dudas que surgen.

Simple, tengo un texto dinamico que es un "0" (su variable es "cuantos") y quiero que cuando choque la "bala" con la "roca" sume 1 y asi consecutivamente pero en lugar de sumarse se pone "a"

El codigo:

Código ActionScript :

if(this.bala.hitTest(this.roca)){
   this.roca.gotoAndPlay(31);
   cuantos=Number(cuantos) + 1
}
if(cuantos > 19){
   this.gotoAndStop(190);
}else{
   this.gotoAndPlay(192);
}
}


logicamente estoy poniendo solo la parte del codigo que influye en esto, lo tengo todo dentro de un OnEnterFrame(); pero espero que no me lo muevan de lugar porque ahi si ya no entendí

Espero darme a entender
Saludos! :)

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 28 Ene 2011 01:29 pm
prueba con

Código ActionScript :

cuantos=(Number(cuantos) + 1);

tambien intenta modificar tu hitTest asi te detectara la forma propiamente tal y no el cuadro que la contiene.

Código ActionScript :

if (this.bala.hitTest(this.roca._x, this.roca._y, true)) {

Por roder

46 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 28 Ene 2011 08:08 pm

roder escribió:

prueba con

Código ActionScript :

cuantos=(Number(cuantos) + 1);

tambien intenta modificar tu hitTest asi te detectara la forma propiamente tal y no el cuadro que la contiene.

Código ActionScript :

if (this.bala.hitTest(this.roca._x, this.roca._y, true)) {



Muchas Gracias por el consejo de modificar el hitTest :D Pero aun tengo el problema de del texto dinamico, modifique el codigo como dijiste, pero se sigue poniendo "a" en lugar de un numero

Saludos :P

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 28 Ene 2011 09:24 pm
cuantos es nombre de instancia o variable?

suponiendo que si es variable, cambia

Código ActionScript :

cuantos=Number(cuantos) + 1 
//por
cuantos++;

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 28 Ene 2011 10:07 pm

nasho escribió:

cuantos es nombre de instancia o variable?

suponiendo que si es variable, cambia

Código ActionScript :

cuantos=Number(cuantos) + 1 
//por
cuantos++;


Muchas gracias por contestar, y si, es variable (cuantos) sustituí el codigo como me dijiste pero se sigue poniendo una "a" tengo que checar bien cual es el problema porque ya me dieron 2 consejos y no ha funcionado.

Saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 01 Feb 2011 12:54 pm
Estoy viendo varios tutos y varios tips sobre el tema, y al parecer hay mucha controversia.... el codigo que yo tenia es el que ponen en muchos tutoriales pero la gente en los comentarios pone que no funciona (al igual que a mi no me funciona) como es esto? alguien tiene la respuesta? ese detalle me tiene estancado y no puedo continuar mi juego.. :/

saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 08 Feb 2011 02:29 am
Hola de nuevo, para no crear otro tema seguiré preguntando aquí ya que sigo en las mismas

la VARIABLE de mi texto es " score "

El código es este:

Código ActionScript :

if(this.bala.hitTest(this.roca)){ 
   this.roca.gotoAndPlay(31); 
   score++;
} 


quiero que se vaya incrementando el valor numéricamente (1, 2, 3...) pero en cambio solo se pone una "a" ya pasaron varios días y no he podido continuar ese juego solo por eso

Nota: El codigo lo tengo dentro de un

Código ActionScript :

this.onEnterFrame=function(){


Gracias. Saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 08 Feb 2011 02:54 am
Primero que nada, llama como instancia a tu campo de texto, digamos "txt", segundo declara la variable fuera del onEnterFrame, algo como:

Código ActionScript :

var score:int = 0;


Ahora en tu enterFrame, en el hit haz:

Código ActionScript :

if(this.bala.hitTest(this.roca)){  
   this.roca.gotoAndPlay(31);
   score++; 
   txt.text = score;   
} 


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 08 Feb 2011 08:37 am

Hernán escribió:

Primero que nada, llama como instancia a tu campo de texto, digamos "txt", segundo declara la variable fuera del onEnterFrame, algo como:

Código ActionScript :

var score:int = 0;


Ahora en tu enterFrame, en el hit haz:

Código ActionScript :

if(this.bala.hitTest(this.roca)){  
   this.roca.gotoAndPlay(31);
   score++; 
   txt.text = score;   
} 


Saludos, Hernán . -


Hola, gracias por responder. hice lo que me dijiste, pero me dice " No se pudo cargar la face o interfaz 'int' " así que decidí intentarlo así lo intente asi:

Código ActionScript :

var score:number=0
y

Código ActionScript :

var score=0
y nada. Si tienes algun otro consejo, lo agradeceria.

Saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:00 am
var score:Number = 0;

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:03 am

Hernán escribió:

var score:Number = 0;


ese no me funciono. =( era lo que trataba de decir

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:08 am
Es imposible que no te funcione. Postea el código completo del enterFrame.

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:13 am

Hernán escribió:

Es imposible que no te funcione. Postea el código completo del enterFrame.

Código ActionScript :

var velocidad=0
var score:Number=0
startDrag(this.nave,true,0,270,168,250);
this.onEnterFrame=function(){
   if(Key.isDown(Key.SPACE)){
      this.nave.play(2);
    if(bala._currentFrame == 1){
      bala.play();
      bala._x = nave._x;
   }
}
if(this.nave.hitTest(this.roca)){
   this.roca.gotoAndPlay(1);
   this.nave.gotoAndPlay(6);
   _root.Vida.nextFrame();
}
if(this.bala.hitTest(this.roca)){
   this.roca.gotoAndPlay(31);
   score++;
   txt.text = score;
}
}


Lo que pasa es que en el primer disparo si sale 1 y despues al segundo disparo sale "N"

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:16 am
Bueno veamos, primero que nada, esto así no lo puedes hacer. Necesitas usar Listeners. No debes poner en un enterFrame esa validación.

Código ActionScript :

if(Key.isDown(Key.SPACE)){ 
      this.nave.play(2); 


Saludos, Hernán . -

Por Hernán

BOFH

6148 de clabLevel

19 tutoriales
23 articulos

Genero:Masculino   REC Desarrollador de GAIA

Marketing & IT

chrome
Citar            
MensajeEscrito el 08 Feb 2011 11:29 am

Hernán escribió:

Bueno veamos, primero que nada, esto así no lo puedes hacer. Necesitas usar Listeners. No debes poner en un enterFrame esa validación.

Código ActionScript :

if(Key.isDown(Key.SPACE)){ 
      this.nave.play(2); 


Saludos, Hernán . -


Ok, muchas gracias por la ayuda. Ya mismo estoy investigando sobre el tema

Saludos y no tienes idea de cuanto te agradezco, haz sido muy paciente conmigo

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 10 Feb 2011 06:14 pm
te ayudo con el listener

Código ActionScript :

var escucha:Object = new Object(); 
escucha.onKeyDown = function() { 
   if (Key.getCode() == Key.SPACE) { 
      //tu accion 
         //this.nave.play(2); 
spacebarOn = true;
trace("listener funcionando"); 
   } 
}; 
escucha.onKeyUp = function() { 
    spacebarOn = false; 
    botarescucha(); 
     
}; 
Key.addListener(escucha); 
function botarescucha() { 
    trace("listener adios"); 
    Key.removeListener(escucha); 
    delete escucha; 
}

Por roder

46 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 10 Mar 2011 12:31 am
Oigan existirá una manera de hacer lo del Score sin tener que cambiar mi código :/ (por eso de los listeners)

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 10 Mar 2011 12:18 pm
Prueba:

Código ActionScript :

if(this.bala.hitTest(this.roca))
{ 
   this.roca.gotoAndPlay(31); 
   score++; 
   trace('score: ' + score); 
} 


Si la ventana de salida te muestra el numero que esperabas, entonces eso esta funcionando. Si te muestra algo raro (a o N o que se yo) entonces es algo mas y nos avisas.

Por cierto, para hacer juegos es necesario entender bien el codigo, no solo hacer copy - paste y luego pedir aqui que te arreglen el codigo. Sabes que son variables? funciones? arreglos? con gusto te ayudaremos pero tambien tienes que estudiar un poco ;)

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 10 Mar 2011 08:41 pm

Acreonte escribió:

Prueba:

Código ActionScript :

if(this.bala.hitTest(this.roca))
{ 
   this.roca.gotoAndPlay(31); 
   score++; 
   trace('score: ' + score); 
} 


Si la ventana de salida te muestra el numero que esperabas, entonces eso esta funcionando. Si te muestra algo raro (a o N o que se yo) entonces es algo mas y nos avisas.

Por cierto, para hacer juegos es necesario entender bien el codigo, no solo hacer copy - paste y luego pedir aqui que te arreglen el codigo. Sabes que son variables? funciones? arreglos? con gusto te ayudaremos pero tambien tienes que estudiar un poco ;)


Claro! dejame te cuento, hace un par de años yo era el típico usuario que copia y pega códigos para juegos e incluso publicaba material mediocre, hoy en dia odio la gente que hace eso, desde los tutoriales en youtube que dejan el codigo para un vil copy/paste hasta los que lo usan, incluso tuve un pequeño altercado aquí en cristalab por quejarme de eso con un usuario. Hoy en dia estoy aprendiendo como se debe, los juegos que estoy elaborando son en base a lo que voy aprendiendo (como practicas), cuando me dijeron lo de los listeners investigue del tema y no entendí, así que quiero acabar este juego y despues investigo bien sobre esto, cabe agregar, que no quiero aprender mas AS hasta empezar a usar AS 3.0

Muchas gracias por tu ayuda. Saludos

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 10 Mar 2011 11:01 pm
Perfecto, Ahora contanos si lo del 'trace' te funciono o actualizanos un poquito como te esta saliendo.

Te pregunte si 'hacias tu tarea de aprender' porque lei que habias puesto esto en tu codigo:

Código ActionScript :

var velocidad=0 
var score:Number=0


Es importante aprender el lenguaje y mas importante aun aprender buenas practicas.
A flash se le habla en su idioma, actonscript, si se le habla claro, flash entiende mas rapido entonces al declarar una variable es mejor decir que tipo de variable es, por ejemplo:

Código ActionScript :

var score : Number = 0;


Flash sabe inmediatamente que 'score' no es una string ni un boolean sino un number. Tambien, al final de la linea hay un punto y coma, flash sabe que hasta ahi llega la declaracion de la variable.
En tu codigo, debes agregar punto y coma cuando termines cada 'declaracion' y debes agregar el tipo de variable que declaras, entonces esas dos lineas al final quedan asi:

Código ActionScript :

var velocidad : Number = 0; 
var score : Number = 0;


Como te dije antes, contanos como te va ;)

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 11 Mar 2011 12:42 am

Acreonte escribió:

Prueba:

Código ActionScript :

if(this.bala.hitTest(this.roca))
{ 
   this.roca.gotoAndPlay(31); 
   score++; 
   trace('score: ' + score); 
} 


Si la ventana de salida te muestra el numero que esperabas, entonces eso esta funcionando. Si te muestra algo raro (a o N o que se yo) entonces es algo mas y nos avisas.

Por cierto, para hacer juegos es necesario entender bien el codigo, no solo hacer copy - paste y luego pedir aqui que te arreglen el codigo. Sabes que son variables? funciones? arreglos? con gusto te ayudaremos pero tambien tienes que estudiar un poco ;)


Ya hice lo que me dijiste aquí, no me marca errores pero el numero en lugar de sumarse, desaparece, sin embargo, en la ventana "Salida" se acumulan las anotaciones cada vez que se completa el disparo

Mira:
[img]http://tinypic.com/r/2d9wm76/7[/img]

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 11 Mar 2011 02:39 am
y si en ves de variable le asiignas un nombre de instancia por ej scoretxt
y ne el codigo pondriamos

Código ActionScript :

var score:Number = 0
onEnterFrame= function (){
scoretxt.text= score   
   }
//Lugo como 
if(this.bala.hitTest(this.roca))
{ 
   this.roca.gotoAndPlay(31); 
   score++; 
  } 


asi no tendrias que tener problemas

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 11 Mar 2011 10:52 am
if(this.bala.hitTest(this.roca))
{
this.roca.gotoAndPlay(31);
score++;
trace('score: ' + score);
txt.text = score.toString();
}

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 12 Mar 2011 08:04 am

Acreonte escribió:

if(this.bala.hitTest(this.roca))
{
this.roca.gotoAndPlay(31);
score++;
trace('score: ' + score);
txt.text = score.toString();
}


Sigue sucediendo lo mismo, desaparece el numero en el que debería estar el score, por cierto, las anotaciones que aparecen en la ventana "salida" son:

score: 1
score: 2
score: 3
....

Y asi sucesivamente cuando hago el disparo. Saludos.

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 12 Mar 2011 01:55 pm
Estas usando CS5??

Por MaxiiSan20

Claber

168 de clabLevel



Genero:Masculino  

Montevideo

firefox
Citar            
MensajeEscrito el 12 Mar 2011 04:04 pm
que pasa si pones esto:

Código ActionScript :

txt.text = 'hola 123';


Puede ser que necesites 'embeber' la fuente tipografica. Que fuente estas usando? Arial, Verdana...

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 12 Mar 2011 11:46 pm

Acreonte escribió:

que pasa si pones esto:

Código ActionScript :

txt.text = 'hola 123';


Puede ser que necesites 'embeber' la fuente tipografica. Que fuente estas usando? Arial, Verdana...


Queda exactamente igual con lo de

Código ActionScript :

txt.text = "hola 123";
y estoy usando la fuente Time New Roman. No tengo "Embeber", ¿ la tengo que descargar?

Saludos.

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome
Citar            
MensajeEscrito el 13 Mar 2011 12:16 am
Parece que no nos estamos entendiendo. Para embeber la fuente tipografica en tu caja de texto tienes que seleccionar dicha caja de texto y en las propiedades hay una opcion que dice 'Character Embedding...' (no se como dice el Flash en español), presionalo y selecciona 'basic latin.

Cuando te pregunte que pasaba si ponias 'hola 123', esperaba que me dijeses que sucede cuando corres la pelicula, si tu caja de texto muestra 'hola 123', solo numeros o solo letras o nada.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 17 Mar 2011 07:46 pm

Acreonte escribió:

Parece que no nos estamos entendiendo. Para embeber la fuente tipografica en tu caja de texto tienes que seleccionar dicha caja de texto y en las propiedades hay una opcion que dice 'Character Embedding...' (no se como dice el Flash en español), presionalo y selecciona 'basic latin.

Cuando te pregunte que pasaba si ponias 'hola 123', esperaba que me dijeses que sucede cuando corres la pelicula, si tu caja de texto muestra 'hola 123', solo numeros o solo letras o nada.


¡Ya!, al fin arregle el problema, muchas gracias por haberme ayudade y por haber sido tan paciente porque a pesar de que quiero aspirar grande, soy muy novato y tengo problemas jaja

Saludos!

Por Nato_Kohanim

160 de clabLevel



Genero:Masculino  

Editor, Programador y Bloggero

chrome

 

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