#0 

15-03-2011 23:15:58

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Bonjour, pour mon jeu je suis trins de réaliser un petit écran de chargement, sauf le seul problème c'est que je ne sais pas comment faire pour que l'image reste visible sans devoir utiliser la boucle de rendue.

Et aussi je voudrais savoir s'il était possible d’utiliser une autre bibliothèque comme QT ou SDL avec irrlicht ?
Tous dépend de c'elle la que je veut utiliser non ?

Merci de bien vouloir me répondre..... smile

Hors ligne


#1 

16-03-2011 00:07:01

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Coucou, alors utiliser Qt avec Irrlicht, je dis oui, sans problème ça fonctionne bien.

Si tu es sous windows, tu peux intégrer la fenêtre de rendu dans une widget Qt (avec le ID), par contre sous linux, ce n'est toujours pas codé, soit, il faut laisser la création de la fenêtre par défaut.

Pour les évènements souris/clavier, je te conseille de rester avec Irrlicht pour la partie graphique et le reste pour Qt, pas de conflit et plus simple à programmer. Je pense que j'ai déjà fait un poste la dessus, mais peut être pas. Il faut que je revérifie.

C'est tout ce que je peux te dire pour l'instant. Le projet RoboticsCell décrit dans les projets du site fonctionne de cette façon !

Dernière modification par Gehogor (16-03-2011 00:38:37)


Et hop... wink

Hors ligne


#2 

16-03-2011 00:24:57

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Gehogor :

C'est tout ce que je peux te dire pour l'instant. Le projet RoboticsCell décrit dans les projets du site fonctionne de cette façon !


C'est se que javais pus lire......bon c'est peut-^etre HS (hors-sujet) comme question mes qu'elle est vraiment l'utiliter de ton programme ? J'ai pus lire qu'il pouvait créer des robots "virtuels" ou qu'elle que chose comme sa, mes je suis pas sur.

Sinon pour mon autre question tu na pas une idées, je sais comment afficher des images, mes sans passer par la boucle de rendue c'est dur...

Dernière modification par mmorpglefilm (16-03-2011 00:26:05)

Hors ligne


#3 

16-03-2011 00:42:53

Gehogor
Abonné
Lieu: Paris
Date d'inscription: 02-06-2009
Messages: 130
Corrections: 7

Oui en effet, tu peux créer des cellules robotique (un peu comme les assemblages en CAO) et les tester avec un rendu 3D pour détecter les éventuelles collisions et/ou pour tout simplement voir ce qu'il se passe. On voit beaucoup mieux en 3D.

Pour ton autre question de chargement, je le fais avec Qt avec la classe QSplashScreen, qui te permet de mettre une image au démarrage et afficher de texte de chargement par exemple.

Qt est vraiment fait pour gérer les interfaces et tout l'entourage. Les autres parties (QtCore,...) sont super aussi, bonne gestion des listes, des socket pour le réseau, des fichiers, des flux XML...  C'est très puissant, bien maintenu et bien documenté. Il faut donc l'exploiter au maximum.

Dernière modification par Gehogor (16-03-2011 00:47:00)


Et hop... wink

Hors ligne


#4 

16-03-2011 16:16:06

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Oui, sauf que je veux créer un jeu est je pense pas que QT soit adapter, et je ne veux juste pas créer un écran de chargement mes charger une image, et sans la boucle de rendue je voix vraiment pas comment faire...

Hors ligne


#5 

16-03-2011 23:20:45

thesus
Membre
Date d'inscription: 11-08-2009
Messages: 19
Corrections: 1

Code:

//Création de la fenêtre
IrrlichtDevice* device=createDevice(EDT_OPENGL,dimension2d<u32>(800,600),32,false,true,false);

//récupération des variables d'irrlicht
IVideoDriver* driver=device->getVideoDriver();
ISceneManager* manager=device->getSceneManager();

//affichage de l'image de chargement
driver->beginScene(true,true,SColor(255,255,255,255));
driver->draw2DImage(driver->getTexture(L"imageChargement.png"),position2d<s32>(0,0));
driver->endScene();

//code qui prend du temps.
.....

//boucle de rendu
while(device->run())
{
   ...
}

Hors ligne


#6 

17-03-2011 11:43:24

mmorpglefilm
Abonné
Lieu: la galaxie UDFy-38135539
Date d'inscription: 18-05-2010
Messages: 162
Site web

Moi je fais comme sa pour charger une image, sauf que moi elle n'affiche rien, me toi la seul différence c'est que tu écrit le "beginScene" avent le code pour charger une image, il y a vraiment une grande différence ?

Hors ligne


#7 

17-03-2011 20:04:02

thesus
Membre
Date d'inscription: 11-08-2009
Messages: 19
Corrections: 1

J'aurais dût écrire un truc en dessous pour expliquer.

Oui, c'est important, il faut mettre ces 3 lignes obligatoirement (avec ces propres options bien-sûr) pour afficher une image.

Code:

driver->beginScene(true,true,SColor(255,255,255,255));
driver->draw2DImage(driver->getTexture(L"imageChargement.png"),position2d<s32>(0,0));
driver->endScene();

beginScene : initialise le buffer video (le vide et le créer s'il n'existe pas).
draw2DImage : ajoute l'image au buffer video.
endScene : actualise l'affichage (donc l'image s'affiche à l'écran quand cette ligne de code s’exécute).

Hors ligne


#8 

08-03-2013 19:26:53

Memorial76
Membre
Date d'inscription: 19-02-2010
Messages: 67

Nickel, merci pour l'astuce. Ca faisait un bout de temps que je cherchais à faire cela!!!

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
882 membres
1429 sujets
11119 messages
Dernier membre inscrit: LiseBuisson96
23 invités en ligne
Aucun membre connecté
RSS Feed