Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » Un simulateur de vol pour la Graph 90+E !!
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Un simulateur de vol pour la Graph 90+E !!

Posté le 08/05/2019 13:46

Coucou !

Présentation

Fly Simulator (abrégé en FlySim) est un simulateur de vol pour la Graph 90+E. Le jeu se présente en 2 dimensions, vu de profil. Le but est de voler d'un aéroport à un autre, en transportant des passagers. Plus vous aurez de passagers et plus loin vous volerez, plus vous aurez d'argent pour entretenir et améliorer vos avions. Vous pourrez alors acheter de nouveaux avions et voler vers des aéroports encore plus éloignés, et ainsi avoir encore plus d'argent. Dans ce jeu l'avion reste au centre de l'écran, le paysage défile en arrière plan.

Bien entendu, pour palier à la vue en 2D peu réaliste, le jeu sera le plus poussé possible, tant au niveau de la souplesse que de l'ergonomie ou encore des mécanismes du jeu. Il est prévu d'avoir, par exemple, le choix de l'heure du vol : jour, aube, créspuscule, et nuit. Il faudra aussi gérer le moteur, les différents régimes, les manœuvres, le carburant, et la température de l'huile. En plus de devoir éviter les incendies du moteur, vous devrez répondre à la tour de contrôle !

Bref un jeu visant avant tout à vous plonger dans l'athmosphère d'un cockpit que ce soit dans les moments de calme du vol de croisière ou dans le stress d'un crash imminent avec la tour de contrôle qui vous demande des comptes.


La gestion de l'heure et du temps

L'heure sera simulée par un changement de la couleur du fond de l'écran. Pour simuler un jour, le fond est d'un bleu, l'aube est représenté par un fond mauve, le crépuscule sera symolisé par un fond de couleur orange, et la nuit par un bleu-gris très foncé.

Le temps sera moins nuancé avec la présence, ou non de nuages en haut de l'écran.

Les instruments

La jauge de carburant vous indique le carburant restant. La reserve est la zone rouge à gauche, et le voyant à la droite de la jauge, vous indique que la reserve est entamée. Il n'y pas encore de lien entre le carburant brûlé et la distances parcourue.

La température d'huile est liée au gaz. Pas de voyant, mais une partie de la jauge est colorée. Le vert correspond à une température normale. La zone orange et rouge signalent une température anormalement élevée. Si la jauge reste dans l'orange pendant 15 secondes, cela déclenche un feu moteur. Par contre, seules 10 secondes dans le rouge amènent à l'incendie. Les 3 zones correspondent à des régimes moteurs : la zone verte = 50 -> 75% des gaz, la zone orange correspond à 87,2% des gaz ou plus et la zone rouge à 100% des gaz.

L'anémomètre, vous indique votre vitesse via une aiguille. Le trait tout en haut correspond au 0. Puis chaque trait correspond à 2 pixels de déplacement horizontal à chaque *frame*. Le maximum est donc 14 pixels par *frame*. A 10fps (vitesse calculée à partir des animations des avions) le déplacement est à 140 pixels par secondes, donc un peu plus de 2,7 secondes sont nécessaire pour que l'écran soit traversé. Ce qui, à vitesse maximum, semble correct. La relation entre gaz est vitesse est : un trait = 12,5% des gaz. Les traits ont également des correspondances particulières :
- 1er trait 12,5% Comme sur certains avions le premier trait de l'anémomètre n'est pas 0. Ce premier trait ne suffit pas à faire voler l'avion même avec les deux crans de volets.
- 2nd trait 25% et 2 crans de volet
- 3ème trait 37,5% 1 cran de volet
- 4ème trait 50% vol dit *lent*
- 5ème trait 62,5% vol de croisière
- 6ème trait 78% vol de croisière rapide
- 7ème et 8ème trait 90,5% et 100% sont des régimes spéciaux réservés au décollage.

L'altimètre à lui aussi 8 trait. Celui tout en haut correspond au niveau du sol. Le sol fait 20 pixels de haut. En comptant les 30 pixels de la barre des instruments plus la hauteur de l'avion (20 pixels) le 0 de l'altimètre est de 70 pixels de haut. En comptant 20 pixels par barres de l'alti. 7x20 = 140 ; 140+70 = 210 pixels de haut. Cela laisse donc une marge de 6 pixels en haut lorsque que l'avion est à son altitude maximale.

l'horizon artificielle, vous indique l'assiette et le roulis de l'avion.

Les volets ont trois position celle actuelle est soulignée par un voyant allumé en vert clairs, les autres étant en en vert foncés. La première position celle tout en haut est le neutre. Dans le jargon on parle de volet *en lisse* car ils ne dépassent pas du profil de l'aile. La seconde position juste en dessous, au milieu, correspond au premier cran de volet, et la position tout en bas correspond au deuxième cran. Leurs utilisations sont décritent dans la partie dédiée au pilotage.

La manette des gaz et le cadrant des RpM (Rotation moteurs Par Minutes) vous indiquent ici le pourcentage de gaz, le 0 etant tout en bas du cadrant. Il y a 7 traits donc chauqe trait équivaut 14,3 % des gaz.

Les témoins du train d'aterrissage sont en rouge si le train est rentré, en vert si le train est dehors, près à l'aterrissage. Dans la vraie vie, le voyant connait une prériode transitoire en jaune/orange pour signalé que le train est en cours de sortie. Ici la sortie est tellement rapide que, par simplification, ce passage a été abandonné.

La fenêtre des fréquences vous indique quelle fréquence est actuellement utilisée lors des communications. Ce sera à vous de changer cette fréquence via les touches dédiées. Comme dans la vraie vie, on ne change pas de fréquence n'importe comment : on suit les instruction de la tour en collationnant la sortie de zone avec la nouvelle fréquence, en changeant la fréquence pour celle demandée et en s'identifiant sur la nouvelle fréquence. Les changements de fréquence en dehors de ces périodes seront prises pour des fautes de pilotages : en effet la fréquence n'est plus la bonne, donc vous ne pouvez plus communiquer avec le sol, ni le sol avec vous… Comme dans la vraie vie également, les fréquences sont hertz et celle reservées aux communicationss sont comprises dans la plage allant de 118,00 hz à 137,00 Mhz avec un pas de 0,05 Mhz. Plus récemment, le système s'est affiné aux centième de hz, mais le jeu s'arrête lui aux dixièmes.

Le radar vous indique votre position. A gauche l'aéroport de départ, à droite celui d'arrivée, vous serez représentez par une flèche pointant sur la ligne au dessus.


Le cockpit en bas de l'écran, représente les instruments de l'avion


Le Cessna 172 SP



Le Learjet 45


Le Beechcraft 1900 D


Je prévois également une gestion de plusieurs heure de la journée…

Merci d'avance de votre aide à ce projet !

Les sources de l'ancien projet sont en fichier joint et sont 100% libres de droit.
Ancien projet
Ancien projet
Concernant le code, je développerai ce jeu grâce a C.Basic du célèbre Sentaro21 !

J'ai plutôt pas mal avancé avec la gestion de l'avion qui est terminée avec les instruments, tous fonctionnels ! On peut décoller atterrir, et voler (monter, descendre et tourner) Quelques screens :






Fichier joint


Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 15/07/2019 19:28 | # | Fichier joint


J'ai également terminé le Leajet 45, second avion de ce jeu ! Le Learjet est un jet privé. selon les configurations, on peut compter 8 personnes à bord plus deux membres d'équipages, soit une dizaine de personnes à chaque vols. Mais certains aménagement intérieur (façon salon) offre moins de place. Voici le gif animé de la bête. Comme c'est un avion à réacteurs, pas d'hélice, mais pas simplicité pas de réacteurs non plus. Finalement ça choque pas trop…



"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 15/07/2019 19:29 | #


Wow, c'est super joli ! Bravo pour les artworks d'avions !!

Je me vois bien manipuler ça en 2D sur la Graph 90 sans problème. Vas-tu colorer les avions ?
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 15/07/2019 19:37 | # | Fichier joint


Sur la Graph 90+E, les dessins sont petits mais rendent très bien il y a de la place !

Pour les couleurs, je ne sais pas… Les avions sont gris même dans la vraie vie. xD Mais je peux essayer de caser des nuances de couleurs.

Par exemple je verrais bien du bleu sur le Learjet… Tiens ! j'aime même fait un train d'atterrissage sur le Learjet en 3 frames :


"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 15/07/2019 19:58 | #


C'est légitime ! Le train d'atterissage est très bien aussi, continue comme ça !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 16/07/2019 17:27 | # | Fichier joint


J'ai pas mal avancé, voici le Beechcraft 1900D : un petit avion bi moteurs à turbine. Pouvant transporter une vingtaine de passagers, il a une structure ronde qui lui donne un air sympathique. Presque chaleureux ce avion est encore utilisé aujourd'hui pour des vols petits courriers en France.

Voici le gif (le train est lui aussi animé comme sur le Learjet).



Je prévoie une météo variable
L'heure sera simulée par un changement de la couleur du fond de l'écran. Pour simuler un jour, le fond est d'un bleu, l'aube est représenté par un fond mauve, le crépuscule sera symolisé par un fond de couleur orange, et la nuit par un bleu-gris très foncé.

