Fundamentos de Programación

1

Bienvenida a Platzi: ¿qué necesitas para tomar el curso?

2

Programación en Navegadores: Primeros Pasos

3

Crea tu primer sitio web

4

Sitios web con HTML

5

Estructura de árbol en HTML

6

Instalando tu primer editor de código

7

Cómo declarar variables y usar prompt

8

Algoritmo de piedra, papel o tijera

9

Algoritmo avanzado de piedra, papel o tijera

10

Aleatoriedad

11

Refactor del código usando funciones

12

Ciclos

13

Gana 3 veces

14

Archivos de HTML y JavaScript

15

¿Qué es el DOM?

Quiz: Fundamentos de Programación

Desarrollando un juego con HTML y JavaScript

16

Maquetación con HTML

17

Sección de elegir mascota

18

¿Dónde ubicar la etiqueta script? Conectando HTML con JavaScript

19

Escuchando eventos con JavaScript

20

addEventListener

21

Manipulación del DOM

22

Enemigos aleatorios

23

Ataques en JavaScript

24

Ataques aleatorios del enemigo

25

Imprimiendo ataques del enemigo

26

¿Ganaste, perdiste o empataste?

27

Tablas de verdad

28

Creando el contador de vidas

29

¿Quién ganó el juego?

30

Reiniciando el juego

31

Ocultando elementos HTML con JS para mejorar la UX del juego

Quiz: Desarrollando un juego con HTML y JavaScript

Estilos con CSS

32

Anatomía de CSS

33

Tipos de display

34

Flexbox

35

Modelo de caja

36

Imágenes para los Mokepones

37

Estilos del botón

38

Adaptando HTML al diseño del juego

39

Layout: título y ataques

40

Adaptando JavaScript al diseño del juego

41

CSS Grid

42

Responsive Design

43

Detalles finales

Quiz: Estilos con CSS

Optimización de código

44

Revisión de código

45

Don't repeat yourself (DRY)

46

Clases y objetos

47

Clases y objetos de Mokepon

48

Arrays o arreglos

49

Objetos vs. arreglos

50

Ciclos: manipulando el DOM con iteradores

51

Declaración lenta de variables

52

Una sola fuente de la verdad

53

Mascotas aleatorias con arreglos

54

Ataques dinámicos por cada mascota: extraer

55

Renderizado dinámico en HTML

56

Eventos de click dinámicos

57

Secuencia de ataques del enemigo

58

Iniciando el combate

59

Resolviendo el reto de condicionales

60

Optimizando el frontend del juego

Quiz: Optimización de código

Mapa con canvas

61

Introducción a canvas: dibujando con JavaScript

62

Moviendo a Capipepo hacia la derecha

63

Movimiento hacia todas las direcciones

64

Movimientos con el teclado

65

Imágenes y personajes de fondo

66

Métodos en las clases

67

Obstáculos y colisiones

68

Combate entre mokepones colisionados

69

Mapa responsive

70

Botones bonitos y viewport

Quiz: Mapa con canvas

Backend: videojuego multijugador

71

¿Qué es backend?

72

Instalación de Node.js y NPM

73

Terminal de comandos y Node.js

74

Servidor web con Express.js

75

HTTP, localhost, servidores y puertos

76

Express.js y fetch: API REST con JavaScript

77

JSON y POST: mokepon online

78

Transmisión de coordenadas

79

Mokepones dinámicos en el mapa

80

Optimizando el mapa del juego

81

Batalla entre jugadores

82

Consumiendo la API de ataques del enemigo

Quiz: Backend: videojuego multijugador

Próximos pasos

83

Probando el juego en varios dispositivos

84

¿Y ahora qué curso tomar?

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Gratis de Programación Básica

Curso Gratis de Programación Básica

Juan David Castro Gallego

Juan David Castro Gallego

Probando el juego en varios dispositivos

83/84
Recursos

Aportes 179

