Le Mode graphique 7 sur la casio
Posté le 26/08/2013 18:15
Bonjour,
Il y'a peu, je me suis lancé dans la programmation d'un nouveau petit jeu de karting professionnel.
... bon , professionnel, dans la mesure où j'aimerai le rendre technique et le plus réaliste possible en ce qui concerne le pilotage.
Et vu que je ne sais pas coder en assembleur ou en C malheureusement, j'en suis réduit au basic casio de l'éditeur de programmes - remarquez, j'aime bien coder en basic parce que on utilise uniquement l'interface graphique de la casio et c'est un challenge)
Bref, j'ai pensé que la 3d serait un peu trop chargé pour ma calculatrice alors j'ai pensé au célèbre mode 7 de la super nintendo ;
Est-il possible avec la casio et l'équation du mode d'affichage ci dessous d'approcher un résultat similaire ?
par exemple avec une des "pictures" dont dispose ma Graph 75 ?
Si quelqu'un à déjà réalisé un jeu en mode 7 ou approchant, pourrait-il m'aider ?
Merci beaucoup et bravo pour ce super site !
en passant je félicite l'auteur du jeu "3d racer" car c'est lui qu m'a donné envie de commencer ce jeu.
Citer : Posté le 26/08/2013 18:25 | #
Ça risque d'être difficile, je ne suis pas un spécialiste mais l'interpréteur basic et très lent
Pour les pictures on ne peut que les afficher comme image de fond, impossible de les déplacer pour faire des sprites ou de les déformer
Y'a aussi le raycasting qui est intéressant mais même chose ...
Citer : Posté le 26/08/2013 18:38 | #
merci beaucoup, je vais étudier ça !
Je sens bien que ça ne sera pas de la tarte mais je prévois des textures très simples et uniquement plates (oui, oui, les murs aussi ) et tous les circuits sont composés de 16 x 16 blocs. enfin bref. Mais pour un fichier g1a par exemple, quelqu'un a-t'il déja fait un rendu 3d totalement plat ?
Citer : Posté le 26/08/2013 18:41 | #
Tu pourrais faire ton jeu avec un point de vue au dessus de la course
Zelda de Smashmaster
Super Geek Brothers de Siapran
Pac-Man
Pac-Man Color
Meta Ball
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Citer : Posté le 26/08/2013 19:01 | #
Merci Schtroumpf57
En fait 3D Racer a été codé à mes débuts, je pense qu'il y a pas mal d'optimisations possible.
Pour ce qui en est du mode 7, j'ai quand même des doutes, mais c'est peut-être pas impossible si tu te sers des pictures.
Ou alors tu te sers du DrawStat, et tu dessine peu de lignes pour garder un minimum de vitesse
Citer : Posté le 26/08/2013 19:03 | #
Je sais pas ce que tu appel "rendu 3D totalement plat", mais il y a wolfenstein 3D qui pourrait t'interesser. Malheureusement on a pas les sources :/
Sinon y'avais Irobot qui faisiat un début de 3D en fil de fer. Par contre là il y a les soruces.
(y'a aussi un minecraft en 3D en préparation, mais il n'y a pas de version finale pour l'instant)
Citer : Posté le 26/08/2013 19:07 | #
@Ziqumu : En gros le mode 7 c'est le fait de prendre une image, un circuit de course par exemple, et de le regarder à un angle de 45° par exemple, cela donne ça ou encore ça.
Citer : Posté le 26/08/2013 19:11 | #
Ouais je sais, mais je sais pas si c'est de ça qu'il parlait en disant totalement plat. Car il me semble que wolfenstein utiliser une 3D spéciale qui est moins consomatrice de ressource. Mais bon je m'y connait pas trop en 3D
Citer : Posté le 26/08/2013 21:22 | #
C'est la 3D que j'ai cité plus haut, le raycasting
En gros on dessine une map à plat et on place le joueur à un certain point, le jeu va ensuite "projeter" des rayon tout autours du joueur pour voir à quelle distance ils heurtent un mur (tout cela ne s'affiche pas). L'information est ensuite traduite en un trait vertical à l'écran, plus le mur est loin plus le trait est petit
Par contre les jeux que tu as cité sont en C ...
Citer : Posté le 26/08/2013 21:44 | #
@remiweb
Mais pour un fichier g1a par exemple, quelqu'un a-t'il déja fait un rendu 3d totalement plat ?
Voilà pourquoi j'ai sortie la liste des jeux 3D que je connaissais en C
Citer : Posté le 26/08/2013 23:24 | #
Autant pour moi x) en tout cas de la 3D en basic c'est pas évident
J'avais essayé un coup, rien que pour calculer quels éléments ils faut afficher ça laguais
Faut bien réfléchir avant d'essayer et méga optimiser
Citer : Posté le 27/08/2013 11:37 | #
Faut faire une fausse 3D type starwars
Citer : Posté le 27/08/2013 16:43 | #
Waou ! Merci pour toutes ces réponses !
Oui, Ziqumu, c'est bien de ce type de "3D" là que je parle ! Pas de mur, juste un terrain noir ou blanc avec des sprites pour les concurrents et le sprite du pilote est en fait une picture-background qui change selon le getkey. Ray a bien compris.
De là à faire un I-robot (un de mes jeux préféré en passant) en basic, la question ne se pose pas. mais j'avais pensé à coder les différents circuits sur une matrice de 16x16 et le programme lit la matrice pour chaque circuit joué. Mais pour convertir en image inclinée, aïe aïe aïe je vais me régaler !
Merci remiweb pour pour la technique du raycasting, c'est exactement ce que je voulais : une grille (la matrice 16x16 , quoi) avec un code pour chaque élément :1 pour le hors-piste (hachuré) 2 pour les murs (noir), 3 pour la ligne de départ/arrivée ( quadrillé ), et 4 pour le point de départ de chaque concurrent (représenté par " [ ") et le 0 correspond à rien, en fait le macadam de la route.
Les murs sont un carré noir plat en fait. Tu vois, ces décors sont très simples, le côté esthétique réside dans les sprites (que j'ai déjà fait si vous voulez les voir !).
A plus je reste connecté
[color=brown]Ajouté le 27/08/2013 à 16:55[/color] :
Je remarque que je vous ai parlé d'une équation de mode d'affichage 7 que j'ai oublié de noter
voici cette équation marticielle:
est-elle exploitable ?
Ajouté le 27/08/2013 à 16:56 :
= > où a, b, c, et d sont des coefficients de transformation; x et y sont le décalage de l'écran, x 0 et y 0 sont le décalage d'origine, et x 'et y' sont les coordonnées transformées. Tout arithmétique est effectuée sur 16 bits signé nombres à virgule fixe, tandis que tous les décalages sont limités à 13 bits. L' emplacement de la virgule est entre les bits 7 et 8.
Citer : Posté le 27/08/2013 18:40 | #
Oui c'est un calcul faisable avec les matrices, mais tu ne pourras rien en faire puisque les performances du basic sont trop basse pour pouvoir tout calculer.
Je te conseille de faire une image pour tous les cas possibles (ligne droite, virage à gauche, virage à droite ...) et de l'afficher en temps voulu, c'est pourri certes, mais c'est le mieux pour que ce soit fluide.
Ou alors tu te contentes de simples lignes figurants le bord de la route.
Citer : Posté le 27/08/2013 18:54 | #
Saches aussi que tu peux superposer deux images, par exemple en mettre une pour la route et une pour le véhicule.
Citer : Posté le 28/08/2013 01:18 | #
Tu pourrais peut-être exploiter le système de picture de dapf amélioré par purobaz
Picture 1024
Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games
Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Citer : Posté le 28/08/2013 15:05 | #
Cet add-in est très pratique, mais j'ai un peu de mal à utiliser les pictures. c'est normal, mais je pense que ça sera pratique en effet, merci !