IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

[Projet en pause] Last dungeon


Sujet :

Projets

  1. #161
    Membre expert
    Avatar de Dabou Master
    Homme Profil pro
    Graphiste 3D auto-didacte
    Inscrit en
    Février 2012
    Messages
    1 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Graphiste 3D auto-didacte

    Informations forums :
    Inscription : Février 2012
    Messages : 1 018
    Points : 3 569
    Points
    3 569
    Par défaut
    Salut,

    Bon je vais sortir un truc un petit peu mesquin au premier abord mais qui me paraît pertinent.

    A l'heure actuelle ton jeu ne subit pas une pression médiatique considérable avec un tel nombre de fans qu'ils ont promis de brûler ton studio si le jeu ne sort pas à temps ^^. Je te conseillerais donc de soigner ta conception autant que possible (première solution donc), les curieux ou même les intéressés sauront être patients quant à la version windows et je doute qu'il y en ait un qui te reproche son retard. Après tout c'est pas comme si t'avais envoyé se faire voir tous les windowsiens, tu préviens du retard et c'est déjà pas mal, qui pourrait te reprocher d'être méticuleux ? oO
    Abandonner ses rêves n'est pas à la portée de tout le monde.

  2. #162
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bah là c'était juste pour savoir si je compile en premier les bibliothèques sous Windows ou si je continu à bosser sur le dépôt.

    Là je viens de m’apercevoir que je faisais n'importe quoi avec CMake au niveau de la gestion des dépendances.
    En gros ça marchait parce que les dépendances étaient déjà compilée.

    Donc j'ai modifié un peu, maintenant :
    - le dossier bin est "nettoyé"/plus propre (= sans les dossiers CMake à l'intérieur) ;
    - la gestion des dépendances a été corrigée ;
    - on a plusieurs "cibles" pour la compilation \o/
    - on a aussi un dossier test contenant des sources pour compiler des binaires de tests ;
    - on est passé de boost 1.49 (version actuelle sur Ubuntu) à 1.53 (version qu'on utilisait sous Windows).

    Et la grande nouveauté, c'est le dossier extern où on pourra mettre toutes les dépendances externes compilées.

    Cet après-midi, je corrige quelques fichiers .md puis je pousserais le tout sur github.

    La prochaine étape, c'est rajouter petit à petit le code du moteur

  3. #163
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bon,

    - .md corrigés et mis à jours ;
    - Doxyfile ajouté \o/

    Par contre, j'ai un problème avec Doxygen :
    - "Related Page", il fusionne tous mes fichiers .md
    - Je ne sais pas trop comment organiser toute la doc vu que j'ai plusieurs "sous-projets"

    Et si vous avez des idées/conseils/remarques sur mon dépôts, hésitez pas

  4. #164
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour

    J'ai corrigé 2-3 choses pour les commentaires doxygen, vous pourrez maintenant générer une documentation très joli de ... rien pour le moment en fait

    J'ai aussi commencé à recompiler les bibliothèques à partir des sources sous Linux pour être sûr que "ça compile bien".
    - boost : déjà fait ;
    - Je passe d'Irrlicht 1.7.3 -> Irrlicht 1.8, en effet, je devais utiliser la 1.8 pour Windows donc autant faire de même sous Linux ; (fait ce matin).
    - CEGUI 0.7.9 -> CEGUI 0.8.2, \o/ avec la version 0.8 on a enfin un CMakeLists.txt !

    Avec CEGUI, il faut bien que je fasse attention :
    - il a peut être compilé avec Irrlicht 1.7.3 que j'ai sur mon ordi et non la 1.8 ;
    - il peut y avoir des problèmes d'affichages selon le module utilisé pour les images.

    Après pour les dépendances restantes :
    - SFML musique : pas encore très utilisée, il faudrait que je regarde ce que je faisais pour jouer le son de la vidéo (donc ça peut attendre encore un peu);
    - Code pour afficher une vidéo (intégré à mes sources) ;
    - OpenGL, GLUT (?), ToLua, ToLua++ et autres joyeusetés.

    Je me pose la question pour les bibliothèques comme OpenGL, etc... faudrait-il que je distribue des sources et des binaires ?
    Je pense que ce sont des bibliothèques assez stables, mais si jamais une petite chose change, il faudra peut être changer la version de CEGUI/Irrlicht pour le support de la nouvelle version de OpenGL ou que sais-je.

    Bien sûr, je vais découper mon code de sorte que les bibliothèques se retrouveront encapsulées. Mais bon, j'ai un peu peur que mon code devienne obsolète un jour .


    Enfin bref, prochaine étape, tester si Irrlicht et CEGUI marche bien et commencer à re-rajouter le vrai code sérieux. \o/

  5. #165
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    OpenGL O_o
    Ça ne se recompile pas, sauf si tu force la compilation d'un pilote 3D spécifique
    OpenGL, c'est implémenté par les constructeurs de carte graphique, dans leurs pilotes (sauf pour Mesa, mais ça reste la même chose). Donc, tu n'y touche pas. S'il n'a pas OpenGL, il n'a pas OpenGL, c'est tout.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  6. #166
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Les cours devenant un peu plus dur, je vais être obligé de ne travailler sur le projet que pendant les Week-End et encore .

    Bon aujourd'hui j'ai commencé à travailler sur la bibliothèque centrale du projet : LPEngine.

    Je me suis un peu amusé sous Ubuntu à faire en sorte que les fichier *.lp soient ouvert avec l'exécutable de mon projet.

    Donc grosso-modo vous aurez plus qu'à écrire un fichier .lp, à double-cliquer dessus pour lancer le moteur qui exécutera le contenu du fichier

    Bref, il ne reste plus qu'une longue série de copier/collé/documentation/réécriture de code.

  7. #167
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Sentinelle est assez pris ces derniers temps donc je ne pense pas qu'il donnera quelques informations ici .

    .J'ai du recompiler vite fait CEGUI après avoir remplacé irrlicht 1.7.3 par irllicht 1.8 et maintenant ça marche \o/.

    Pour le moment, on peut juste charger un fichier de script Lua et j'ai trouvé une solution pour qu'on puisse exécuter ce fichier peu importe sa localisation.
    En effet avec CEGUI, le script lua doit obligatoirement être dans un dossier "datafiles/lua_script", donc j'ai trouvé un petit "hack".
    Après, comme avec irrlicht, on ne peut officiellement pas redimensionner les fenêtres, je vais placer dans la première ligne des fichiers de scripts lua, un commentaire qui contiendra la dimension de la fenêtre souhaitée.

    Voilà, on pourra déjà commencer à s'amuser avec les fichiers de scripts lua .

    Théoriquement pendant les vacances de noël, je devrait pouvoir sortir une version compilée pour Ubuntu ainsi qu'une petite vidéo pleine de surprises

  8. #168
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Encore des petites nouvelles,

    Le moteur interprété des fichiers lua. Et le moteur j'ajoute des fonctions à utiliser dans le lua. Or pour faire cela, on utilise tolua++.
    Il faut donc créer des fichier *.pkg, lancer tolua++ pour récupérer des fichiers .h et .cpp à inclure dans le projet.

    Pas pratique du tout

    Sauf que là encore cmake (ce qu'on utilise pour compiler) montre à quel point il est génial !
    Non seulement je compile des dépendances, déplace des fichiers, et concatène des headers en un clic mais en plus je peux appeler tolua++ lors de ce même clic

    Donc pour le moment un aperçut des fonctionnalités du moteur :
    --500x500

    engine = LP.LPEngine.ScriptEngine:getInstance()

    engine:afficherDebug("coucou developpez !")

    function main()

    engine:afficherDebug("au revoir !")

    end

    main()
    --500x500 indique la taille de la fenêtre.
    Là j'affiche juste "coucou developpez !" et "au revoir !".

    Il ne me faudra pas beaucoup de temps pour copier/coller le code "de base" donc on pourra commencer à s'amuser un peu.

    En revanche, pour le code "spécifique" au go, cela prendra plus de temps car il faut absolument que je le réécrive un peu

    Le dépôt sera mis à jours dès que j'aurais fini de copier/coller la "base" et avant que je m'attaque au code spécifique du "go".

  9. #169
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Ce matin en prenant ma douche, j'ai eu une révélation.
    Je pense donc annoncer vers noël deux nouveaux "modes de jeux" ce qui fera au final 4 modes de jeux.

    J'ai du en parler que sur ma chaîne youtube, mais le Last DunNoël père noël, aura dans sa hotte (et avec sûrement un peu de retard ) une petite vidéo avec deux petites surprises (+ l'annonce des nouveaux modes).

    Bon, je dois commencer le cours donc je vous parlerais plus tard des nouveaux rajouts sur le moteur

  10. #170
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    J'ai ajouté la gestion des événements et des pages.

    Les événements sont de deux types :
    - système : entrée clavier/souris/... ;
    - standard : "quitter", "entrer", "nom_event".

    Le but est de relier un ou plusieurs évents "systèmes" à un évent "standard" ie :
    1. La touche "A" correspond à l'événement standard "salut".
    2. L'événement "salut" correspond à ....

    Ainsi on peut très facilement changer les raccourcis claviers (par exemple) sans impacter tout le code.

    Il ne peut y avoir qu'une seule "page" à la fois (anciennement nommée "Background"). La page active détermine les actions à effectuer en fonctions des événements standard/systèmes ainsi que l'affichage.
    (A noter qu'il y a aussi gestion des événements "systèmes" dans "engine").

    Par exemple, quand on lance le moteur on tombe sur une page "cinématique" puis on enchaîne sur une page "menu" et enfin sur une page "niveau de jeu".

    Voici un petit exemple de code qui, lorsqu'on appuie sur 'a', 'b' ou 'c' change la couleur de la fenêtre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    --500x500
     
    -- initialisations
     
    engine = LP.LPEngine.ScriptEngine:getInstance()
    pageA = engine:createPage("pageA");
    pageB = engine:createPage("pageB");
    pageC = engine:createPage("pageC");
     
     
     
     
    function onEvent(arg) -- gestion du clavier
    	event = tolua.cast(arg,"const LP::LPEngine::Event");
     
    	if event then
    		if event:eventType() == "keyboard" then
    			keyboard = event:keyboard();
    			if keyboard.keydown then
     
    				if keyboard.key == 65 then
    					engine:changePage(pageA);
    				end
    				if keyboard.key == 66 then
    					engine:changePage(pageB);
    				end
    				if keyboard.key == 67 then
    					engine:changePage(pageC);
    				end
    			end
    		end
    	end
     
    	return true; -- evenement traites
    end
     
     
    -- gestion des event de la page A
    function onEventA(arg)
    	event = tolua.cast(arg,"const LP::LPEngine::StandardEvent");
    	if event then
    		if event.name == "enter" then
    			color = LP.LPEngine.Color(0,255,0)
    			engine:changeBackgroundColor(color)
    		end
    		if event.name == "quit" then
    			engine:afficherDebug("on quitte la pageA");
    		end
     
    	end
     
    	return true;
    end
     
    -- gestion des event de la page B
    function onEventB(arg)
    	event = tolua.cast(arg,"const LP::LPEngine::StandardEvent");
    	if event then
    		if event.name == "enter" then
    			color = LP.LPEngine.Color(255,0,0)
    			engine:changeBackgroundColor(color)
    		end
    		if event.name == "quit" then
    			engine:afficherDebug("on quitte la pageB");
    		end
     
    	end
     
    	return true;
    end
     
     
    -- gestion des event de la page C
    function onEventC(arg)
    	event = tolua.cast(arg,"const LP::LPEngine::StandardEvent");
    	if event then
    		if event.name == "enter" then
    			color = LP.LPEngine.Color(0,0,255)
    			engine:changeBackgroundColor(color)
    		end
    		if event.name == "quit" then
    			engine:afficherDebug("on quitte la pageC");
    		end
     
    	end
     
    	return true;
    end
     
     
    engine:afficherDebug("coucou developpez !")
    engine:changeTitle("[Prototype]Last Dungeon, the best game ever !", true)
     
    engine:changeDefaultHandler("onEvent"); -- gestion des events primaires
     
     
    pageA:changeEventHandler("onEventA"); -- gestion d'evenements
    -- pageA:changeSystemEventHandler("onSystemEventA); gestion d'evenements "systemes".
     
    pageB:changeEventHandler("onEventB");
    pageC:changeEventHandler("onEventC");
     
     
    engine:changePage(pageA);
     
    engine:start(); -- on commence ;)
     
    engine:afficherDebug("au revoir !");

  11. #171
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    J'ai commencé à réintégrer les vidéos
    Allez savoir pourquoi mon code ne marchait plus avec irrlicht 1.8, la vidéo ne s'affichait pas correctement (juste les 2 premières frames sont affichées).
    Le plus bizarre, c'est qu'en utilisant moi-même draw2DImage au lieu que ce soit la irr::machin::Image qui s'en charge ça marche parfaitement (alors que je n'ai fait qu'un copié/collé du code de irr::machin::image

    Les vidéos .avi et .ogv sont bien lue mais les .mp4 ne semblent pas supportées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    local video
     
    function onEventVideo(arg)
    event = tolua.cast(arg,"const LP::LPEngine::StandardEvent");
    	if event then
    		if event.name == "enter" then
    			color = LP.LPEngine.Color(255,255,255)
    			engine:changeBackgroundColor(color)
    			video = engine:createVideo();
    			video:changeVideoFile("0001-0250.avi");
     
    		end
    		if event.name == "quit" then
    			engine:afficherDebug("on quitte la page Video");
    			video:stop();
    		end
    		if video then
     
    			if event.name == "play" then
    				video:play();
                                    video:setLoop(true); -- la video tourne en boucle
    			end
    			if event.name == "draw" then
    				video:drawFrame();
    			end
     
                             if event.name == "rewind" then
    				video:rewind()
    			end
     
    			if event.name == "draw" then
    				video:drawFrame();
    			end
    		end
    	end
     
    	return true;
    end

  12. #172
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bonjour,

    Je viens d'apprendre le sujet imposé pour les "projets'" de première année... le jeu de Go \o/.

    Par contre, il y a trop de contraintes (C avec la SDL, prototypes de fonctions, etc.), moi qui pensait pouvoir faire d'une pierre deux coups

  13. #173
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    SDL 2, j'espère
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  14. #174
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    SDL 2, j'espère
    Ben le dernier TP c'était un jeu de la vie en SDL 1 et à la fin "pour aller plus loin" il fallait "convertir" en SDL 2.
    Donc je ne peux pas trop te répondre

    On va déjà essayer de négocier pour utiliser cmake au lieu de fichiers Makefiles, et je verrais avoir mon binôme pour la SDL.
    Ce fou a recodé le jeu de la vie en shader

    Par contre, je n'ose pas tenter de négocier pour utiliser le C++/Lua avec Irrlicht/CEGUI/Boost

    Enfin bref, je croise les doigts en espérant qu'il n'y ai pas trop de contraintes pour que je puisse au moins revoir quelques algo et en même temps les améliorer.

  15. #175
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    J'ai ajouté la caméra 3D.

    En gros dans un monde 3D, on choisit une position et une direction d'une caméra pour choisir l'affichage 2D qui sera fait de notre monde 3D.
    Un peu comme si on regardait une caméra qui filmerait notre monde 3D.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    camera = LP.LPEngine.Camera3D:new();
    camera:transformToCameraFPS();
    engine:changeCamera(camera);
    Pour le moment il n'y a pas vraiment de code derrière, je m'en servirais juste comme "placeholder".

    Bon, ce n'est pas grand chose mais j'ai les exams qui approchent donc je ne peux pas vraiment bosser dessus

    Maintenant il ne reste plus qu'à réintégrer les sons et les modèles 3D.
    Pour les sons, je vais peut être changer pour prendre IrrKlang à la place de la SFML que j'utilisais que pour les sons.

    Théoriquement, je devrais être prêt pour la vidéo de noël, je ne pense pas finir de réintégrer le code spécifique du go d'ici là en revanche.

    Sinon, pour le projet que je dois faire en binôme je vais peut-être voir si on ne peut pas poster nos avancée dans ce forum

  16. #176
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bon, je vais essayer d'avoir une petite journée productive.

    Comme prévu le père noël est en retard, j'attends des éléments de l'infographiste avant de pouvoir publier la surprise (et je ne suis pas moi-même tout à fait prêt, mais officiellement, on va dire que c'est de la faute de l'infographiste)

    Donc au programme aujourd'hui :
    - voter pour les projets (il ne reste plus beaucoup de jours) ;
    - affichage d'éléments 3D ;
    - gestion des joysticks + mapping clavier (pour m'amuser).

    A ce soir pour voir si j'aurais réussi à tenir ce planning


    EDIT 15h06 : pour l'affichage des éléments 3D c'est presque ça, j'ai juste une segfault à cause du garbage collector de lua, depuis le temps que je dit que les garbage collector c'est nul

    EDIT 18h22 :
    J'ai perdu un temps fou parce qu'Irrlicht ne semble plus supporter les textures en png faudra que je me repenche dessus de plus près.
    Ensuite, Lua qui me fait des choses "bizarre" quand j'utilise une méthode Type clone(void);...
    Ainsi qu'une petite variable booléenne non-initialisée, ma faute
    Sans compter le fait que j'ai oublié de supprimé la caméra ce qui me provoquait une fuite de mémoire que j'ai mis beaucoup de temps pour trouver l'origine.

  17. #177
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Bon ben c'est un échec

    J'avais prévu d'ajouter en plus les sons et regarder aussi par rapport pour les textures png mais là...
    Il ne me reste plus qu'à intégrer une classe EventJoystick et une fonction CompareEvent pour finir avec la gestion des évents.

    Pour le moment, les modèles 3D s'affichent plutôt bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    local socle
    local socle2
    local camera = LP.LPEngine.Camera3D:new();
    camera:transformToCameraFPS();
     
    function onEvent3D(arg)
    event = tolua.cast(arg,"const LP::LPEngine::StandardEvent");
    	if event then
    		if event.name == "enter" then
    			color = LP.LPEngine.Color(200,200,0)
    			engine:changeBackgroundColor(color)
    			engine:changeCamera(camera);
    			socle = LP.LPEngine.Element3D:new(engine);
    			socle:changeFile("/home/neckara/Data/irrlicht-1.8/media/dwarf.x")
    			socle:changeTexture("/home/neckara/Data/irrlicht-1.8/media/dwarf.jpg");
    			pos = LP.LPEngine.V3Df(5,50,5);
    			pos2 = LP.LPEngine.V3Df(0,5,5);
    			rot = LP.LPEngine.V3Df(20,10,30);
    			scale = LP.LPEngine.V3Df(2,1,1);
    			socle2 = LP.LPEngine.Element3D:new(engine);
    			socle2:changeFile("/home/neckara/Data/irrlicht-1.8/media/dwarf.x")
    			socle2:changeTexture("/home/neckara/Data/irrlicht-1.8/media/dwarf.jpg");
    			socle:changePosition(pos);
    			socle:changeAngle(rot);
    			socle:changeScale(scale);
    			socle:changeParent(socle2);
    			socle2:changePosition(pos2);
    			socle2:updateChange();
    			socle:updateChange();
    		end
    		if event.name == "quit" then
    			socle2:delete();
    			socle2 = false;
    		end
    	end
     
    	return true;
    end
    J'ai encore perdu un temps fou à cause d'une variable non-initialisée dans le constructeur. Je pense que j'ai dû supprimer la ligne correspondante par erreur et sans m'en rendre compte car là ça me parait un peu bizarre...

    Dimanche, je fini le son, le joystick, je regarde pour les fichiers png et j'essaye de sortir la surprise avant midi

  18. #178
    Expert éminent
    Avatar de Vetea
    Homme Profil pro
    Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Inscrit en
    Février 2005
    Messages
    2 061
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Test - Maintenance - Production - BE dans une PME d'electronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2005
    Messages : 2 061
    Points : 6 443
    Points
    6 443
    Par défaut
    Oupsss ... Désolé mais la je ne peux pas trop t'aider ... Au pire passes au QB64 ...
    Bon courage néanmoins !!!
    Développeur - Créateur Amateur de Jeux vidéos
    Visitez ma page dédiée
    Visitez mon espace Itch.io
    Mon canal Discord

  19. #179
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    J'ai presque fini la gestion du joystick.

    Pour le moment j'ai un EventMapper qui va associer à un événement un nom d'événement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mapped = mapper:addMapping(event, "cpb") -- retourne si le mapping a bien eu lieu
    sevent = mapper:getMapping(event); --retourne le nom de l'event
    Pour le joystick, j'avais un axe en trop (soit 7 axes) sous Ubuntu, donc avec Irrlicht qui est limité à 6 axes, j'avais un axe important qui sautait .

  20. #180
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Depuis hier soir, le joystick est bien géré mais un peu trop précis (ex : pour les axes, il faut être parfaitement à une certaine valeur pour que l'évent soit reconnu).

    Je vais donc travailler tout d'abord sur des "contextes" permettant de prendre en compte les combinaisons de touches.
    Par exemple, l'événement "appuyer sur caps lock" activera le contexte n°X (sans nécessairement désactiver les autres contextes).

    Ainsi, la reconnaissance d'événement dans eventMapper se fera aussi selon le "contexte".

    Exemple : 1010 le contexte n°4 et 2 sont activés mais pas le contexte n°3 et 1.
    Soit deux événements :
    - appuyer sur la touche A associé à 1101
    - appuyer sur la touche A associé à 1000

    Le premier événement est actif que si le contexte n°4,3 et 1 sont actifs ce qui n'est pas le cas (1 n'est pas actif).
    Le second événement est actif que si le contexte n°4 est actif ce qui est le cas.

    Je penser aller jusqu'à 32 contextes dans un premier temps.

    Pour le joystick, il n'y a pas un événement par "action" mais un événement à chaque "tour de boucle", ainsi on peut avoir un évent pour plusieurs "actions" et un évent pour aucune action.
    Je vais donc devoir "découper" chaque évent en plusieurs sous-évents.
    Et pour les axes, définir un nombre qui devra être "dépassé" pour que l'évent soit considéré.

    EDIT 14h36 : La gestion des axes est plus compilquée que prévue, en effet, il faut que je sache quels axes sont associé pour calculer des coordonnées polaires
    Pour la séparation des "évents" joystick, le fait de ne pas savoir quel événement "joystick" est survenu en premier pose quelques problème comme "que faire si deux touches sont appuyées en même temps" ?

    EDIT 15h41 : J'en ai marre !
    La gestion des contexte me pose plein de problème au niveau de sa conception
    Faut vraiment que je réfléchisse dessus ainsi que sur la gestion des manettes qui m'enquiquine un peu...
    Normalement, faudrait juste que j'inclue le son pour la vidéo qui est prévue aujourd'hui mais je pense que je vais juste tricher un peu.
    Je me regarde un film pour me changer les idées, je réfléchis encore un peu puis je fait la vidéo

Discussions similaires

  1. last.fm api dans un projet javaEE
    Par nadou7 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 17/03/2014, 20h09
  2. [Projet en cours] [WE Jeux 3]Last Dungeon
    Par Neckara dans le forum Projets
    Réponses: 15
    Dernier message: 08/07/2013, 11h28
  3. Mise en pause temporaire du projet
    Par dourouc05 dans le forum Bubuntu
    Réponses: 1
    Dernier message: 06/09/2011, 15h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo