0 Members and 1 Guest are viewing this topic.
Pour clarifier sur le fonctionnement actuel avec mon MFD dans orbiter :- l'utilisateur clique sur démarrer la mission - le manager récupère alors les données de mission en interrogeant le base de donnée. - il écrit deux fichier : le scénario (.scn), et les données de défis (objectifs .cfg) qu'il récupère parmi ces données- il lance alors orbiter- la mission démarre automatiquement, on ne passe pas par le launcher orbiter standard- quand un objectif est remplis le MFD envoie par socket des données (xml) - le manager vérifie quelques points de cohérence et si c'est ok renvoie au site web- ce dernier l'ajoute dans la BDD et calcule le score global de l'utilisateur. (c'est là que les règles du jeu globales interviennent : calcul des médaille, progression etc....)
Dans ce script on trouve donc des choses spécifique à cette mission, des choses scénaristiques (affichage à l'écran, changement de camera) et aussi le moyen de renvoyer des données au mfd par le même moyen qu'auparavant (socket).Le MFD actuel est alors inutile.
-- début de la séquenceintro = 'MrSpock Demo:\n\Ceci est la première partie\de cette série de tutoriaux \concernant Orbiter.\n'note = oapi.create_annotation() -- utilise la fonction du SDK !note:set_pos (0.3,0.05,0.9,0.95) -- positionne le textenote:set_colour ({r=1,g=0.6,b=0.2}) -- donne de la couleurnote:set_text (intro..'\n') -- écritureproc.wait_sysdt(10) -- pause de 10 secondes-- nouveau textesuite = 'MrSpock Demo:\n\10 secondes ont passé ...\FONCTION utilisée : "proc.wait_sysdt(10)"\ -- ( J'affiche à l'écran le code du script pour expliquer ...)pour bloquer le script 10 secondes\n'note:set_colour ({r=1,g=0,b=1})note:set_text (suite..'\n')proc.wait_sysdt(10)-- J'attribue un nouveau texte à cette variable "suite"suite = 'MrSpock Demo:\n\10 secondes ont passé ...\POUR CHANGER DE COULEUR :\ -- ( J'affiche à l'écran le code du script pour expliquer ...)note:set_colour ({r=1,g=0,b=1})\FIN DANS 3 SECONDES\n'note:set_colour ({r=1,g=0,b=0})note:set_text (suite..'\n')proc.wait_sysdt(3)note:set_size (10.2) -- change la taillesuite = 'FIN:\n'note:set_text (suite..'\n')proc.wait_sysdt(1)oapi.del_annotation (note) -- efface le texte
------------------------------------------------------------------------------- Exported auxiliar functions-----------------------------------------------------------------------------function connect(address, port, laddress, lport) local sock, err = socket.tcp() if not sock then return nil, err end if laddress then local res, err = sock:bind(laddress, lport, -1) if not res then return nil, err end end local res, err = sock:connect(address, port) if not res then return nil, err end return sockend
Un ptit exemple. le fait d'avancer un micro poil en crabe lors d'un atterrissage vertical me fait subir un poussé de quelques 30 ou 40 Mega Newton. ca semble beaucoup. J'imagine que ce doit être exact et que dans ce cas, notre train doit surement lâcher direct dans la réalité. Donc dur dur de calculer des dommages réel avec tout ca, j'ai donc ajouté un paramètre dans les objectif avec la force max que peut recevoir el vaisseau avant un game over.
bref je continue à fignoler, je préfère retarder une sortie trop rapide et être confronté à des ralerie si ca marche pas.
eh bien c'est pas pour demain donc....