Foros del Web » Programando para Internet » Javascript »

Canvas y 'animaciones'

Estas en el tema de Canvas y 'animaciones' en el foro de Javascript en Foros del Web. Ese es el problema de los que vienen de otro lenguaje y tratan de implementar el mismo paradigma a js, que pasa que esto no ...

  #31 (permalink)  
Antiguo 23/05/2014, 16:10
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

Ese es el problema de los que vienen de otro lenguaje y tratan de implementar el mismo paradigma a js, que pasa que esto no funciona como en c++ , la palabra "this" no se comporta como deberia, esto que estamos diciendo es lo mas basico de js aqui hay una explicacion muy buena para que te guies http://blog.amatiasq.com/2012/01/javascript-conceptos-basicos-herencia-por-prototipos/
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #32 (permalink)  
Antiguo 23/05/2014, 16:51
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

no, repito, cuando empece a trabajar con javascript, busque la forma de trabajr con objetos, publicada por muchos medios : https://developer.mozilla.org/es/doc...tado_a_objetos , http://www.cristalab.com/tutoriales/...etos-c111760l/

Llego cerca de 4 años usando ese tipo de sintaxis, no tengo ningun problema de volver a aprender una sintaxis nueva, lo que me choca es pensar que tantos medios estén equivocados.
  #33 (permalink)  
Antiguo 23/05/2014, 17:32
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

jejejej lo de firefox esta mejor explican de manera muy superificial el prototipo y constructor pero lo de cristalab no explica la naturaleza de js que es prototipal
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #34 (permalink)  
Antiguo 23/05/2014, 17:37
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

http://blog.amatiasq.com/ y me esta resultando una gran lectura,


pero entonces, tanta memoria gasto con mi sintaxis actual?! , al fin y al cabo , de lo que estamos hablando es de mover graficamente todo eso.


Ps. la herencia de prototipos, la llevo a cabo exactamente igual que el ejemplo de los de : https://developer.mozilla.org/es/doc...tado_a_objetos , con esta sintaxis estoy copiando todos los métodos como decia #Italico76 ? , se supone que es una re-dirección , no una variable que contiene a otra.

Última edición por Albuss; 23/05/2014 a las 17:43
  #35 (permalink)  
Antiguo 23/05/2014, 17:47
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

esta bien imaginate una funcion con 100 propiedades y 100 metodos si usar prototipos , ahora crea un for que repite 10 veces y crear una nueva instancia, que crees que resulte de hacer una copia exacta de todos esos metodos y propiedades en otro 10 objetos directamente una locura inmediata.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #36 (permalink)  
Antiguo 23/05/2014, 18:01
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

esta bien, y hablando del bucle for(); como puedo optimizarlo para este caso?
  #37 (permalink)  
Antiguo 23/05/2014, 18:22
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Por cierto , Italico76 , y si cada objeto solo tiene sus propiedades mas fundamentales, y ningun metodo? , es decir, que sea un objeto y solo un unico objeto el que luego haga las tareas tediosas como , mover, cacalcular y pintar ... ect ?
  #38 (permalink)  
Antiguo 23/05/2014, 18:28
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

mmm en este caso el bucle es normal asi que esta bien, tal vez modificando las clases pero ya eso es decision tuya y despues puedes probar si mejora o no , haciendo un poco de estudio a tu ejemplo consume 8.5 megabytes de memoria solo para pintar eso y el recolector de basura en 50.6 ms da un resultado de 0.28%, para obtener 60 fps es necesario que el update y la funcion que dibuja actualizen en menos 16.67ms (1000/60) por eso es bueno uno usar un canvas como cache para asi ejemplo en juego como breakout solo se acutalize el dibujado cuando se aumenta el score o se destruya un ladrillo.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #39 (permalink)  
Antiguo 23/05/2014, 18:39
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

