#1 

15-03-2011 22:15:58

mmorpglefilm
Membres
Avatar de mmorpglefilm
Date d'inscription:
Messages: 162
IP: 78.122.230.21
Courriel  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


#2 

15-03-2011 23:07:01

Gehogor
Membres
Avatar de Gehogor
Date d'inscription:
Messages: 130
IP: 86.72.254.43
Courriel

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 !


Et hop... wink

Hors ligne


#3 

15-03-2011 23:24:57

mmorpglefilm
Membres
Avatar de mmorpglefilm
Date d'inscription:
Messages: 162
IP: 78.122.230.21
Courriel  Site web

Gehogor Ecris:

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...

Hors ligne


#4 

15-03-2011 23:42:53

Gehogor
Membres
Avatar de Gehogor
Date d'inscription:
Messages: 130
IP: 86.72.254.43
Courriel

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.


Et hop... wink

Hors ligne


#5 

16-03-2011 15:16:06

mmorpglefilm
Membres
Avatar de mmorpglefilm
Date d'inscription:
Messages: 162
IP: 78.122.229.24
Courriel  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


#6 

16-03-2011 22:20:45

thesus
Membres
Avatar de thesus
Date d'inscription:
Messages: 19
IP: 92.131.83.224
Courriel

//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


#7 

17-03-2011 10:43:24

mmorpglefilm
Membres
Avatar de mmorpglefilm
Date d'inscription:
Messages: 162
IP: 93.26.123.145
Courriel  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


#8 

17-03-2011 19:04:02

thesus
Membres
Avatar de thesus
Date d'inscription:
Messages: 19
IP: 90.58.39.128
Courriel

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.

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


#9 

08-03-2013 18:26:53

Memorial76
Membres
Date d'inscription:
Messages: 67
IP: 90.51.213.54
Courriel

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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
172 invités en ligne
membre en ligne: -
RSS Feed