Discord
Login
Community
DARK THEME

Help! How do I make all the sprites on a map solid?

Look at these examples. I want to create a map where all the wall objects are solids, like creating code for sprite types that tells them they are solids. https://microstudio.io/225geometrydash/solideobject/

this is the code(sorry for the //.. I'm french): init = function() player = object x = 0 y = 0 hauteur = 50 largeur = 50 end wall = object x = 0 // Déplacez le mur pour qu'il ne soit pas au même endroit que le joueur au début y = -50 hauteur = 50 largeur = 50 end collision = false end

update = function() // 1. Calculer la prochaine position (destination) local nextX = player.x local nextY = player.y

if keyboard.UP then nextY += 2 end // Y diminue quand on monte if keyboard.DOWN then nextY -= 2 end // Y augmente quand on descend if keyboard.LEFT then nextX -= 2 end if keyboard.RIGHT then nextX += 2 end

// 2. Créer un objet temporaire pour tester la collision AVANT de bouger local potentialPlayer = object x = nextX y = nextY largeur = player.largeur hauteur = player.hauteur end

// 3. Vérifier si la position de destination cause une collision if checkCollision(potentialPlayer, wall) then // Si collision, ne rien faire (bloque le mouvement) print("C - Collision bloquée") collision = true else // Si pas de collision, mettre à jour la position réelle du joueur player.x = nextX player.y = nextY print("N - Pas de collision") collision = false end end

draw = function() screen.clear("rgb(142,255,217)") // Dessine le mur d'abord pour qu'il soit en dessous du joueur visuellement // Assurez-vous d'avoir un sprite nommé "wall" et "player" screen.drawSprite("wall", wall.x, wall.y, wall.largeur, wall.hauteur) screen.drawSprite("player", player.x, player.y, player.largeur, player.hauteur)

// Correction de la virgule manquante ici // screen.drawMap("world", 0, 0, 500, 500) end

checkCollision = function(r1, r2) // Utilise les noms de variables corrects : largeur, hauteur // Note : Ce calcul suppose que x, y sont les coins supérieurs gauches des objets return r1.x < r2.x + r2.largeur and r1.x + r1.largeur > r2.x and r1.y < r2.y + r2.hauteur and r1.y + r1.hauteur > r2.y end

Post a reply

Progress

Status

Preview
Cancel
Post
Validate your e-mail address to participate in the community