Cita:
Iniciado por Albuss Ver Mensaje
Por cierto , Italico76 , y si cada objeto solo tiene sus propiedades mas fundamentales, y ningun metodo? , es decir, que sea un objeto y solo un unico objeto el que luego haga las tareas tediosas como , mover, cacalcular y pintar ... ect ?
No es mejor hacer asi? Digamos para un jugador: yo quiero que camine ,que colisone, que ataque.
Código Javascript:
Ver original
  1. function jugador (){
  2. //propiedad
  3. this.salud = 3;
  4. };
  5.  
  6. jugador.prototype ={
  7. //metodos
  8. camina:function(){},
  9. colisionar:function()(),
  10. ataca:function(){}
  11. };
  12.  
  13. var heroe = new jugador();
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #40 (permalink)  
Antiguo 23/05/2014, 19:28
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Cita:
Iniciado por jp91 Ver Mensaje
mmm en este caso el bucle es normal asi que esta bien, tal vez modificando las clases pero ya eso es decision tuya y despues puedes probar si mejora o no , haciendo un poco de estudio a tu ejemplo consume 8.5 megabytes de memoria solo para pintar eso y el recolector de basura en 50.6 ms da un resultado de 0.28%, para obtener 60 fps es necesario que el update y la funcion que dibuja actualizen en menos 16.67ms (1000/60) por eso es bueno uno usar un canvas como cache para asi ejemplo en juego como breakout solo se acutalize el dibujado cuando se aumenta el score o se destruya un ladrillo.
Me cuesta entender la parte en negrita, podrias ser un poco mas extendido ?
  #41 (permalink)  
Antiguo 23/05/2014, 19:31
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

