Page 1 of 3

Scrolling latéral style "montagnes" (astuce)

PostPosted: 23 Jan 2016, 17:47
by grosged
Il y a peu, j'ai discuté avec Epharius d'une astuce concernant le scrolling latéral:
Au moyen de quelques diagonales bien placées (et au bon moment, c-à-d pas hors écran)
On peut donner l'illusion d'un scrolling vers la gauche (par ex.)
Il suffit de respecter certaines règles:
-une diagonale ascendante / trace sur l'écran
-une diagonale descendant \ quant à elle , gomme.
-une surface plane n'est ni plus ni moins qu'une zone entre deux diagonales.

Image

(voir archives_voir.php?id=415248 )

Il est même possible d'aller 2 fois plus vite, en faisant un décalage de 2 pixels (dans ce cas, les montagnes seront affichées en "trame" style damier, et il faudra que les diagonales et plats soient de longueur paire)

Image
Dans cette 2ème version, vous remarquerez un léger bug : il y a parfois, tout à droite de l'écran, des points (noirs ou blancs) qui traînent , c'est à cause des collines/crevasses "pointues" (il suffit de forcer le programme à faire au moins un peu de surface plane pour corriger ça)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 23 Jan 2016, 22:53
by Epharius
Au début je croyais que c'était de la magie, parce que je ne savais pas que Line() pouvait prendre en cinquième argument d'effacer ou de tracer :p
En même temps sur Ti-82 Stats.fr on n'avait pas la possibilité...

En tout cas, c'est tout de même impressionnant, faire ça en basic ! Si on veut être propre, on peut toujours faire une ligne qui efface le côté droit de l'écran dans la 2ème version, au prix d'un peu de rapidité.
Je pense que ça va donner des idées aux gens qui veulent créer un Worms en Ti-Basic :p

Faudrait voir si on peut pas encore accélérer en faisant des déplacements aléatoires directement dans la boucle au lieu de prendre un nombre dans une liste (qui prend quand même pas mal de temps)...

Bref, bon travail d'optimisation ! Prochaine étape, comparer avec une routine assembleur :bj:

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 00:03
by grosged
Hé non! On n' dirait pas un programme en Basic, hein ! :p

J'ai ensuite fait une version 2 (2x plus rapide) avec le bug corrigé

J'ai inclu (vite fait) un bidule que l'on peut faire bouger (pour l'instant sans test de colllision ni limite d'écran)
Concernant la compatibilité avec des modèles plus anciens, j'avoue ne rien avoir testé (seulement TI84Pocket.fr & TI82Advanced)
EDIT: testé aussi sur TI-83 Plus, TI-83 , et ça tourne aussi :)
Epharius, tu es sur que ça ne fonctionne pas sur Ti-82 Stats.fr ? (en l'occurence, 5ème paramètre de l'instruction LINE()

NB: je conseille de quitter le mode MATHPRINT pour le mode CLASSIQUE, et de mettre tout en OFF (GridOff,AxesOff, etc)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 00:07
by Adriweb
Impressionnant pour du Basic ! :o

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 00:11
by grosged
Oui ! J'ai été moi-même bluffé par le résultat !
Ne vous fiez pas à l'animation gif : c'est un poil plus rapide sur ma TI84Pocket.fr !!
(Testez-le sur calculatrice, vous verrez ..!)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 09:42
by Dream of Omni
Excellent travail! :) Si jamais tu réussis à ajouter le test de collision et faire un petit jeu simple de ceci, ce serait magique :)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 10:01
by grosged
Merci :)
Je vais continuer le développement... en tentant de faire "light" ;)
à tous: de votre côté, n'hésitez pas à expérimenter/modifier librement la méthode d'affichage (je mets toujours le fruit de mes recherches en Domaine Public)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 11:31
by Wistaro
Waw, je suis bluffé pour du basic! :) :bj:
Voilà qui va ouvrir de nouvelles possibilités pour les jeux !


Pourrait-on avoir une explication détaillée du fonctionnement ? Avec l'optimisation c'est pas forcément évident de bien comprendre comment ça fonctionne.

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 12:01
by grosged
Imagines que tu traces en noir une diagonale , dans le sens d'un slash /
puis tu traces encore cette diagonale, mais décalée d'un pixel vers la gauche, et tu répètes encore et encore : cela a pour effet de remplir de la surface, tel un pinceau ;)
En mème temps , à quelques centimètres à droite de ta diagonale, tu traces en blanc une diagonale cette fois dans le sens d'un anti-slash \ , et tu décales aussi d'un pixel vers la gauche , et tu répètes ... Cela aura pour effet d'effacer/gommer , petit-à-petit la trainée noire créée par la 1ère diagonale ;)
l'effet produit sera une colline / \ qui se déplace vers la gauche :)
Tu vois le principes ?

nb: on peut aussi y aller par décalage de 2 pixels (ira 2x plus vite, et un joli tramage en prime)

Re: Scrolling latéral style "montagnes" (astuce)

PostPosted: 24 Jan 2016, 13:07
by Wistaro
Ah, je comprends mieux !
Sur les screens, la map est générée aléatoirement ou avec des valeurs prédéfinies ?