Preguntas 146

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Es importante para que funcione el servidor, que el archivo html se llame index.html, de lo contrario, el servidor no lo interpretara y responderá con un error 404.

Hay que proteger al profe Juan, es demasiado bueno para este mundo.

Para deshabilitar el seleccionado del texto en los botones se puede hacer con el siguiente codigo en css

user-select: none;

Estuve un rato largo buscando porque me salía el error “cannot get /” y en la sección de preguntas ya lo solucionaron.
Hasta este momento traemos el documento html con el nombre mokepon.html
Cambiándolo por index.html como lo tienen en el video se soluciona y te permite entrar desde el localhost:8080 y con la dirección IP también.

me estaban apareciendo este error en la consola:

GET mokepon.js net::ERR_ABORTED 404 (Not Found)

no estaba cargando el javascript

lo solucioné cambiando la etiqueta script en el html en vez de ./js/mokepon.js es /mokepon.js y cargo todo. Asi debe quedar:

<script src="./mokepon.js"></script>

YO: DESPUÉS DE ACBAR EL CURSO DE PROGRAMACIÓN BÁSICA

La dirección IP es una dirección de cada computador que nos permite acceder a éste desde otros dispositivos.
Entonces al poner https://192.168.10.116:8080 estamos accediendo al puerto 8080 del computador que tiene la dirección 192.168.10.116.

IP local

En este caso, esta es una IP local, es decir, solo podrán usarla aquéllos que estén bajo la misma red (es decir, conectados al mismo router).

IP pública

Vuestro router tiene una IP pública con el que se puede acceder a vuestra red. Para comunicar puertos concretos hacemos Port Forwarding, esto es decirle al router que, cada vez que reciba una petición al puerto - por ejemplo - 8080, que mande esa petición a un computador concreto.

Así es que, configurando correctamente el router, podéis tener un servidor en vuestro propio hogar.

Disclaimer

No estoy seguro de si puede ser peligroso hacer ésto, solo lo comento como dato.

Tengo un error y me gustaria saber si alguien mas le pasa y es en termino de las coaliciones. Cuando lo hago desde el mobil, y alguien ingresa me coaliciona pero solo en el movil, pero en el mapa no se ve la coalicion.
Si lo hago ambos jugadores desde el computadior funciona normal. Podria se algo en terminos de que las pantallas son diferente y la del celular al ser mas pequeña encuentra coalicion comparada con la del computador?

a aluien mas le sucede esto?

Yo en mi trabajo y junto con los que he desarrollado código, al proceso de testing le bautizamos el proceso Cletus “Hacerlo a prueba de idiotas” jajajja

Fíjense que el documento principal html debe estar como

index.html

Otra solución también es ingresar a

localhost:8080/mokepon.html

Con esto le dan la dirección exacta del archivo a donde desean ingresar, y listo!!

Para remplazar todos los "localhost"
use la opcion de visual studio code: “Select All Ocurrences”

Ctrl + Shift + L por defecto

si los pasaron con el explorador de windows, se debe quitar js en el html. asi:
<script src="./js/mokepon.js"> </script>

y dejarlo asi:
<script src="./mokepon.js"> </script>
por ultimo cambiar el nombre a index el html no mokepon.

el curoso fue genial, aun que casi al final me explota el cerebro.
es cierto que en el proyecto hay muchar areas de opotunidad que se pueden mejorar.
pero esta genial este curso

Yo tambien me emocione cuando vi que la clase era del profe Juan 😊

Jejejeje Mori, con esa intro de “HOLA, te acuerdo de mi”, ya ni nos acordabamos…

Excelente curso, se ha aprendido mucho en poco tiempo. Pero muchas clases!

Yo logre eliminar el error de que cuando volvías a seleccionar un jugador los anteriores se redibujan en ubicación donde hacían colicion. 😱

Aquí la prueba final! ❤️
https://mokepon-platzi.herokuapp.com/

Juanda es un excelente profesor, explica todo lo que coloca en el código, ojala el resto explicara igual

Si por alguna razon copiaron su direccion ip desde el navegador al momento de cambiar el localhost por ella, asegurense de que despues de el ultimo numero de la direccion, no haya una diagonal jajajaja

Como no debe de ser:

Como debe ser jajajaja:

Así había solucionad, ya que había visto ese hueco.

En mi colegio nunca ví esa actitud en la que se tuviera un interés genuino para que los estudiantes aprendieran. Gracias de verdad!

Espero que al hacer la prueba me de unos 10000 platzi puntos.

yo dejaría la pantalla en blanco, me gusta porque es como dándole a entender al jugador que se ponga serio

Yo hice lo mismo que otro compañero, si no selecciona mascota, sale un alert y al darle en aceptar se reinicia el juego

Si están llevando adelante el proyecto desde WSL2: LEAN ESTO ANTES DE INTENTAR ABRIR EL JUEGO EN EL CELULAR.
En este video está la explicación de porque es mas difícil hacerlo y la forma de resolverlo:
https://www.youtube.com/watch?v=3Tkkk3ePZKo&ab_channel=EarHackerDem

ERROR Cannot GET/

Si te encuentras con este error en la sección de preguntas ya lo solucionaron, te comparto la solución, es simple, hasta el momento venimos manejando el archivo mokepon.html pero en esta clase ya lo manejan como index.html, solo necesitas cambiar el nombre de este archivo y listo 👌

Que chevere ver otra clase del profe juan david, excelente manera de enseñar

Yo que pensaba que este iba a ser un video de “felicitaciones muchachos” :´ )

Si no quieren que no se seleccione el texto ponen esto en el css del boton

user-select: none;

Realice el mismo juego en Vuejs, utilizando SocketIO como mecanismo de tiempo real:
Pueden jugarlo en linea con otras personas: Mokepon Vue

Hola. simpre sale este error, pero no se por que es, y hay veses que no deja funcionar bien la aplicacion, si a alguien mas le sale confirmen.

Me encanta la energía de Juan David jajajaja

Mi profesor favorito es Juan David. Es muy divertido aprender con el.

Juanda es el mejor profesor, explica tan bien que es imposible no entender, ojalá los otros profesores hubieran explicado como él

Tengo un problemita con mi codigo
Al finalizar la batallas hay algunos ataques que me salen como undefined (Unas veces solo en un jugador y otra veces en ambos juagadores) ya he revisado el código y lo he comparado con el del proyecto y está igual
Es el único imperfecto que tengo u.u

Nooo que fracaso, desde la clase 71 todo el codigo se rompio, ya no me funciona nada, la verdad explican y copian como si uno supiera ya…

Que alegria ver a juanito de nuevo, el viejo confiable tocayo c:

Te agradezco mucho profe Juan David, evidentemente sos el más joven, pero tenés un don para explicar de manera tan clara, y no solo eso, tu personalidad lo mantiene a uno enfocado en lo que vas a decir. Gracias.

Hola tengo unos errores en el código.
Quien mas tiene estos errores?

Este curso empezo siendo traquilo y termino rompiendome el cerebre, aun asi nunca voy a parar de aprender!!

Tengan mucho cuidado con el orden de las carpetas, tenía un error y era que la carpeta “public” estaba por fuera de la carpeta donde está el archivo “index.js”, en otras palabras, vayan a Recursos del video y verifiquen el orden de las carpetas.

yo lo que hice fue en esa parte llamar a la función de reiniciar juego después del alert.

Si no les aparece el IPv4 con wifi es porque están usando Ethernet desde su pc, así que desconecten su cable y conecten wifi o usen otra pc para conocer el IPv4.

Pueden consultar la IPv4 desde el cmd de windows.

Se rompió todo mi código al abrirlo en localhost:8080 me presentaba el siguiente error

Lo solucione al cambiar en el Html la ruta de carpeta que contiene Js ya que al moverlo a la carpeta public la ubicación de este cambio.

cuando se da click en seleccionar sin mokepon yo solo puse un
location.reload()
y funciona

Yo lo solucione llamando a la funcion para reiniciar la partida

else {
            window.reiniciarPartida()
        }

Evidentemente la solucion de Juan es mucho mas efectiva y evita que la pagina se vuelva a cargar, pero ese fue mi intento desesperado xD

Mi solución para que no para que no se rompiera el juego cuando no seleccionamos nada fue poner:
seleccionarMascota.style.display = ‘flex’ en la parte final del “else”. Quizas no es la mejor solución pero funcionó 😃

![](https://static.platzi.com/media/user_upload/Warkepon%20Online-ec54d78f-b72f-47c9-80e0-fc6588bcfa3d.jpg) Es increíble todo lo que se aprende en este curso. Comencé hace mes y medio (en complemento con el curso profesional de Git y GitHub) y jamás me imagine que hoy tendría un juego que se ve así... ☝️ Con un Front-end en Github Pages y un Back-end en render.com. Además de aprender conceptos básicos de desarrollo web, siento que visualicé el principio maestro de la programación... Resolver problemas!! Les dejo el link de mi repositorio en Github. Veran que el código tiene comentarios y muchos, pero muchos console.log, que use para entender que estaba pasando cuando no me funcionaban las cosas. Repositorio: <https://github.com/Palinux360/warkepon.git> Juego: <https://palinux360.github.io/warkepon/>
yo tuve el siguiente error al mover los archivos a la carpeta public error "cannot get /" al cambiar el nombre al mokepon.html a index.html, ahora solo se enviaba el html y no el css ni el js La solución es con path y join Con esto me funcionó ```js const path = require('path'); // Middleware para servir archivos estáticos app.use(express.static(path.join(__dirname, 'public'))); // Ruta para servir el HTML app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'mokepon.html')); }); ```
necesito ayuda porque no me aparece error en la consola y tampoco me aparecen los mokepones del la segunda pestaña
Hola ya termine el juego pero a veces me sale este error, pasa siempre que hay un delay en una de las pantallas:![](https://static.platzi.com/media/user_upload/6e76853d-3bf5-45f3-a62b-83996c657913-a6f24b90-a682-488f-bbfe-023cabb9fd05.jpg) ![]()![]()

Ya muchos lo han dicho pero me gustaría igual hacer el aporte con algo más.

Yo también luché con el cannot GET /, y eso se soluciona cambiando el nombre de nuestro archivo html de mokepon.html a index.html.

Sin embargo, si hicieron lo mismo que yo y sacaron el archivo mokepon.js de la carpeta js para meterla en la carpeta public, el programa estará rotísimo en el celu y el compu. Para solucionar eso, dentro del archivo html, deben ir al fondo donde está script, y cambiar su contenido de “./js/mokepon.js” a “./mokepon.js”. Recordar, solo hacer esto si movieron el archivo y no la carpeta, si movieron la carpeta, no pasará nada raro 😉

Mi código se rompió, después de elegir los ataques de ambos jugadores no pasa nada y tampoco me sale ningun error, llevo días revisando y comparando el codigo y nada. ![](https://i.postimg.cc/DZfCD2Cz/Captura-de-Pantalla-2024-01-09-a-la-s-6-19-39-p-m.png)

BENDITO ERROR QUE APARECE Y NO SABER SOLUCIONARLO Uncaught (in promise) TypeError: Cannot set properties of null (setting ‘x’)
at digimon.js:462:41
at Array.map (<anonymous>)
at digimon.js:439:50

Doy gracias a todo el equipo de Platzi por tan espectacular curso. Quedé maravillado y encantado. Los profesores son increíbles y con una actitud buenísima, el contenido es muy completo. Llegar hasta aquí fue un reto, pero valió completamente la pena. Muchas gracias.

Después pasar horas y horas buscando la forma de solucionar cuanto error surgía, después de ver una y otras vez las clases, puedo decir que siento satisfacción al finalizar este curso. Se que aun estoy programando con las ruedas auxiliares, pero seguiré estudiando para mejorar mis habilidades. Gracias.

deben cambiar el nombre del archivo “mokepon.html” por “index,html"
y también sacar la " mokepon.js " de la carpeta “js” para poder guardarlo en la carpeta “publica” de forma mas sencilla.
luego cambiar el script en el html a:
<script src =”./mokepon.js"></script>

Hay pequeños detalles que los profes deben mencionar cuando se hacen cambios en el código, como por ejemplo cuando cambiamos de carpeta la dirección del src de donde sacamos el archivo de JS cambia y eso rompe el código, así como tambien que se debió cambiar el nombre del archivo html para que se pudiera correr en el servidor

el primer ejercicio lo solucione llamando a la función reiniciarJuego 😄

 } else {
        alert('SELECCIONA UNA MASCOTA')
        reiniciarJuego()
    }

llegue muy orgullo a esta clase…
movi los archivos de carpeta y se rompio todo 😭

por si a alguien le sirve … para que el juego cargue en el celu deben quitarle la protección contra sitios no seguros , estuvo 3 horas hasta que lo descubrí, al menos asi me funcionó a mi. Ahora tengo un montos de nuevos errores jeje pero ya es ese otro cuento !! un abrazo compañeros!

parce porque empieza así un curso de programación básica?

Me gustaria que a esta clase la complementen explicando como proceder para los que estamos en WSL, ya que corriendo el juego desde windows funciona perfecto pero desde la terminal de ubunto, no carga el juego con la ipv4.
Seria bueno porque me gustaria poder revisar mis proyectos tambien en el celular usando espress.static()

Hola me gustaria aportar como resolvi el problema de
“Cannot GET /” Failed to load resource: the server responded with a status of 404 (Not Found) lo que pasa
es que el nombre de la terminal como el nombre del html
debe ser index no solo el html almenos asi es como
me funciono

para los que les sucede el error 404 y les sale el mensaje: Cannot GET /. Esta es la solucion

Resulta que al configurar el servidor al crear el archivo package.json en la terminal establecimos con valores predeterminados en este caso index.html por lo que al cambiar el nombre del archivo mokepon.html a index.html lo solucina

Espero que les ayude aunque todavia desconosco como puedo cambiar ese valor predeterminado, espero ayudas tambien.

es muy frustrante que desde que empezó Diana estoy medio perdido porque ella no explica lo que hace, solo lo hace, como si ya entendieramos los conceptos (algo que no pasó con los otros porfesores). Por otro lado, en la clase 81 y 82 dejó de funcionar mi código pero no logro encontrar en donde está el error y ahora no tengo el código guardado a como estaba antes de empezar esas clases y no lo puedo recuperar.

Así mismo, descargo el código que tiene Platzi en los recursos pero tampoco corre en mi navegador. Solo se rompió en las últimas dos clases y eso es lo que me parece frustrante, que no lo voy a plder jugar ni mostrar a pesar de que hice todo el curso

Para aquellos a quien todavia les aparece el error:

“Failed to load resource: the server responded with a status of 404 (Not Found).”

tienen que cambiar el nombre “mokepon.html” a “index.html” y luego deslizar hasta donde tienen el script que carga “mokepon.js” en “index.html” y cambiar su direccion por la nueva direccion que esta en public.

Pueden colocar entre comillas “./” y les sera mucho mas facil colocar la direccion.

antes:

<script src= "js/mokepon.js"></script>

ahora:

<script src= "./mokepon.js"></script>

sigo sin poder ver a ambas mascotas en dispositivos diferentes, alguna recomendacion?

Lo, siento, ya intenté de todo y simplemente no me funciona en mi celular, no me presiona los botones, revisé literalmente linea por linea comparando el código de platzi con el mío, todo está perfecto. simplemente no funciona en mi celular. todo perfecto cuando lo abro desde localhost:8080 en la laptop

Dejo por acá mis resultados!

https://github.com/alejonaranjo83/Mokepon.git

Si alguien más se estaba preguntando porqué el archivo html debe llamarse index.html, encontré este artículo que lo explica. Espero les sea de utilidad:

https://axarnet.es/blog/que-es-index-html

A mi no me pregunten como llegue hasta aca: lo voy a considerar como magia

Antes de continuar, mi solución fue solo reiniciar la página hasta que se seleccione la mascota:

 else {
    window.location.reload()
}

El juego me funciona cuando me conecto en el navegador como localhost:8080 pero cuando mi IP:8080 no me corrió ni en la laptop ni otros dispositivos.

Finalmente, encontré que debía revisar el firewall de windows pero resulto que estaba apagado pq otra aplicación lo estaba reemplazando… el antivirus, al revisarlo vi que ese firewall si estaba bloqueando la red wi-fi con la que estaba conectado y al darla como segura me permitió abrir el juego desde cualquier dispositivo con la IP:8080.

Por si le pasa a alguien… Saludos

Después de un largo tiempo trabajando en el proyecto he logrado que funcione como a mí me gusta en un 80 %, ya que varias cosas no funcionan como yo quiero, por ejemplo al terminar el combate el jugador ganador regresa al mapa, al perdedor eliminar la imagen del mapa y varias cosas más, lo he probado en dispositivos móviles y pc’s y funciona bien.
pantalla inicio

Ambos jugadores en el mapa con npc’s

Al colisionar inicia atacando el jugador que provoco la colisión

Turno 2

Turno 5

Al terminar el combate indica quien gano y quien perdio, desaparecen los botones y aparece el boton de reiniciar.

Las capturas la hice utilizando el modo responsive ya que si este funciona lo mas probable es que la version normal funcione tambien, lo cual asi es.
Proyecto en GitHub
https://github.com/FredyBarrantes/HtmlCssJavascript.git

Cuando pongan el ip, 8080 es solo para el celular.
en la web funciona sin el ip

hostname -I

Asi para los q utilizan Linux

Por algun motivo mi juego no funciona a la perfeccion

😦 Yo lo solucione desde la primera clase.

Pense que lo habian olvidado y oh sorpresa.

Les comparto mi codigo:

<    
    boton_mascota.addEventListener("click", ()=>{
        if(inputHipodoge.checked == true || inputCapipepo.checked == true || inputRatigueya.checked == true || inputLangostelvis.checked == true || inputPydos.checked == true || inputTucapalma.checked == true){
            selecionarMascotaJugador()
        }else {
            alert("Debe selecionar una mascota")
        }
    })> 

Aaaaparte modifique el codigo para quitar el boton de seleccionar, y en cambio al dar click sobre el nombre de la mascota se oculte esa parte y salga la otra pantalla. 😄 me parecio mas fácil para cuando es en mobile, directo seleccionar al dar tap a la mascota

Yo lo había echo recargando la pagina, aunque era un poco molesto fue la solución que pensé en el momento

location.reload()

Excelente explicación

por fin estoy terminando

me sigue tirando error el tema del nombre jeje, aunque me funciona
A mí me pasó que no me agarró algunos estilos al momento de pasar los archivos a la carpeta public.
IPv4, o Protocolo de Internet versión 4, es la versión más utilizada para la asignación de direcciones en redes. Su diseño permite más de 4 mil millones de direcciones únicas, lo que fue suficiente en sus inicios, pero ha llevado a la implementación de IPv6 debido al crecimiento del internet. En el contexto de tu proyecto, utilizar IPv4 te permite establecer conexiones en redes locales, como en la prueba de tu juego, donde se requiere acceder a la dirección IP de tu servidor desde otros dispositivos en la misma red.
La solución al primer desafío del profe Juan es agregar un return :) ![](https://static.platzi.com/media/user_upload/image-5baceebc-1153-4e9f-8c1a-9575423f7268.jpg)
Bueno en realidad se esta utilizando con la misma red de internet de tu casa, bueno seria utilizarlo, con servidor web. para poder ingresar desde cualquier red de internet
Como extrañaba a este profe, sin duda es mi favorito por su forma de enseñar y la emoción que le da a su trabajo, me hace emocionarme a mi también cuando mi código también está funcionando
Hola Buenos dias, Tengo un problema cuando abro 2 pestaña del juego para escoger siempre me sale 1 solo mokepon y no tengo como hacer ka cikusion para jugar me pueden ayudar por favor![](https://static.platzi.com/media/user_upload/image-58a57c46-971b-496d-8b00-9d97da01f0af.jpg)
porque cuando le aprieto los botones para que se mueva el mokepon en el celular este se queda apretado y el mokepon sige moviendose? esto no me pasa en juegos online. Este error pasa cuando aprieto por unos segundos y aparece el mensajito en el cel de copiar, seleccionar todo etc de lo que he apretado, el cel entiende que lo he seleccionado y por eso me da esas opciones a lo que el pulsante se queda apretado aunque si yo deje de apretarlo y por consiguiente el mokepon viaja hacia el infinito..........................
Que interesante eso del return :0 yo lo que habia echo era hacer otra evaluacion cuando mascotaJugador fuera true :0 ```js function seleccionarMascotaJugador() { if (inputHipodoge.checked){ spanMascotaJugador.innerHTML = inputHipodoge.id mascotaJugador = inputHipodoge.id } else if (inputCapipepo.checked){ spanMascotaJugador.innerHTML = inputCapipepo.id mascotaJugador = inputCapipepo.id } else if (inputRatigueya.checked){ spanMascotaJugador.innerHTML = inputRatigueya.id mascotaJugador = inputRatigueya.id } else { alert("Selecciona una mascota!") } if (mascotaJugador) { sectionVerMapa.style.display = "flex" sectionSeleccionarMascota.style.display = "none" iniciarMapa() extraerAtaques(mascotaJugador) pintarCanvas() seleccionarMokepon(mascotaJugador) } } ```
se ve perfecto.
No creo que alguien vaya a leer esto muy pronto pero... ni idea de por qué, la función de detectar colisiones se gatilla siempre para el primer jugador cuando se une un segundo... pero para el segundo no pasa. Lo más extraño es que solo pasa cuando son dispositivos distintos, cuando abro dos pestañas del navegador en el mismo pc no pasa... bueno, a revisar la lección en colisiones de nuevo
A mi solo me aparecen los dos mokepones en la segunda pestaña, en la primera solo aparece uno. Cuando colisionan en la segunda pestaña me deja seleccionar ataques, en la primera pestaña como solo hay uno, literalmente no hace nada :(
se me rompio todo :C que puedo hacer para repararlo? ![](https://static.platzi.com/media/user_upload/image-94da6daf-d75b-468e-8c68-abf6cd4a9356.jpg)
si alguien continua despues de tantos años con el error de can not get otra solucion mas podria ser que al llamar la funcion: antes: app.use(express.static('public')) cambien a usar comillas dobles en public, que quede asi solucion: app.use(express.static("public"))
yo tuve el siguiente error al mover los archivos a la carpeta public*// Middleware para servir archivos estáticos*app.use(express.static(path.join(\_\_dirname, 'public'))); *// Ruta para servir el HTML*app.get('/', (req, res) => {    res.sendFile(path.join(\_\_dirname, 'public', 'mokepon.html'));}); error "cannot get /" al cambiar el nombre al mokepon.html a index.html, ahora solo se enviaba el html y no el css ni el js La solución es con path y join ```js const path = require('path'); // Middleware para servir archivos estáticos app.use(express.static(path.join(__dirname, 'public'))); // Ruta para servir el HTML app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'public', 'mokepon.html')); }); ```Con esto me funcionó
Esta clase es vital, muy buena esta funcionalidad con express js
El problema mio es que despues de jugar bien varias veces, no puedo ver el mokepon enemigo en el pc ni en el celular. Alguien le pasa? Como se soluciona? O si los profes puede ayudar. Gracias