O lo que es lo mismo (supongo) (sacado de:https://developer.mozilla.org/en-US/.../Object/create)

Código Javascript:
Ver original
  1. function jugadorPrototype(){
  2.  
  3. this.salud = 3
  4.  
  5. }
  6.  
  7. jugadorPrototype.prototype.caminar = function(){
  8.  
  9. }
  10.  
  11. jugadorPrototype.prototype.colisionar = function(){
  12.  
  13. }
  14.  
  15. jugadorPrototype.prototype.atacar = function(){
  16.  
  17. }
  18.  
  19.  
  20. var heroe = new jugadorPrototype();
  #42 (permalink)  
Antiguo 23/05/2014, 21:33
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

este uso de this. seria correcto ? (instanciar un objeto dentro de otro) :


Código Javascript:
Ver original
  1. // 'CLASES'
  2.  
  3. function prototipoPadre(){
  4.  
  5. }
  6.  
  7. function prototipoHijo(){
  8.  
  9. }
  10.  
  11. // METODO
  12.  
  13. objetoPadre.prototype.crearObjetoHijo = function(){
  14.  
  15.    this.objetoHijo = new prototipoHijo();
  16.  
  17. }
  18.  
  19. // INSTANCIA DEL PRIMER OBJETO (PADRE)
  20.  
  21. objetoPadre = new prototipoPadre();
  22. objetoPadre.crearObjetoHijo();
  23.  
  24. // ?
  #43 (permalink)  
Antiguo 24/05/2014, 03:16
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 10 meses
Puntos: 206
Respuesta: Canvas y 'animaciones'

Hace tiempo que escribí ésto:
http://www.jlabstudio.com/webgl/2012...en-javascript/
Pero básicamente sigo usando el mismo sistema.
  #44 (permalink)  
Antiguo 24/05/2014, 05:38
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

marlanga , me encantaría hablar contigo sobre vectores, acerca de tu articulo de pong.
  #45 (permalink)  
Antiguo 24/05/2014, 06:18
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Bueno, aqui dejo para que veáis por vosotros mismos el resultado una versión muy simplificada de lo que quiero hacer usando request animation frame (ya no uso ningún interval), sin fisicas y sin grandes calculos, solo le aplico movimiento horizontal a cada partícula y calculo que permanezca dentro de un mundo definido. he reescrito las 'clases' de la forma en la que me habéis recomendado (http://blog.amatiasq.com/2012/01/jav...or-prototipos/, https://developer.mozilla.org/en-US/.../Object/create) y solo he notado que el recolector de basura aumenta su presencia, aunque ha bajado extremadamente el consumo de memoria.

(no calculo : fricion, inercia, acelaracion, desaceleracion, colisiones, fuerza y constancia, solo le aplico un movimiento horizontal y re-posiciono las coordenadas cuando un punto sobrepasa el espacio)

http://vodoad.com/Braismartelo/Conte...vas/Index.html

consume 2.9 megabytes de memoria, el recolector de basura en 30.5 ms da un resultado de 0.55% y obtengo 60 frames el 91% del tiempo con picos que bajan a menos de los 30 fr/s.

Puntos en movimiento a la vez : 1100.
tamaño del lienzo : 1920 x 900;

Última edición por Albuss; 24/05/2014 a las 06:25
  #46 (permalink)  
Antiguo 24/05/2014, 07:49
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

En algunos de mis comentarios coloque un link donde explican el cache,te para que te guies aqui una parte del codigo :

Código Javascript:
Ver original
  1. function aCanvas(width, height, render) {
  2.     canvas = document.createElement('canvas');
  3.     canvas.width  = width;
  4.     canvas.height = height;
  5. //aqui le pasas el contexto a la funcion que dibuja tus objetos
  6.     render(canvas.getContext('2d'));
  7.     return canvas;
  8.   };

Código Javascript:
Ver original
  1. function dibujar(ctx) {
  2. //se actualizo algo ?? ps pintamos    
  3. if (this.pintar) {
  4. //canvas a pintar
  5.       this.canvas = aCanvas(this.game.width, this.game.height, this.pintaCasa.bind(this));
  6.       this.pintar = false;
  7.     }
  8. //this.canvas tiene el retorno de la funcion aCanvas
  9. // y el truco dibujar una imagen del canvas recuerda se pinta en cache y cuando hay algo
  10. // nuevo se actualiza la imagen con el contenido del otro canvas.
  11. //el canvas puede ser pasado como parametro a este metodo.
  12.     ctx.drawImage(this.canvas, 0, 0);
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #47 (permalink)  
Antiguo 24/05/2014, 08:03
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

Sobre hijos y padre ps algunos hacen:
Código Javascript:
Ver original
  1. function extender(hijo, padre) {
  2. //temporal constructor
  3. var F = function(){};
  4. //si el prototipo del hijo apuntara al del padre directamente no sirve porque lo que cambie en
  5. //el padre cambiaria al hijo
  6. F.prototype = padre.prototype;
  7. //por eso se usar un constructor temporal
  8. hijo.prototype = new F();
  9. hijo.prototype.constructor = hijo;
  10. //propiedad que apunta al padre
  11. hijo.papa = Parent.prototype;
  12. }

Lo de el recolector bienvenido al nuevo mundo jejej eso es algo dificil de evitar por ahora crep que no te debes preocupar por eso,nada mas te digo un ejemplo rapido los chicos de Construct 2 un egine para hacer juegos, evitan en lo minimo crear nuevos objetos con "{}" y tambien se puede hacer lo mismo con "new", borran todas las propiedes del objeto y este ps queda "vacio" y listo para re-usarlo:
Código Javascript:
Ver original
  1. cr.wipe = function (obj)
  2. {
  3. for (var p in obj)
  4. {
  5. if (obj.hasOwnProperty(p))
  6. delete obj[p];
  7. }
  8. };
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #48 (permalink)  
Antiguo 25/05/2014, 23:00
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Despues de toda la noche haciendo pruevas de rendimiento ..

He pasado toda la noche haciendo pruebas de rendimiento, cambiando únicamente la sintaxis de programación (la que utilizaba y me habéis rebatido y la que habéis propuesto).
todo esto en un entorno extremdamente simplificado, simplemente; 1100 puntos, movimiento horizontal y re-posicionamiento cuando se sobrepasa el limite del espacio. en ambos
casos uso requestAnimationFrame y un solo for();
(solo uno para los 1100 puntos, operaciones movimiento y control de los limites del espacio)

¿cunclusiones? despues de ver muchas variaciones y tomando conciencia de forma empirica , puedo demostrar con datos que mi antigua sintaxis (vease mas abajo ejemplo de antigua
y 'correcta' sintaxis para cada prueva
) hace un mayor consumo de memoria pero brinda significativamente menos 'tirones' y un frame rate mas estable, así como un uso requerido del recolector de basura 1/5 - 1/4 menor.

ahora expongo por separado cada prueva, ejemplo de sintaxis por cada prueva y sus respectivos datos :

- Prueva 'sintaxis correcta': http://vodoad.com/Braismartelo/Conte...vas/Index.html

Sintaxis 'correcta' : (http://blog.amatiasq.com/2012/01/jav...-call-y-apply/ , http://www.jlabstudio.com/webgl/2012...en-javascript/ , https://developer.mozilla.org/en-US/.../Object/create)

datos :

http://i1179.photobucket.com/albums/...5.png~original


http://i1179.photobucket.com/albums/...1.png~original


http://i1179.photobucket.com/albums/...b.png~original



- Prueva 'mi sintaxis antigua' : http://vodoad.com/Braismartelo/Conte...s_2/Index.html

Mi 'sintaxis antigua' : (del propio archivo de la prueva) http://vodoad.com/Braismartelo/Conte...usExMachina.js , http://vodoad.com/Braismartelo/Conte...s/metaPoint.js , http://vodoad.com/Braismartelo/Conte...ions/render.js , http://vodoad.com/Braismartelo/Conte...racParticle.js

datos :

http://i1179.photobucket.com/albums/...4.png~original


http://i1179.photobucket.com/albums/...7.png~original


http://i1179.photobucket.com/albums/...a.png~original


Espero que podáis a ayudarme, contribuyendo con vuestras propias conclusiones.

Ps. creo que he colocado todos los datos de forma correcta, si hay algun error, decidmelo,
  #49 (permalink)  
Antiguo 26/05/2014, 06:39
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

Amigo es sencillo que el consumo de memoria se disminuya creo que mi tarea ha sido cumplida, debido en que en lo que hago esa disminucion es muy importante para los celulares debido a la bateria,
lo de recolector y fps se puede arreglar con una mejor sintaxis y optimizaciones de codigo y estoy seguro que seria mas fluido.Saludos
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #50 (permalink)  
Antiguo 26/05/2014, 10:58
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Cita:
Iniciado por jp91 Ver Mensaje
Amigo es sencillo que el consumo de memoria se disminuya creo que mi tarea ha sido cumplida, debido en que en lo que hago esa disminucion es muy importante para los celulares debido a la bateria,
lo de recolector y fps se puede arreglar con una mejor sintaxis y optimizaciones de codigo y estoy seguro que seria mas fluido.Saludos


y ya esta? , te limitas a decir que de 2.5 a 3.8 mb es mejor para la bateria de un telefono (que ovbiamente no podria 'correr' pruevas como esta) y te vas?

Pues a las pruevas empricas me remito, si la diferencia de memoria es la que es 1.3mb, y consigo que no haya tirones y los frames sean mas estables y aun encima no hago trabajar al recolector de memoria .... ¿por que es 'peor' mi sintaxis? (bueno, no es mia, es la que aprendí de tantos medios que la han publicado)
  #51 (permalink)  
Antiguo 26/05/2014, 11:04
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Canvas y 'animaciones'

Yo digo que tu problema es el lookup al DOM, pero no pareces convencido.


Saludos
__________________
Grupo Telegram Docker en Español
  #52 (permalink)  
Antiguo 26/05/2014, 11:06
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Cita:
Iniciado por Carlangueitor Ver Mensaje
Yo digo que tu problema es el lookup al DOM, pero no pareces convencido.


Saludos
Perdona si me habias escrito antes y no te respondi, exactamente a que parte del codigo te refieres ? (modifique la forma en la que accedia a los metodos y a las propiedades de cada objeto)


Ps. obviamente si te refieres a una parte del codigo que no uso (que este comentado), aun no la he usado y no la he tocado denuevo.
  #53 (permalink)  
Antiguo 26/05/2014, 14:36
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

hey para donde me voy? jejejej aqui me puedo quedar toda la vida compartiendo informacion contigo , pero si quieres seguir ya tienes que olvidarte de lo que habias aprendido quedarte con lo bueno y analizar lo malo, esa diferencia de memoria no crees que es un progreso para tu caso??? , como dice @Carlangueitor tambien debes mejorar el acceso al DOM hay muchos tutos donde lo explican y mas en ingles, sobre la sintaxis amigo lo que se, lo aprendi de leer muchos libros y practicar y darme duro contra el mundo no lo invente yo, libros como High Performance Javascript de nicolas zackas, javascript patterns, Manning Secrets of the JavaScript Ninja, la forma en que creas tus clases "padres" e hijas hay mejor forma de hacerlo te puse un ejemplo arriba , cuando creas un objeto o una nueva instancia es para usarla y reutilizarla porque sino hay llega el recolector.
__________________
OOoo Como hacer ooOO
juegos con Html5.
  #54 (permalink)  
Antiguo 26/05/2014, 15:20
Avatar de Albuss  
Fecha de Ingreso: enero-2012
Ubicación: Coruña
Mensajes: 475
Antigüedad: 12 años, 9 meses
Puntos: 30
Respuesta: Canvas y 'animaciones'

Cita:
Iniciado por jp91 Ver Mensaje
hey para donde me voy? jejejej aqui me puedo quedar toda la vida compartiendo informacion contigo , pero si quieres seguir ya tienes que olvidarte de lo que habias aprendido quedarte con lo bueno y analizar lo malo, esa diferencia de memoria no crees que es un progreso para tu caso??? , como dice @Carlangueitor tambien debes mejorar el acceso al DOM hay muchos tutos donde lo explican y mas en ingles, sobre la sintaxis amigo lo que se, lo aprendi de leer muchos libros y practicar y darme duro contra el mundo no lo invente yo, libros como High Performance Javascript de nicolas zackas, javascript patterns, Manning Secrets of the JavaScript Ninja, la forma en que creas tus clases "padres" e hijas hay mejor forma de hacerlo te puse un ejemplo arriba , cuando creas un objeto o una nueva instancia es para usarla y reutilizarla porque sino hay llega el recolector.

Pero entonces por que mi mala praxis sintactica hace que el recolector de basura trabaje menos? , y por que consigo un frame rate mas estable y con menos parones? , es decir, esta muy bien que compartas bibliografia pero me gustaria que fuésemos a debatir estas preguntas y no ovbiarlas, reitero que estos temas me apasionan mucho.

y como ejemplo creo que es bueno ver que trabaje re escribiendo toda la sintaxis de mi practica para adaptarla a la que propones. Y por favor, si ponéis cosas como 'debes mejorar el acceso al DOM' , poned al menos una linea de codigo donde pueda llevar a la practica eso, solo pido una linea de mi código para orientarme con vuestras palabras!
  #55 (permalink)  
Antiguo 27/05/2014, 07:07
Avatar de jp91  
Fecha de Ingreso: mayo-2014
Mensajes: 94
Antigüedad: 10 años, 6 meses
Puntos: 11
Respuesta: Canvas y 'animaciones'

mmmmmmmmm, ok para que veas como soy te voy a dar un consejo, una regla muy util es siempre "guardar" el ambito global en una variable local pero ojo siempre y cuando la usemos mas de una vez dentro de nuestra funcion, ese es el consejo??? sip se ve mejor con un ejemplo.

Código Javascript:
Ver original
  1. function algo(){
  2. //document ambito global
  3. //variable local mas rapido el acceso
  4. //los usamos repetidamente en la funcion
  5. var local = document,
  6. //por si necesitas acceder digamos a className
  7. localBody = local.body,
  8. parrafos = local.getElementsByTagName("p"),
  9. i= 0,
  10. len = enlaces.length;
  11. while(i < len){
  12. cambiar(parrafos[i++]);
  13. }
  14.  
  15. local.getElementById("loquesea").onclick = function(){
  16. ejecuta();
  17. };
  18.  
  19. };
__________________
OOoo Como hacer ooOO
juegos con Html5.

Etiquetas: canvas
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 12:45.