Se connecter

Informatique

Création de Jeux

Sujet : [GODOT] Boucler à l'infini une tilemap
1
lgjean
Niveau 6
22 mai 2023 à 18:34:33

Bonjour

Pour un jeux de type défilement horizontal, je souhaiterais un tilemap qui pourrait tourner en boucle.
C'est à dire que le monde serait comme une planète dont on ferait le tour, si on va tout le temps à droite on revient au début du tilemap.
Comment je pourrai procéder ?

Merci !

Jean

T3rry
Niveau 10
22 mai 2023 à 19:18:47

Ca dépend de ta configuration

Tu peux téléporter le joueur de l'autre côté, ou découper ton niveau en chunk et déplacer les premiers chunks à la fin quand le joueur se rapproche de celle-ci

Ou alors si c'est en 3D tu peux avoir une planète en 3D et vraiment faire le tour de celle ci

lgjean
Niveau 6
22 mai 2023 à 20:03:54

merci pour les idées, je vais voir pour la téléportation dans un premier temps si j'arrive à ce que cela soit invisible
c'est juste un jeux 2D de type défilement horizontal

J'ai trouvé ça pour ceux qui cherchent
https://godotengine.org/qa/16627/how-to-teleport-a-rigidbody2d

lokilok
Niveau 10
24 mai 2023 à 20:16:37

Tu peux pas utiliser un ParallaxLayer pour ça ? https://docs.godotengine.org/en/stable/classes/class_parallaxlayer.html

Je sais pas si ça permet uniquement de répéter une texture ou si ça répète vraiment tous les nodes fils entièrement, donc peut-être que ça ne fonctionne pas vraiment, je sais pas.

lgjean
Niveau 6
31 mai 2023 à 14:15:42

alors là aucune idée, je vais creuser mais pour le moment la téléportation fonctionne bien

AspergeSocial
Niveau 9
07 juin 2023 à 18:12:21

Si tu fais ça en codant, ce que tu peux faire :

Tu définis la distance maximal de ta map (de préférence un nombre premier), et tu gères les coordonnées de ton personnage en les mutlipliant avec le modulo(distance_max)

En gros :d)
coordonnées_X = coordonnées_X * ( distance_max_x % coordonnées_X )
coordonnées_Y = coordonnées_Y * ( distance_max_y % coordonnées_Y )

Et en gros, vu que ta distance max est un nombre premier, bahh le modulo ne pourra être égal à 0 seulement si la coordonnées est égal à ce même nombre ( dans le cas inverse il sera toujours égale à 1 ) :hap:

JeTeDesse
Niveau 5
08 juin 2023 à 19:29:34

Dans ta classe Player :
if (this.x > game.width) { this.x = 0; } if (this.x < 0) { this.x = game.width; }

1
Sujet : [GODOT] Boucler à l'infini une tilemap
   Retour haut de page
Consulter la version web de cette page