π
<-
Chat plein-écran
[^]

Jetpack Impossible

Langage C, C++, et Assembleur.

Jetpack Impossible

Message non lude Hayleia » 15 Mai 2014, 08:47

Non, vous ne rêvez pas. Non, vous ne cauchemardez pas non plus. Bon, bref, oui c'est la vraie vie, oui je programme sur Nspire aussi maintenant.

Voici donc mon premier projet sur Nspire (l'inversion de matrice par le pivot de Gauss ne compte pas comme un projet), Jetpack Impossible, du nom du jeu pour smartdevices.

Votre but est d'aider l'astronaute à collecter un maximum de boules vertes avant de se faire tuer par une météorite (pourquoi faire un scénario quand on peut juste faire un jeu ?). Vous avez pour cela votre Jetpack et ses deux boutons qui vous permettent d'aller vers le haut (l'un pousse plus vers la droite, l'autre plus vers la gauche), et vous comptez sur la gravité pour redescendre (logique la gravité dans l'espace quand il n'y a rien en dessous de vous). Notez que vous êtes invincible avant d'attraper votre première boule verte (qui veut jouer au jeu des 7 incohérences physiques ?) et que vous pouvez passer de la droite vers la gauche, du haut vers le bas et inversement.

Un screenshot vaut mieux qu'un long discours donc en voici un.
Image

À faire:
-sauvegarde du highscore
-affichages propres du score (je parle du truc qui vous affiche quelle médaille vous avez quand vous perdez) ?
-menu (pourquoi faire ?) ?

Je remercie en passant pierrotdu18 pour son jeu Flappy Bird dont le code m'a été très utile pour apprendre à me servir de nSDL, ainsi que pour la police d'écriture qu'il utilise dans son programme que j'ai moi aussi utilisée ici.

Lien de téléchargement: http://ti-pla.net/a59790

PS: n'hésitez pas à regarder le code source et à me dire ce qui est ridicule dedans, si vous me laissez faire n'importe quoi je continuerais à faire n'importe quoi.
Image
ImageImageImage
Pokemon Topaze
(Axe) discussion and download links here

(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:
Avatar de l’utilisateur
HayleiaDonat.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 69.7%
 
Messages: 2276
Images: 1
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
Classe: Templar

Re: Jetpack Impossible

Message non lude pierrotdu18 » 15 Mai 2014, 09:13

Ah ah ça a l'air pas mal! :)
Et de rien pour la police :D Des que j'ai vu le screen je me suis dit "eh mais c'est ma police!" :p Et btw, encore un grand merci à Lepzulnag grâce à qui la création de polices personnalisées est désormais possible et très simplifiée.
Bonjour
Avatar de l’utilisateur
pierrotdu18Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 7%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
Classe: MP* Lycée Henri IV

Re: Jetpack Impossible

Message non lude Hayleia » 15 Mai 2014, 09:21

pierrotdu18 a écrit:Ah ah ça a l'air pas mal! :)
Et de rien pour la police :D Des que j'ai vu le screen je me suis dit "eh mais c'est ma police!" :p Et btw, encore un grand merci à Lepzulnag grâce à qui la création de polices personnalisées est désormais possible et très simplifiée.

Merci à vous deux dans ce cas ^^

Et au fait, je n'ai pas testé sur Nspire monochrome (puisque je n'en ai pas) donc je ne sais pas s'il marche et s'il est jouable avec ces couleurs.
Image
ImageImageImage
Pokemon Topaze
(Axe) discussion and download links here

(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:
Avatar de l’utilisateur
HayleiaDonat.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 69.7%
 
Messages: 2276
Images: 1
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
Classe: Templar

Re: Jetpack Impossible

Message non lude pierrotdu18 » 15 Mai 2014, 09:25

Normalement, oui, car tu as repris la ligne
Code: Tout sélectionner
screen=SDL_SetVideoMode(320,240,has_colors?16:8,SDL_SWSURFACE);
:)
Sinon, sers toi du petit truc de matref pour essayer en émulation pour la monochrome ;)

Je vais tester sur ma Nspire avec Ndless 3.6, mais il n'y a aucune raison pour que cela ne marche pas... ;)
Bonjour
Avatar de l’utilisateur
pierrotdu18Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 7%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
Classe: MP* Lycée Henri IV

Re: Jetpack Impossible

Message non lude Hayleia » 15 Mai 2014, 09:31

