So i wanted to create a one-way platform for my game, I'm a beginner in GameMaker (and coding in general) , and new to StackOverflow so I don't know how to do it.I have my obj_player, with a create, and step events.I have an obj_oneway with no code attached to it.
So here's my create and step events for my player :
// Create Eventmove_speed = 4; jump_speed = 16;move_x = 0; move_y = 0;tmWorld1 = layer_tilemap_get_id("tiles");// Step Eventmove_x = move_speed * sign(image_xscale); // Le joueur se déplacera dans la direction où il fait face// Vérifier s'il y a un mur dans la direction où le joueur se déplaceif (place_meeting(x + move_x, y, tmWorld1)) { image_xscale *= -1; // Retourner le sprite et changer de direction}// Effectuer une vérification de collision personnalisée avec obj_onewayvar oneway_id = instance_place(x + move_x, y, obj_oneway);if (oneway_id && oneway_id.object_index == obj_oneway) { // Vérifier si le joueur se déplace vers le bas et est au-dessus de la plateforme if (move_y > 0 && y <= oneway_id.y) { // Sauvegarder le masque de collision d'origine var original_mask = oneway_id.mask_index; // Désactiver temporairement les collisions depuis le bas oneway_id.mask_index = 0; // Appliquer le déplacement move_and_collide(move_x, move_y, tmWorld1); // Restaurer le masque de collision d'origine oneway_id.mask_index = original_mask; } else { // Si le joueur n'est pas en train de descendre ou est au-dessus, effectuer une vérification normale de la collision if (place_meeting(x + move_x, y, tmWorld1)) { // S'il y a un mur devant, arrêter le déplacement horizontal move_x = 0; } move_and_collide(move_x, move_y, tmWorld1); }}else { // Si le joueur n'est pas sur une plateforme à sens unique, effectuer une vérification normale de la collision if (place_meeting(x + move_x, y, tmWorld1)) { // S'il y a un mur devant, arrêter le déplacement horizontal move_x = 0; } move_and_collide(move_x, move_y, tmWorld1);}if (place_meeting(x, y + 2, tmWorld1)) { move_y = 0; if (keyboard_check_pressed(vk_space)) { // Utiliser keyboard_check_pressed pour déclencher le saut une seule fois move_y = -jump_speed; }} else { if (move_y < 10) { move_y += 1; }}I did the collision masks of the two sprites, a rectangle for the two of them.When I am under the platform, I can pass through it, but when I land on it, I can too, and I want the player to walk on the platform.On the tiles layer, there are some tiles, but the one way platform is not on this collision, it is an object and I saved it in the Instances layer.I have tried many things and I still don't understand why it does not work.If you have advices for my code I'll take them too.Thanks !