π
<-

[ASM] Le jeu du tunnel

Assembleur, Axe, C/C++, ICE...

[ASM] Le jeu du tunnel

Unread postby Epharius » 02 Jun 2015, 19:43

Hello tout le monde !

Voici un tout nouveau jeu à peine fini (pas de menu...) que je n'aurais pas uploadé si Plokki ne me l'avait pas demandé, c'est pour dire à quel point j'aurais aimé garder cette horreur pour moi :D

Présentation
Alors, ce jeu est fait en assembleur seulement pour ti-82 stats(.fr) et ti-83 (impatient d'avoir ma 83 PCE en passant, ça me changera de ma stats.fr), si vous voulez, vous pouvez l'essayer sur 83+ mais je ne donne pas cher de votre calculatrice...
Ce tunnel est aléatoire : y'a deux ld a,r pour la barre du haut et la barre du bas qui délimitent le terrain.
J'ai utilisé dans ce programme la routine de movax (sf... cf tutoriel d'ASMGURU) pour afficher le sprite. Alors là tout le monde s'insurge : quoi t'as même pas utilisé la routine d'Ion ? À ces gens là je répondrai : "je n'ai aucune raison valable à donner", j'ai commencé avec cette routine et j'ai continué avec celle-ci :p

Que dire d'autre... si quelqu'un à des idées pour :
  • Accélérer le tout : et je veux pas de ben uttilyze la roue tinne deux ion !!! :p
  • Pour que le jeu soit plus dur : mais ça rejoint le précédent point.
  • Trouver une technique pour revenir à l'écran de calcul (pour l'instant j'ai mis un _dispDone)
  • Je vous avez dit que j'aimais les listes à puce


Screenshot
Voici le traditionnel screenshot pour voir à quoi ça ressemble :
TUNNEL.gif


Notez cet incroyable bégaiement de la part de la calculatrice (dddd.. done, done !). Comme je l'ai dit plus haut c'est pour revenir à l'écran de calcul.
Voila le lien permettant de télécharger le programme avec les sources (eh ouais ça rigole pas) mais pas commenté. Vous comprenez, il m'a prit au dépourvu :p

Allez, bon jouage !
You do not have the required permissions to view the files attached to this post.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Le jeu du tunnel

Unread postby Lu_Lu54 » 02 Jun 2015, 19:54

Je verrais bien un menu...
sinon pour rendre plus difficile, je dis sûrement n'imp, parce que je suis du mauvais côté de la barrière pour donner des idées réalisables, mais ça ajouterai du piquant du mouvement de la map. genre elle évolue et se modifie
sinon j'aime bien la phisyque du truc, et le côté flouté qui donne un effet de masses qui évolues :P
un grand gg!
Image

Tu as une TI-nspire cx cas ?
Mes programmes :
certains utiles : CalcTriangles, HowManyDiv, DivEuclid step by step, factorisation de polynômes par la division euclidienne, Dénombrement, TransDioptres step by step
d'autres plus expérimentaux ;) : sommes2dés, DecPi
et encore plus à venir !
User avatar
Lu_Lu54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 3.4%
 
Posts: 449
Images: 8
Joined: 06 Sep 2014, 14:30
Location: Près de Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère S

Re: [ASM] Le jeu du tunnel

Unread postby Epharius » 02 Jun 2015, 19:59

Merci mais l'effet de flou n'est pas fait exprès :p
Ensuite pour le menu j'en ferai un quand le programme sera potable (comme l'eau... p'Ti rageur se suicide à la suite d'un harcèlement ). J'ai mes priorités ;)
C'est vrai que ce serait pas mal une map qui se modifie sauf que j'ai peur pour la vitesse, c'est à réfléchir !
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Le jeu du tunnel

Unread postby Lu_Lu54 » 02 Jun 2015, 20:04

ben il faut trouver le compromis, sans trop modifier pour que ça reste une vitesse potable (comme l'eau... Lu_Lu54 se prend aussi des tomates) mais en faisant un truc un rien plus compliqué
à voir...
sinon tu peux pas resserrer le tunnel en accentuant la hauteur des montagnes ?
Image

Tu as une TI-nspire cx cas ?
Mes programmes :
certains utiles : CalcTriangles, HowManyDiv, DivEuclid step by step, factorisation de polynômes par la division euclidienne, Dénombrement, TransDioptres step by step
d'autres plus expérimentaux ;) : sommes2dés, DecPi
et encore plus à venir !
User avatar
Lu_Lu54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 3.4%
 
Posts: 449
Images: 8
Joined: 06 Sep 2014, 14:30
Location: Près de Nancy
Gender: Male
Calculator(s):
MyCalcs profile
Class: 1ère S

Re: [ASM] Le jeu du tunnel

Unread postby Epharius » 02 Jun 2015, 20:08

Quand tu parles de la hauteur des montagnes, tu veux dire resserrer les deux bouts pour que ce soit plus dur ?
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Le jeu du tunnel

Unread postby Plokki » 02 Jun 2015, 21:33

Ben il est pas du tout dégeu ton tunnel :)

Si tu veux accelérer le jeu je te propose d'enlever l'affichage de la distance, ça te flingue la vitesse d'un programme ça, à moins que ce ne soit pas la fonction text( de base de la calculatrice. Où alors tu fais ta propre fonction d'affichage, ce que je pense faire pour Boost.
Tu peux également faire un scrolling de 2 pixels à chaque fois.

Et à part ça il représente quoi ton sprite ? :D
User avatar
Plokki
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 40.6%
 
Posts: 124
Joined: 02 Sep 2014, 15:15
Location: Près de... ah bah non !
Gender: Male
Calculator(s):
MyCalcs profile
Class: T°S-spé math

Re: [ASM] Le jeu du tunnel

Unread postby Epharius » 03 Jun 2015, 13:04

Mon sprite était sensé représenter un sous marin au départ, et puis je me suis dit que si je ne l'effaçait pas au fur et à mesure ça rendait plutôt bien, d'où la trainée noire derrière.
Voilà le code du sprite si tu veux voir à quoi il ressemble :
Code: Select all
.db %00011000
.db %00010000
.db %01111100
.db %11111110
.db %11111110
.db %01111100
.db %00000000
.db %00000000


Pour l'affichage des distances je veux bien l'enlever mais s'il n'y pas de record, j'ai peur que le jeu ne soit pas d'un grand intérêt. J'ai réfléchi à le faire moi même mais je ne pense pas que ça change grand chose.

à moins que ce ne soit pas la fonction text( de base de la calculatrice

Là je ne t'ai pas très bien compris, je suis en assembleur (et pas en axe) et la seule fonction qui me permet d'afficher un registre en petits caractères est _DISPOP1A :p
C'est d'ailleurs ça qui prend vachement de temps, mais comme le score ne dépasse pas les 5000 je pense que je vais le mettre dans hl (65535 ça peut aller :p). Je vais faire des push hl et des pop hl, ça prendra pas beaucoup de states. Pour le moment c'est fait avec la romcall qui incrémente op1 et après je l'affiche avec _DISPOP1A. Autant te dire que ça prend du temps.

D'ailleurs pour tout ceux qui se lancent dans l'assembleur, j'aimerais leur conseiller de ne jamais utiliser la romcall _Random, tellement elle est lente. J'ai réussi à doubler la vitesse de jeu en la remplaçant par...
Code: Select all
ld a,r
sra a

...le sra a étant là pour ne pas qu'un motif se répète (puisque r est juste un registre incrémenté à chaque instruction).

Et voilà ce que ça donne maintenant, après avoir enlevé l'affichage du score (je l'ai mis à la fin). Maintenant ça incrémente hl et ça fait quelques pop&push pour sauvegarder sa valeur (juste ça) :
tunnel.gif


On ne note pas une très grande amélioration niveau vitesse mais c'est déjà ça...
Voilou !
You do not have the required permissions to view the files attached to this post.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Le jeu du tunnel

Unread postby florian66 » 03 Jun 2015, 13:39

C'est vraiment bien :D
Par contre r a une valeur pseudo aléatoire.
D'ailleurs, tu utilises ionfastcopy pour rafraichir l'écran ??
Parce que moi j'ai écrit une routine du meme type mais j'ai plus de calculette pour tester :p
Si tu veux tester voilà la source: http://pastebin.com/8AsHK0DK
Mes projets : -jeu en asm z80 Zelda(en pause)

-Librairie 8 niveaux de gris en asm z80(terminé)
User avatar
florian66Premium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 14.9%
 
Posts: 109
Joined: 11 Nov 2013, 18:05
Location: Au point nemo
Gender: Male
Calculator(s):
MyCalcs profile
Class: Term S

Re: [ASM] Le jeu du tunnel

Unread postby Epharius » 03 Jun 2015, 13:45

Par contre r a une valeur pseudo aléatoire.

Comme je l'ai dit plus haut, il ne fait que s'incrémenter à chaque instruction mais c'est assez je pense pour que ça donne de l'aléatoire correct en le multipliant par 2 ;)

Non j'utilise _GRBUFCPY, je ne me casse pas la tête, mais je vais essayer le tienne et voir le gain que ça me donne ;)
Last edited by Epharius on 03 Jun 2015, 13:46, edited 1 time in total.
Le projet Geometry Dash est terminé ! N'hésitez pas à aller jeter un coup d’œil au topic du projet ! Vous pouvez le télécharger ici.

Unis par la flèche sacrée de cupidon :favorite:
Image
User avatar
EphariusPremium
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 8.9%
 
Posts: 1182
Images: 4
Joined: 08 Dec 2014, 17:38
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Ensimag
GitHub: MathisLav

Re: [ASM] Le jeu du tunnel

Unread postby TheMachine02 » 03 Jun 2015, 15:40

Bon alors plusieurs choses :p

Déjà, si tu veux vraiment de la vitesse et que la taille du code n'est pas trop importante, remplace ce code :
Code: Select all
   ld hl,PLOTSSCREEN+300h
   ld b,3
startLoopScroll:
   push bc
   ld b,0
loopScroll:
   rl (hl)
   dec hl
   djnz loopScroll
   pop bc
   djnz startLoopScroll


par :
Code: Select all
   ld   hl,PLOTSSCREEN+300h
   ld   b,64
scrollLoop:
   dec   hl
   sla   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   dec   hl
   rl   (hl)
   djnz   scroolLoop


bien plus rapide :)

Après deuxième point, peut-être le plus important.
Evite au maximum les routines de l'OS (oui, _ILINE je te regarde :p ), et utilise plutôt tes propres routines. Dans ce cas, en plus, tu peux utiliser une routine specialement faite pour afficher sur la dernière colonne et verticalement. Je pourrais te la faire, mais 1-j'ai la flemme, 2-faut que tu t'entraines :D .
Des petites indications : récupère d'abord l'adresse initial, puis 'or' la donnée du buffer avec %00000001, et ceux pour tout ce que tu dois afficher. Je pense que la vitesse pourra être énormément augmentée en virant ces call à l'OS.
User avatar
TheMachine02Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 30%
 
Posts: 342
Images: 0
Joined: 16 Jan 2013, 18:27
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: Médecine

Next

Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 2 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1531 utilisateurs:
>1479 invités
>46 membres
>6 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)