Foros del Web » Creando para Internet » HTML »

Consumo de juego HTML5

Estas en el tema de Consumo de juego HTML5 en el foro de HTML en Foros del Web. hola ojala me puedas ayudar estoy haciendo un juego con canvas y veras no se como interpretar esta imagen que me da google crhome acerca ...
  #1 (permalink)  
Antiguo 24/07/2013, 10:23
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Consumo de juego HTML5

hola ojala me puedas ayudar estoy haciendo un juego con canvas y veras no se como interpretar esta imagen que me da google crhome acerca de los recursos que consume el juego si es eso claro esta, te comparto la imagen.



lo raro es que todos los archivos de mi juego pesan apenas 178 kb, que significa lo anterios, por que sube a 15 o 16 mb, aun cuando NO estoy haciendo nada en el juego, las caidas q sigifica?
  #2 (permalink)  
Antiguo 24/07/2013, 15:01
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 187
Respuesta: Consumo de juego HTML5

Cuando de dibujar, animar y performance en un canvas se trata, lo primero a revisar es requestAnimationFrame (acá un muy buen recurso: http://www.paulirish.com/2011/reques...art-animating/ ).

De que se trata requestAnimationFrame? El ojo humano distingue una imagen 60 a 70 veces en un segundo. Entonces para que redibujar un canvas, más veces de lo que el ojo humano sería capaz de ver. Este es el primer paso para optimizar la performance en un juego.

A partir de aquí si los problemas continua habría que hilar fino sobre el código
  #3 (permalink)  
Antiguo 24/07/2013, 16:20
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: Consumo de juego HTML5

No tiene nada que ver el peso de tus archivos con la cantidad de memoria RAM que usa. Y sin ver tu código no mucho se puede hacer.

Saludos
__________________
Grupo Telegram Docker en Español
  #4 (permalink)  
Antiguo 25/07/2013, 09:30
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Respuesta: Consumo de juego HTML5

ok esto es lo q tengo en lineas generales:

una funcion q inicia los disparos en orden dispara hasta 19 balas lo que hace es poner una variable JSON en true asi: bala0{mode:false, x:0,y:0}

la funcion:

Código Javascript:
Ver original
  1. function disparar(){
  2. disparando=true;//console.log("si disparar : "+disparando);
  3.        
  4. if(bala0.mode==false){ bala0.angulo=controlAngulo* Math.PI / 180;//en rads
  5. segundoAngulo0=180-(90+controlAngulo);//angulo para dibujar la linea de la bala de 20 px roja
  6. segundoAngulo0=(180-(90+controlAngulo))* Math.PI / 180;
  7. }

esta toma el angulo del cañon para calcular el angulo de la bala, la bala es una linea, en el loop pinto hasta 19 balas SI estan en mode:true asi:

Código Javascript:
Ver original
  1. if(bala1.mode==true){//ojo aqui solo se dibuja la bala
  2. bala1f();//esta funcion hace los calculos sobre la bala
  3. mundoContexto.beginPath();
  4. mundoContexto.moveTo(bala1.X,bala1.Y);
  5. mundoContexto.lineWidth = 2;
  6. mundoContexto.strokeStyle = "red";
  7. mundoContexto.lineTo(parseInt(bala1.iniX),parseInt(bala1.iniY));
  8.  
  9.  
  10. mundoContexto.stroke();
  11.  
  12. }if(bala1.mode==false){//si la bala esta false por colision la volvemos al lugar inicial
  13. iniX=parseInt(canonData.X)+90;
  14. iniY=parseInt(canonData.Y)+53;
  15. bala1.X=String(origenBalasX);
  16. bala1.Y=String(origenBalasY);
  17. bala1.iniX="0";
  18. bala1.iniY="0";
  19. hipotenusa1=1;
  20. } //fin de la bala 1


como la anterior son 19 una por cada bala, pero noten que los calculos no se hacen aqui los hace bala1f()

esta es la funcion que realiza los calculos:


Código Javascript:
Ver original
  1. function bala1f(){
  2. if(bala1.mode==true){
  3. //ojo solo bala lineal 0 grados
  4. //primero mirar si la bala esta fuera de la pantalla
  5. if(bala1.X > extremoXbala || bala1.Y < extremoYbala){
  6. //inhabilitar la bala si esta fuera de la pantalla
  7. sacarBala(bala1,1);
  8. segundoAngulo1=0;
  9. return;
  10. }
  11.  
  12. //fin de revision si la bala esta fuera de la pantalla
  13. hipotenusa1=hipotenusa1+2;//determinar el velocidad de la bala
  14. cot=20*Math.sin(segundoAngulo1);//co del segundo angulo, atras de la bala
  15. cat=20*Math.cos(segundoAngulo1);
  16. //determinar los puntos donde termina la hipotenusa, la hi mide
  17.  
  18. co=hipotenusa1*(Math.sin(bala1.angulo));
  19. ca=hipotenusa1*(Math.cos(bala1.angulo));
  20. bala1X=parseInt(bala1.X)+ca;//posicion de la bala en x
  21. bala1Y=parseInt(bala1.Y)-co;//posicion de la bala en y
  22. bala1.X=String(bala1X);
  23. bala1.Y=String(bala1Y);
  24. bala1.iniX=String(bala1X-cot);
  25. bala1.iniY=String(bala1Y+cat);
  26. //colisiones();
  27. }

no esta implementada la colision pero es simple, cuando una bala esta fuera de la pantalla paso su modo a false, X y Y a 0, angulo a 0 y el origen a la punta del cañon, hay una funcion que actualiza la punta del cañon cada que este gira.

en fin eso es mi codigo, espero sus opiniones y les agradezco las observaciones que me puedan guiar
  #5 (permalink)  
Antiguo 25/07/2013, 09:37
Avatar de gilber966  
Fecha de Ingreso: abril-2010
Mensajes: 117
Antigüedad: 14 años
Puntos: 4
Respuesta: Consumo de juego HTML5

ah ya cambie a setRequestAnimation

sube hasta 10mb+/-, por otro lado hize un listener sobre la tecla subir, ahora lo empleo para ejecutar la funcin disparo pero sorpresa si lo uso seguido mi pc se bloquea, y empiezan a haber muchas curvas en la grafica :( bueno aunqe el destino es un dispositivo movil
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:51.