Le temps sera moins nuancé avec la présence, ou non de nuages en haut de l'écran.

Petite description des instruments

La jauge de carburant vous indique le carburant restant. La reserve est la zone rouge à gauche, et le voyant à la droite de la jauge, vous indique que la reserve est entamée. Il n'y pas encore de lien entre le carburant brûlé et la distances parcourue.

La température d'huile sera à terme liée au gaz, mais le rapport entre lzs deux est encore flou. Pas de voyant, mais une partie de la jauge est colorée. Le vert correspond à une température normale. La zone orange et rouge signalent une température anormalement élevée. Si la jauge reste dans l'orange pendant 15 secondes, cela déclenche un feu moteur. Par contre, seules 10 secondes dans le rouge amènent à l'incendie.

L'anémomètre, vous indique votre vitesse via une aiguille. Le trait tout en haut correspond au 0. Puis chaque trait correspond à un pixel de déplacement horizontal à chaque frame. Le maximum est donc 7 pixels par *frame*. A 10fps (vitesse calculée à partir des animations des avions) le déplacement est à 70 pixels par secondes, donc un peu plus de 5 secondes sont nécessaire pour que l'écran soit traversé. Ce qui, à vitesse maximum, semble correct.

L'altimètre à lui aussi 8 trait. Celui tout en haut correspond au niveau du sol. Le sol fait 20 pixels de haut. En comptant les 30 pixels de la barre des instrumentd plus la hauteur de l'avion (20 pixels) le 0 de l'altimètre est de 70 pixels de haut. En comptant 20 pixels par barres de l'alti. 7x20 = 140 ; 140+70 = 210 pixels de haut. Cela laisse donc une marge de 6 pixels en haut lorsque que l'avion est à son altitude maximale.

l'horizon artificielle, vous indique l'assiette et le roulis de l'avion.

Les volets ont trois positions celle actuelle est soulignée par un voyant allumé en vert clairs, les autres étant en en vert foncés. La première position celle tout en haut est le neutre. Dans le jargon on parle de volet en lisse car ils ne dépassent pas du profil de l'aile. La seconde position juste en dessous, au milieu, correspond au premier cran de volet, et la position tout en bas correspond au deuxième cran.

La manette des gaz et le cadrant des RpM. Le cadrant vous indique ici le pourcentage de gaz, le 0 étant tout en haut.

Les témoins du train d'aterrissage sont en rouge si le train est rentré, en vert si le train est dehors, près à l'aterrissage. Dans la vraie vie, le voyant connait une prériode transitoire en jaune/orange pour signalé que le train est en cours de sortie. Ici la sortie est tellement rapide que par simplification, ce passage a été abandonné.

Le radar vous indique votre position. A gauche l'aéroport de départ, à droite celui d'arrivée, vous serez représentez par une flèche pointant sur la ligne au dessus.

"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 17/07/2019 10:46 | #


Shadow15510 a écrit :

La température d'huile sera à terme liée au gaz, mais le rapport entre lzs deux est encore flou.


Tu ne trouveras pas de relations direct entre les gaz et la température de l'huile
il faut que tu fasse comme on avait tenté de t'expliquer pour l'évolution des infectés et mort dans ton jeu Plague Inc.

À chaque instant, tu dois considérer la température de ton moteur, de ton huile et de l’extérieur. Les plus chaud donne de l'energie au plus froids (et donc se refroidissent). Plus l’écart de température est important, plus le transfert est important. et enfin la capacité calorifique de l'huile te permet de transformer cette énergie en température.

Pour résumer:
- Ton huile à une certaine température (T_huile) et une constante C_huile (la capacité calorifique de l'huile)
- Ton huile va prendre de l'énergie au moteur en fonction de la différence de température des deux cette différence d’énergie va induire un changement de température de l'huile ΔT_huile_moteur= (T_huile-T_moteur)/(C_huile * R_moteur_huile*dt) avec R_moteur_huile une autre constante qui caractérise la résistance thermique (est-ce que l’énergie peut facilement passer de l'un à l'autre) et dt l'intervalle de temps entre deux calculs
- Pareil avec l'extérieur ΔT_huile_extérieur= (T_huile-T_extérieur)/(C_huile * R_extérieur_huile*dt)

Et donc la température de ton huile devient : T_huile_après = T_huile_avant + ΔT_huile_moteur + ΔT_huile_extérieur

Et pour finir, il te faut donc juste trouver quelques constantes, et calculer en temps réel la température de l'extérieur et du moteur (et donc avoir ton moteur qui prend feu en fonction de sa température, et non celle de l'huile, pour plus de réalisme )

