Bonjour/soir...
Dans ma quete d´apprentissage visant à créer le jeu ultime, je me retrouve face à un petit problème de conception.
La situation :
Le premier milestone de mon projet est un sokoban... pas trop dur à réaliser apparemment, mais je souhaite tout de même créer les éléments de ce jeu de façon à pouvoir les réutiliser. Le principe d´un sokoban : pousser des caisses!
Le problème : Pousser des caisses ne semble pas trop compliqué au premier abord, il suffirait d´avoir un tableau de la taille de l´espace de jeu pour mémoriser la position des caisses, et de faire des opérations dessus en fonction de la position du joueur... no problem pour cette conception mais... irréutilisable!
Tout d´abord parce que le tableau de caisses est creux, occupant donc un espace mémoire sans l´utiliser réellement! Aucun intérêt...
Second essai : On ne souhaite garder que les caisses. Ok! on va faire une liste de structures "caisse" qui mémorisera pour chacun sa propre position! plutot sympa, pas de gaspillage mémoire et en plus pour bouger une caisse il suffit de modifier ses coordonnées! Le pied en fait!
Ou pas... Comment je fais pour savoir si je bouge une caisse? je dois me farcir la liste entière à chaque mouvement? mais ca va pas la tête? c´est pire qu´avant!!
Pareil, irréutilisable... pourtant, ma structure caisse me plait... Damn! je sais pas comment faire...
Voilà... je suis encore bien noob en structures de données donc j´ai beau chercher... la solution me fuit! Comment gerer des interactions en fonction des positions d´objets avec le moins de gaspillage possible?
Si vous avez des pistes... ou de bons articles dessus?
Ca semble toucher à la collision ce genre de truc, mais le domaine me parait encore un peu hardcore. Pourtant, la simple sélection d´un personnage/item à la souris est une action élémentaire dans beaucoup de jeux, et c´est bien ce type d´évenement...
Merci 