pierrotdu18 a écrit:Normalement, oui, car tu as repris la ligne
Code: Tout sélectionner
screen=SDL_SetVideoMode(320,240,has_colors?16:8,SDL_SWSURFACE);
:)
Sinon, sers toi du petit truc de matref pour essayer en émulation pour la monochrome ;)
Ah oui, j'avais oublié ça. Je viens de tester donc, et ça a l'air de marcher, avec juste trois problèmes:
-beaucoup plus de lag o.o
-le score s'affiche mais ne n'efface pas (donc le 0 est lisible, le 1 est écrit au dessus du 0 et on commence à ne rien comprendre, etc)
-on ne voit pas trop la différence entre les verts et les orange, mais au pire on sait que les verts sont ceux qui ne bougent pas.
Image
ImageImageImage
Pokemon Topaze
(Axe) discussion and download links here

(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:
Avatar de l’utilisateur
HayleiaDonat.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 69.7%
 
Messages: 2276
Images: 1
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
Classe: Templar

Re: Jetpack Impossible

Message non lude pierrotdu18 » 15 Mai 2014, 09:40

Les lags... Eh bien...
Je sais pas :p

Sinon, pour le score, au lieu de faire SDL_FillRect(screen,NULL,0);, crées une SDL_Surface* background, que tu rempliras de noir au début et que tu n'auras plus qu'à flipper à chaque itération sans la ré-remplir de noir ;) Je pense que ça marchera ensuite.
Sinon, pour que le flip soit plus rapide, fais ce que j'ai fait au début de mon code, des SDL_DisplayFormatAlpha sur chacune de tes surface au début, ça les convertit pour qu'elles soient adaptées au format de ton écran et qu'elles n'aient pas besoin d'être converties à chaque blitt.
Ensuite, pour les couleurs, je te conseille de charger d'autres sprites. Genre, pour le vert, tu fais
Code: Tout sélectionner
if (has_color) {//charger sprite_cx} else {//charger sprite_monochrome}

Et pour les monochromes, retouches toi des images avec des nuances de gris bien visibles comme ça on verra bien la différence...

Voilà :)
Bonjour
Avatar de l’utilisateur
pierrotdu18Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 7%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
Classe: MP* Lycée Henri IV

Re: Jetpack Impossible

Message non lude Adriweb » 15 Mai 2014, 09:47

Joli :)
Avatar de l’utilisateur
AdriwebAdmin.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 37.3%
 
Messages: 11236
Images: 830
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
Classe: (ingénieur)
Twitter: adriweb
GitHub: adriweb

Re: Jetpack Impossible

Message non lude Lepzulnag » 15 Mai 2014, 09:59

Super ;)

Le code est bon, rien ne m'a choqué. Mini-détail d'écriture, je ne sais pas si tu le fais exprès pour que ça soit plus lisible pour toi, mais tu peux remplacer :
Code: Tout sélectionner
while (K_7||K_9) {}

par :
Code: Tout sélectionner
while (K_7||K_9);

Et de même tu peux tout simplement enlever les accolades dans les lignes de ce type :
Code: Tout sélectionner
if (K_ENTER) {score++;}

Si tu ne mets pas d'accolades après un
if
,
while
,
do
, etc... seule la commande suivante sera affectée.

Ensuite je n'ai pas tout à fait compris ton histoire "d'ombres". Je ne vois pas d'ombres quand je lance le jeu.

Et enfin (et cela s'adresse aussi à Pierrotdu18 pour son Flappy Bird :D) cela me faisait trop mal aux yeux de voir chargée une énorme police, alors que tu n'utilises que les dix caractères numériques, alors j'ai créé une fonction
nSDL_LoadNumericFont
(du même genre que
nSDL_LoadCustomFont
), mais qui ne prend en argument qu'un tableau contenant les dix caractères-chiffres. Dans ton
fonts.h
tu pourras ainsi supprimer toutes tes lignes de 0, et gagner beaucoup de kilo-octets de mémoire (27 ko si tu n'utilises que la mini-font) !!

Voici la nouvelle archive contenant la fonction
nSDL_LoadNumericFont
:
http://tiplanet.org/forum/archives_voir.php?id=46058
Dernière édition par Lepzulnag le 15 Mai 2014, 10:33, édité 1 fois.
Avatar de l’utilisateur
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 78.5%
 
Messages: 151
Inscription: 02 Aoû 2012, 21:15
Localisation: Bretagne
Genre: Non spécifié
Calculatrice(s):
Classe: M2 Maths

Re: Jetpack Impossible

Message non lude Hayleia » 15 Mai 2014, 10:31

pierrotdu18 a écrit:Les lags... Eh bien...
Je sais pas :p

Sinon, pour le score, au lieu de faire SDL_FillRect(screen,NULL,0);, crées une SDL_Surface* background, que tu rempliras de noir au début et que tu n'auras plus qu'à flipper à chaque itération sans la ré-remplir de noir ;) Je pense que ça marchera ensuite.

Ça ne règlera pas du tout le problème du score puisque je ne fais jamais DSL_FillRect(screen,NULL,0) dans la boucle principale.

pierrotdu18 a écrit:Sinon, pour que le flip soit plus rapide, fais ce que j'ai fait au début de mon code, des SDL_DisplayFormatAlpha sur chacune de tes surface au début, ça les convertit pour qu'elles soient adaptées au format de ton écran et qu'elles n'aient pas besoin d'être converties à chaque blitt.
Ensuite, pour les couleurs, je te conseille de charger d'autres sprites. Genre, pour le vert, tu fais
if (has_color) {//charger sprite_cx} else {//charger sprite_monochrome}
Et pour les monochromes, retouches toi des images avec des nuances de gris bien visibles comme ça on verra bien la différence...

Ok, je vais voir pour ces deux là, merci :)

Lepzulnag a écrit:Le code est bon, rien ne m'a choqué. Mini-détail d'écriture, je ne sais pas si tu le fais exprès pour que ça soit plus lisible pour toi, mais tu peux remplacer :
...
Si tu ne mets pas d'accolades après un
if
,
while
,
do
, etc... seule la commande suivante sera affectée.
Pour le if, c'est fait exprès, je trouve ça plus lisible. Par contre pour le while, ça rend quand même beaucoup mieux comme tu le dis, merci pour le conseil :)

Lepzulnag a écrit:Ensuite je n'ai pas tout à fait compris ton histoire "d'ombres". Je ne vois pas d'ombres quand je lance le jeu
Non mais j'ai appelé ça "shadow" parce que je ne savais pas comment l'appeler :P
En fait c'est la sprite "blabla_shadow" est la même que la sprite "blabla" mais en tout noir. Je m'en sers pour effacer la sprite (vu que le fond est noir aussi), mais ce n'est effectivement pas vraiment une ombre.

Lepzulnag a écrit:Et enfin (et cela s'adresse aussi à Pierrotdu18 pour son Flappy Bird :D) cela me faisait trop mal aux yeux de voir chargée une énorme police, alors que tu n'utilises que les dix caractères numériques, alors j'ai créé une fonction
nSDL_LoadNumericFont
(du même genre que
nSDL_LoadCustomFont
), mais qui ne prend en argument qu'un tableau contenant les dix caractères-chiffres. Dans ton
fonts.h
tu pourras ainsi supprimer toutes tes lignes de 0, et gagner beaucoup de kilo-octets de mémoire (27 ko si tu n'utilises que la mini-font) !!
Super, je verrais ça après avoir réglé les autres problèmes (l'autre méthode gâche de la place mais fonctionne donc ce n'est pas prioritaire de la changer ;)).

Lepzulnag a écrit:Super ;)
Adriweb a écrit:Joli :)

Merci ^^
Image
ImageImageImage
Pokemon Topaze
(Axe) discussion and download links here

(19:29:36) noelnadal: plus sérieusemen​t, j'ai très peu de problèmes
(22:45:44) Clifward: J'aime rire du malheur des autres :troll:
Avatar de l’utilisateur
HayleiaDonat.
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 69.7%
 
Messages: 2276
Images: 1
Inscription: 30 Aoû 2011, 08:22
Genre: Non spécifié
Calculatrice(s):
Classe: Templar

Re: Jetpack Impossible

Message non lude pierrotdu18 » 15 Mai 2014, 11:08

Moi comme j'ai une image de fond, je ne peux pas faire de "shadow" comme toi mais si tu tiens à faire comme ça, peut être que tu devrais créer une shadow pour le texte, de 60*30 par exemple que tu pourrais blitter à chaque itération de la boucle principale pour effacer le texte....
Bonjour
Avatar de l’utilisateur
pierrotdu18Modo
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 7%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
Classe: MP* Lycée Henri IV

Suivante

Retourner vers Programmation native: Ndless & Linux

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

-
Rechercher
-
Sujets à la une
"NumWorks++": Challenge de modification matérielle pour rajouter une puce de mémoire Flash !
Offre TI-Planet/Jarrety pour avoir la TI-83 Premium CE avec son chargeur pour 79,79€ port inclus !
Offre TI-Planet/Jarrety pour avoir la TI-Nspire CX CAS à seulement 130€ TTC port inclus!
Jailbreake ta TI-Nspire avec Ndless et profite des meilleurs jeux et applications !
Transforme ta TI-Nspire CX en console Game Boy Advance!
12345
-
Donations/Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
PayPal : paiement en ligne sécurisé - secure online payments
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety 
-
Stats.
383 utilisateurs:
>344 invités
>34 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)