Pour l'extérieur, la température va dépendre de l'altitude et la météo je pense. Et pour le moteur, c'est exactement la même chose que pour l'huile, sauf qu'il crée lui-même de l’énergie de manière proportionnel aux gaz et qu'il échange avec l'huile comme déjà vue.

(Je viens de me rendre compte que c'est sans doute pas des plus claire, mais bon c'est de la thermodynamique quoi )
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 17/07/2019 11:18 | #


Très impressionnant les .gif ... je constate un profond avancement et une redirection du projet depuis un moment. Bravo !
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 17/07/2019 14:14 | #


Merci beaucoup Disperseur !

Hackcell : la thermodynamique c'est sympa si on a toutes les données en tête, or je ne connais pas la température du moteur ni de l'huile. On pourrait supposé qu'elle est à température ambiante au début du vol, mais cela implique de connaitre cette température… Avec les changement d'heure prévue, c'est plus compliqué… Et tu oublies la pression dans tes calculs Bref : je vais rester avec une relation faussée mais infiniment plus simple !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 17/07/2019 17:51 | # | Fichier joint


J'ai changé le cockpit en intégrant la fréquence de communication que le joueur aura soin de changer quand on lui demandera Ça donne ça :


"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 18/07/2019 16:43 | # | Fichier joint


Le premier aéroport ! Le design est encore simpliste, mais on reconnait la tour de contrôle et quelques bâtiments typés autour. Les dessins du sol seront plus élaborés et ceux de la piste aussi… L'avion n'est pas visible ici et le fond est trop foncé à mon goût, le couleur est très proche de celle de la mer…



"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 18/07/2019 16:53 | # | Fichier joint


Un deuxième test des dessins plus convainquant, j'ai amélioré le ciel et l'eau. Il me reste à revoir les textures aux sols et à ajouter des bâtiments ainsi que de la végétation…


"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 18/07/2019 16:56 | #


Plus qu'a crée des sprites et générer des iles de manières procédurale
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 18/07/2019 16:59 | #


Wow, c'est vraiment sympa... ton pixel art est cool ! Tout de suite ça étend largement les horizons pour ton jeu. Bon courage !
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 18/07/2019 17:03 | #


J'ai également fait l'icône de la Graph 90+E et une documentation complète sur le git : https://gitea.planet-casio.com/Shadow/Fly_Simulator
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Redeyes Hors ligne Membre Points: 630 Défis: 7 Message

Citer : Posté le 18/07/2019 17:40 | #


C'est vraiment joli! Ce qui me ravit le plus c'est l'effet paillette sur l'eau et le dégradé des bâtiments!
(Ils ne sont pas un peu petits les aéroports?)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 18/07/2019 17:46 | #


Je l'agrandirait sans doute par la suite si mais pour l'instant j'ai pas grand chose à mettre ^^'
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 18/07/2019 18:40 | # | Fichier joint


J'ai fait la carte des îles ! Les noms sont Hawaiiens, mais c'est juste la sonorité qui me plait, la carte ne ressemble à… rien



Ajouté le 19/07/2019 à 17:17 :
En attendant de pouvoir afficher les images, je me venge sur le code avec les communications ! Celle du joueur en bleu et celle de la tour en noir… Je n'ai pas encore de screen, mais je peux vous dire que les comm sont alignés en haut à gauche. De manière à ne pas plomber l'écran les comm seront étalées sur 5 lignes maximums. J'en suis à la 12ème communications sur 26, j'avance, j'avance !

Ensuite je corrigerai ma faute d'orthographe : Nihoa ne s'écrit pas Nioa…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 20/07/2019 12:39 | #


Super sympa ! En effet l'effet paillette de l'eau rend super bien, il faudra l'animer pour rendre encore plus plaisant à regarder
Vraiment cool les écrans couleurs...
Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 20/07/2019 13:05 | #


N'oublie pas que l'écran de la Graph 90+E fait 396 par 224.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Shadow15510 Hors ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 20/07/2019 17:07 | #


L'écran dessiné fait exactement 386 par 216, donc j'ai un peu de marge…

L'effet paillette de l'eau sera animé sur le décors du jeu mais pas sur l'écran de sélection des aéroports
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Lephenixnoir Hors ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 20/07/2019 17:28 | #


Sous le PrizmSDK il y a en effet une surface de dessin plus petite que l'écran complet (384 par 216 pour être exact, c'est du 16/9), mais gint utilise le plein écran. Tu peux laisser des marges sur les bords bien sûr mais c'est dommage
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7, 8 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 105 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd