Scroll horizontal jeu.

Hackdevil Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 5 mai 2014 - 11 déc. 2011 à 04:39
Hackdevil Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 5 mai 2014 - 25 janv. 2012 à 18:17
Bonjour,
J'ai beau chercher mais j'ai du mal à trouver la réponse à ma question.

J'aimerai comprendre le système de scroll dans des jeux du genre super mario bros, sonic...
Quand on déplace le personnage vers la droite, le tableau défile et on avance dans le niveau.

On peut toujours faire un picturebox plus grand que le fenêtre et utiliser le paramètre scrollbar mais je ne suis pas sûr que ce soit le mieux.
Auriez-vous une solution sans utiliser d'API ni de moteur graphique... le tout en VB.net.

Merci.

3 réponses

Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
24 janv. 2012 à 16:22
Sans utiliser d'API ni de moteur graphique
Heeeeee.....
Deux picturebox légèrement plus grand que la fenêtre ^^
Un afficher et l'autre en chargement, je m'explique :
Quand tu est au début de ton niveau tu affiche une image, problème si elle est de la taille de ton niveau complet ça peut devenir lourd en mémoire.
Donc si tu découpe ton image en n partie tu peut en afficher une pendant que l'autre se met à jour (dans un thread différent de préférence pour éviter des ralentisements)
Ensuite quand tu avance tu "colle" les deux image (en jouant avec .Left par exemple). Une fois que ta 1ere image n'est plus afficher du tout, tu charge l'image suivante dedans et recommence.
Je pense (mais a tester) que pour que tout se passe bien l'idéale serais des picturebox entre 120% et 150% de la taille de ta fenêtre. Ainsi tu donne le temps a ton autre thread, celui qui charge les images, de faire les mises a jours (que ton perso se déplace de droite a gauche ou de gauche a droite).

Autre solution (sur le même principe), 3 images de la taille de ta fenêtre (une en mise a jour, les autres en affichages)

J'espère m'être fait comprendre (j'ai un peut de mal ces temps-ci )

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
24 janv. 2012 à 16:34
Voir, toujours sur le même principe, 9 images en carré :
#######
# # # #
#######
# #P# #
#######
# # # #
#######
Le "P" étant ton personnage, et chaque "carré" une image
Moins facile a mettre en place mais te permet de te déplacer sur la hauteur

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
0
Hackdevil Messages postés 28 Date d'inscription dimanche 2 janvier 2005 Statut Membre Dernière intervention 5 mai 2014
25 janv. 2012 à 18:17
Merci pour tes réflexions, je n'espérais plus de réponses depuis le temps ^^

Bon pour ta première et deuxième proposition, je vois ce que tu veux dire mais je ne comprends pas comment tu places tes images. Superposées les unes sur les autres ? A côté l'une de l'autre ?
Parce que si c'est superposé, quand le perso arrive au bout du picturebox, comment ça se passe après ? A moins que le perso ne bouge pas du tout et que seul le niveau bouge ?

Ah... je pense comprendre en faisant un schéma. Deux picturebox superposées dont une affiche la première image. Quand on appui sur la flèche droite, le niveau se déplace vers la gauche et en même temps la deuxième picturebox commence à afficher l'image à droite (synchronisé au défilement de la première).
Mais c'est possible ça, de placer une image dans une picturebox en la faisant apparaitre par la droite ?

Pour les 9 carrés, c'est sympa et faisable mais le boulot à effectuer est énorme ! Il y aura des milliers d'images dans le jeu du coup...
La conception au niveau programmation n'est pas si complexe en soit, il suffit de numéroter chaque image et de programmer en faisant une incrémentation ou décrémentation à l'appui sur la flèche gauche ou droite. Le tout avec un timer. L'image 1 deviendrai l'image 4, l'image 4 deviendrait l'image 7 etc...
Il faut juste trouver un logiciel qui découperait mon image en x images de mêmes dimensions.

Un problème risque de se poser. La transparence du personnage.
Si je fais mon perso avec une picturebox ou label ou autre, j'ai testé et un élément sur une picturebox ne peut être transparent. Ça ne fonctionne que sur le fond du form...

Ouh, j'ai mal au cerveau... :)
0
Rejoignez-nous