Colisiones
Clase 5 de 14 • Curso de Game Maker Studio 2: Introducción a Creación de Videojuegos
Contenido del curso
Clase 5 de 14 • Curso de Game Maker Studio 2: Introducción a Creación de Videojuegos
Contenido del curso
Neo TRAN
David Ruiz
Adrián Camargo García
Adrián Camargo García
Jorge García
Matías Diego Balcázar Ureña
Jorge García
Francisco Contreras
Rafael Robles Colinas
Sergio Matias
Sergio Matias
Ignacio julian alejandro vera
Johandry López
Jorge García
Héctor Adrián Díaz Nagles
José David De la Cruz Elizondo
Abdiel Torres
Rafael Robles Colinas
Jhiromy Brandt Mamani Dominguez
Geimar Giovanny Delgado Fandiño
CRISTIAN MAX ROBLES TACANGA
Juan Diego Mejia Maestre
Juan Felipe
Jonathan Mejorado López
Erika Fernández
Jorge García
RODRIGO PUERTO GIRAL
Jorge García
Oscar Sebastián Pérez Alegria
Francisco Fanego
Christian Rafael Valverde Miranda
Axel Bernal
Jorge García
Samuel SCV
Jorge García
Samuel SCV
Jonathan Mejorado López
Jorge García
Ignacio julian alejandro vera
Adrián Camargo García
Jorge García
Dado que a varios nos ha pasado un problema al detectar la colisión, lo que se puede hacer es lo siguiente:
Colocar nuestos dos objetos (Player y Wall) como solidos
Agregar a nuestro objeto wall un evento de Collision, y seleccionamos a nuestro player.
Ya con eso debería de ser suficiente para que funcione correctamente.
Gracias, haciendo esto funcionó, pero debería funcionar tal cual lo ha hecho en el tutorial. Espero lean este comentario y nos expliquen por que no funciona si lo hemos hecho al pie de la letra del video.
Gracias compañero! Como siempre la comunidad salvando a los cursos de Platzi!
Ya el usuario Neo TRAN publicó una solución (en el objeto Wall) que fue la que seguí, pero.....en la clase 7 se ve que el profesor si colocó el evento colisión al objeto player pero por alguna razón no salió en el video y además no hubo necesidad de palomear Solid en ambos. Para seguir igual que el maestro por las dudas mejor borre la colisión en wall y la deje en player y quite solid (tal cual el profe) y ya me funcionó. *Si estoy mal, me corrigen compañeros para borrar esta aportación, seguimos.
Muchas gracias por complementar, a veces por la edición perdemos un poquito la continuidad.
funcionó, muchas gracias
Hola, para clarificar a los que han tenido problemas con esta clase.
Durante la edición del video se perdió un pequeño segmento en donde activo la casilla "solid" de nuestra pared. Lamento la confusióon.
Gracias por complementar el contenido. ¡Éxito!
En Wall ✔ Solid . Y agregar un evento de colisión, sea en el player o en wall Así me funcionó
Gracias a usted profesor por tan espectacular curso! Gracias a nuestros compañeros estos mínimos detalles de edición nos ayudan a explorar por nuestra cuenta soluciones y ampliar nuestra visión a la hora de trabajar
Para los que tienen problemas, otra solucion mas facil seria esta:
Sin poner fisicas, objetos solidos, ni propiedades de colision, solo hay que hacer esto:
Ponen un evento de colision en el jugador con la pared !.
Luego ponen este codigo:
x = xprevious y = yprevious
Y listo!
EXPLICACION: El evento de colision detecta cuando un x objeto, en este caso el jugador, colisiona con otro objeto, (objWall), y Xprevious y Y previous significa que cada que x objeto se mueve o cambia de posicion, su posicion en la que estaba antes de moverse se guarda en estas variables, por lo tanto el objeto player irá hacia su posicion en X y Y antes de colisionar con la pared, por lo que no la podrá atravesar.
Perdon si no explico bien jaja, nunca habia dado un aporte
Genio, de todas las suluciones, funciono esta, gracias
Buenas, quiero agregar más a la solución establecida. Debido a que la solución eliminar por completo la collision shape que creamos en el vídeo. La solución sería lo siguiente:
Ir al sprite y seleccionar collision mask
Cambiar el modo a manual
Y ya pueden editar la colisión a su gusto
También noté que sólo necesité poner como sólido a la pared
Muchas gracias por complementar. !Éxito!
Este comentario me ayudó mucho. Gracias
Yo no me colisiono, yo me escondo 7u7 atte: el dinosaurio que no se quiere extinguir.
Si no colisiona capaz sea porque lo están arrastrando desde SPRITES y les sale una ventanita que aceptan lo que haces es crear como un objeto fantasma por eso es que lo atraviesa// Debes jalarlos desde OBJECTS U OBJETOS ya que ahí no les saldrá una ventanita para aceptar y solo se pondrá y podrán colisionar
Pienso en que el detalle de edición nos hizo mas libres para la solución al problema, cada que pase algo como esto no te frustres pensando en que el profesor explico mal y piensa que es una Oportunidad Valiosa para poner a prueba tus conocimientos, Gracias a todos los compañeros que dejaron sus soluciones!
exacto, esto no ayudo a explorar un poco por nuestra propia cuenta el game maker studio 2
Mi Muro Con ayuda al comentario de Neo TRAN
→
→
← ←
buen rato pensando por que el error jaja,en el muro poner solid y en el player(bolita) poner un evento de colision contra muro
🕹️ Guía Maestra: Movimiento y Colisiones Pro
Para lo que no les funciono, y su objeto no respeta la física y sigue como si nada.
🚀 Lógica de Movimiento Inteligente
En lugar de "teletransportar" al jugador (lo que causa que atraviese paredes), usamos una validación previa. Si la casilla está libre, avanzamos; si no, nos quedamos quietos.
velocidad (Define la intensidad del desplazamiento).place_meeting(x, y, obj) (Revisa colisiones antes de que ocurran).💻 Código
// --- MOVIMIENTO A LA DERECHA --- if (!place_meeting(x + velocidad, y, obj_muro)) { x += velocidad; } // --- MOVIMIENTO A LA IZQUIERDA --- if (!place_meeting(x - velocidad, y, obj_muro)) { x -= velocidad; }
Genial, no puedo seguir porque no puedo poner la colisión, ya intente todos los aportes pero sigue sin funcionar
Alguien me ayuda?
Asignaste bien la colision de player a wall ? y tambien pusiste ambos en solidos ?
Profesor Jorge Garcia,cuando pongo "run" en el GameMaker,mi personaje puede pasar el "wall".No entiendo,me puede dar un solucion? Gracias.
Hola Erika.
Probablemente no tienes activada la opción "solido" en alguno de tus dos objetos o no existe el evento de colisión. Intenta con ello.
Éxito.
Buenos días, hago todo tal cual, por alguna extraña razón el modify collision shape no funciona, mi personaje tiene poderes y atraviesa el muro. ahí que? Debería funcionar la explicación del profe, - 2 : eliminé la colisión de la pared y tampoco, 3: apliqué el evento de colisión al objeto pared en el personaje y ahí si funcionó.... pero me queda la primera duda. ah, ambos están como solid - -gracias por los aportes
Hola!
Es necesario el evento colisión en cualquiera de los dos objetos para que se active. Aunque ambos estén solid, si no existe colisión definida en alguno (aunque el evento esté vacío), no va a suceder.
Saludos, cuando le doy a play se me abre una ventana en el navegador opera. como puedo cambiar eso?
Cerré la herramienta en la que veo si la capa intances está seleccionada y no se como re abrir
Layouts>>Reset Layout Está a lado de Marketplace arriba de todo
Marqué las casillas indicadas mas no funcionó ayuda pfv.
CARA:
PARED:
Resultado(no hubo colisión)
Intenta añadir el evento de colisión en player en vez de en la pared.
Oye, Porque ami no me sirve las collisiones, me puede ayudar?
Claro Samuel, ¿puedes compartirme más detalles de tu problema?
Profesor Jorge Garcia, dos dudas, cuando tengamos mas elementos, o en los videojuegos que tienen mas elementos, las colisiones ¿ se crean una por una para todos los objetos que colisionan en este caso contra el objeto player o se puede hacer como un arbol de objetos padre para asignarlos?
y otra duda por que al momento de hacer que mi personaje subiera o bajara el codigo queda asi Para subir lo asigne asi y aqui asigne la tecla arriba y = y-spd; Para bajar asi y aqui asigne la tecla abajo y = y+spd;
¿No deberia ser al reves, o que hice mal ?
Hola Jonathan:
Todo al pie de la letra pero no puedo hacer que colisione
Revisa la sección de aportes, el usuario Neo TRAN compartió una solución y funciona.
Lamento la confusión. Se perdió un pedacito de vídeo en la edición. Hay que activar la casilla SOLID en los objetos para que funcione.