1

Salut les gars,

Pour les besoins de mon jeu, j'ai un effet de scroll à programmer.

Dans un des mondes, l'image de fond représente des bulles. Ces bulles doivent être animées. Après avoir fouillé dans la ROM de TokiTori, plusieurs images du même fond sont présentes mais vont simplement de droite à gauche. De source sûre, l'image est en fait fixe!

J'imagine qu'il doit y avoir une astuce de sioux pour faire croire que l'image est animée et que les bulles montent.

J'avais eu l'idée de dupliquer 3x l'image en question et jouer avec la position y de la caméra et en faisant sauter la position y de la caméra d'une image à lautre pour éviter que le tilemap engine ne redessine le tout... Mais un problème se pose: l'image de fond s'affiche avec un effet de scroll parallaxe et va donc 2x moins vite que l'image de devant...

Si vous avez suivit, comment puis-je résoudre ce problème???

Bien à vous.

Fred.

There is no spoon.

2

Pas trop le choix je pense, tu dois avoir un buffer (écran) temporaire pour les bulles, et c'est ce buffer que tu fais scroller. Ensuite tu copies à chaque frame ce fond sur le vrai écran puis tu dessines ce qui va par-dessus (map, sprites) wink
Deuxième possibilité: tes bulles sont des sprites, tu peux ainsi les animer comme tu veux (mais bon ça ça dépend justement de l'effet et des bulles en question hehe).
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

3

A rien compris...
Je vois pas comment faire scroller la map, à moins de dupliquer (comme je l'ai dit) l'image dans la hauteur.

La frame est déjà off-screen. Faut-il donc que j'alloue un 2ème buffer écran pour la map de fond?

L'image de fond est sous forme de tiles. Les tiles forment une image fixe dont les indexes sont calculés.

Il y a un lot d'images fixes, toutes de même taille. Ce lot d'images donnera l'effet suivant: les bulles bougent à gauche ou à droite de manière aléatoire. Donc de manière aléatoire, les images des iles changeront, mais pas leurs indexes dans la map. Cet effet est aussi utilisé pour le 2ème monde du jeu pour faire briller les étoiles dans le fond. Je sais, graphiquement le jeu est assez chiadé grin
There is no spoon.

4

Bah comme le dit Brunni tu dessines déjà tes bulles dans ton buffer, tu scrolls et tu dessines le reste du jeu. Ensuite tu copies ton buffer dans le buffer écran pour l'afficher à l'écran et ainsi de suite.
Ca c'est la technique la plus simple car je penses que tu peux directement scroller tes tiles et les dessiner en même temps dans ton buffer.
avatar
la Nature nous montre seulement la queue du lion. Mais je suis certain que le lion a qui elle appartient pense qu'il ne peut pas se révéler en une fois en raison de son immense taille.

- Fondateur de Ti-Gen -: http://www.tigen.org

- Membre du Groupe Orage Studio -: http://oragestudio.free.fr/

- Mon site perso -: http://tisofts.free.fr

Projets TI68K en cours:
GFA-Basic = http://www.tigen.org/gfabasic
Arkanoid.
PolySnd 3.0.

5

en fait, il y a bien plus simple:
- je duplique l'image de fond 2x en hauteur au chargement du niveau (elle a donc 2x la taille du niveau en hauteur)
- j'initialise une 3ème caméra qui bouge constamment du haut vers le bas si la caméra dépasse la taille de la map en hauteur, elle se repositionne à 0
- lors des déplacements du poussin, je fais une simple addition des positions des caméra de fond (celle qui scroll et celle qui fait le scroll parallaxe)

Je n'ai ajouté qu'une 3ème caméra.

Il y a donc 3 caméras:
- une pour le plan avant
- une pour le plan arrière qui gère le scroll parallaxe
- une pour le plan arrière qui gère le scroll en hauteur.

Maintenant, les bulles montent et c'est relativement fluide sur une vraie machine smile
Reste plus qu'à faire saccader les bulles...
There is no spoon.

6

Si j'ai bien compris tu veux juste afficher plusieurs plans ?
Ce n'est pas possible de tout réafficher à chaque frame ?
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

7

en fait, j'ai truandé:
j'ai un tableau de Plane dans lesquels j'ai chacun des fonds à animer, puis à chaque frame, je change le plan. Et ça marche très bien.

Si j'ai utilisé cette technique, c'est pour éviter de faire un force_update à chaque frame. Avec cette technique, chacun des plans est calculé 1 fois et après seule la caméra bouge.
There is no spoon.