Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Tue Mar 19, 2024 7:36 am

All times are UTC




Post new topic Reply to topic  [ 37 posts ]  Go to page 1, 2, 3  Next
Author Message
PostPosted: Fri Jun 16, 2006 4:21 pm 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
Et oui encore moi, et encore une question:

ca porte sur les controles, pour les touches speciales, on a juste à regarder dans raydium_keys[] pour voir si c'est actif ou pas?

Par contre pour les autres touches comment qu'on fait?

Visiblement c'est avec raydium_key_last, mais le problème c'est que l'on gère qu'une seule touche. Donc dans le cas d'un jeu, ca peut être problématique.

Voila donc la petite question comment savoir si une touche "normale" du clavier est "pressed" ou pas?


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 16, 2006 5:52 pm 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
Il faut jeter un coup d'oeil à l'API à cette adresse :
http://wiki.raydium.org/wiki/RaydiumApiReference

mais voici la partie qui t'interresse, je pense :
Code:
raydium_key_last will always contains the last key (normal or special)
pressed down. You'll find a explanation about normal and special keys above.

raydium_key[] hosts all special keys state. Currently, you must use
GLUT define's (Raydium aliases will come soon), limited to
following keys:

- GLUT_KEY_F1 to GLUT_KEY_F12
- GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN
- GLUT_KEY_PAGE_UP, GLUT_KEY_PAGE_DOWN
- GLUT_KEY_HOME, GLUT_KEY_END, GLUT_KEY_INSERT

These are "special" keys: they have 2 states. released (0),
and pressed (non zero). It means you can do something
(move an object, turn on a light) UNTIL user stops to press the key.
"Normal" keys have a different behavior: you can do something IF user
press a key (exit from application if ESC is pressed, for example).
You'll have no information about key's release.

A normal key is sent through raydium_key_last, a special one through
raydium_key[] AND raydium_key_last.


bon courage


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 16, 2006 6:31 pm 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
j'ai bien lu cette partie avant de poser ma question(le minimum), mais le truc c'est que raydium_key_last n'a la valeur que de la dernière touche et donc si on appuie sur 2 touche en même temps, on a pas les 2 touche dans raydium_key_last.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 16, 2006 9:28 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
C'est toute la nuance entre les touches spéciales et les touches régulières. Pour l'heure (c'était à la base une limitation de GLUT), seules les touches spéciales sont destinées à "rester appuyées". Si ce système venait à devenir une limitation, MyGlut devrait être capable d'évoluer.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 24, 2006 5:28 pm 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
j'utilise le SDK afin de faire quelques test, et j'ai essayer de mettre en place des classes, donc du c++. Or raydium c'est du C tout court et visiblement le compilateur il aime pas trop. Est-ce que c'est possible d'utiliser du c++ avec raydium ou bien est-on bridé à du C?

J'ai fait un pong dans mon premier test, ca m'a permis de bien prendre en main raydium et c'est vraiment sympa à utiliser. Je m'attèle à un schmup pour l'instant mais j'en suis qu'au premice et donc si on ne peux pas utiliser les classes, ca risque d'être assez compliqué à mettre en oeuvre. Je suppose que c'est possible mais que le SDK est assez restreint. J'avais pas envie de configurer un environnement de travail(je suis sous windows) et donc ce SDK était bien rapide pour se mettre en jambe.


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jun 25, 2006 4:45 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Le C++ est "toujours" rétro-compatible avec le C (cf le mot clef "extern" si nécessaire). Il faut donc que tu utilises ton propre système de compilation (un .bat ?) avec g++/gpp et non gcc. Enfin comme d'hab en C++ :)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 27, 2006 5:22 pm 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
juste pour continuer sur la lancer:

Je galère comme un malade sur la compilation en ce moment.
Est-ce qu'il y aurait moyen d'envisager un raydium.dll qui faciliterai grandement le développement sous windows?

J'ai lu dans les archives que il y avait eu du boulot dessus donc je me doute que c'est réalisable, mais j'y connais que dalle en compilation.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 27, 2006 9:32 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
La réalisation d'une DLL est un travail conséquent. Regarde du coté de cette page, peut être : http://wiki.raydium.org/wiki/WinRaydium
En revanche, découper la construction actuelle du "compiler.exe" en deux étapes, c'est à dire Raydium ("une fois pour toutes") puis l'application semble assez simple à réaliser, ce qui risque d'accéler pas mal la compilation. Pourquoi au passage ne pas prévoir une compilation spécifique pour le C++ au passage.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 30, 2006 4:02 pm 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
bon on laisse tomber pour la dll, mais par contre, j'ai vraiment besoin d'utiliser du c++ et sous windows et ca coince fortement à la compilation.

dès que j'utilise g++, il y a plein d'erreur dans le log de compil, ca fait plusieurs jours que je galère dessus et ca me décourage.

j'utilise le sdk, et ma ligne de commande modifiée correspond à ceci:

g++.exe "E:\POULET\RaydiumSDK\ray\nexemup.cpp" -o "E:\POULET\RaydiumSDK\ray\nexemup.exe" -L"../Dev-Cpp/lib" ../Dev-Cpp/lib/libphp5ts.a -Lode/lib/ -lode -lopengl32 -lgdi32 -lglu32 -lws2_32 -lalut -lopenal32 -lvorbis -lvorbisfile -logg -ljpeg ../dev-cpp/lib/libmingwex.a -I"../Dev-Cpp/include" -I"../work/php-5.1.2" -I"../work/php-5.1.2/main" -I"../work/php-5.1.2/Zend" -I"../work/php-5.1.2/TSRM" -Iode/include -g -O3 -fexpensive-optimizations

avec le extern "C" j'ai plein d'erreur.

Une fois ce problème réglé je pourrais enfin avancé dans mon shoot em up mais pour le moment, je ne continu pas sans classes/c++, c'est beaucoup trop galère pour mettre en oeuvre.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 30, 2006 11:12 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Entendu. Je commence les premiers tests sur la création d'une DLL avec le SDK.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 01, 2006 9:02 am 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
j'ai pas mal lu le topic sur la création de la dll/librairie et vous en etiez venu à la conclusion que ce n'était pas possible dans l'état des choses, il y avait trop de variable ?globale?. Je ne sais pas si ca a changé, mais sans pour autant creer une dll, si on se trouvait avec un sdk très très facile à mettre en place et qui permet le c++ sans se prendre la tête, ca serai déjà un bon gros pas en avant.

Je pense surtout que ca pourrait etre un bon moyen de faire tester le moteur par le plus grand nombre et finalement avoir un retour avec de l'aide sur le developpement du moteur lui même(peut être meilleur rendu, utilisation des shaders ou autre joyeuseté).

Personnelement je ne m'y connais pas assez mais si je suis amené a vraiment utiliser raydium très souvent, je pourrais peut être participer financièrement(vous avez peut être des besoins où je ne sais quoi).

Enfin voila dans l'état des choses je suis un peu bloqué par la compilation, j'ai essayer de m'y mettre mais c'est vraiment pas mon truc.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 01, 2006 2:55 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Il y a bien deux étapes ici : Permettre la création d'une DLL (la version Linux de Raydium disposant déjà de son équivalent [shared object]) et ensuite la modification du SDK pour offir un support C++ au travers de cette DLL.

La première étape avance bien (même si le problème des variables globales reste entier), la seconde va demander des modifs probablement assez lourdes dans le SDK.

Pour la DLL, j'ai un truc qui commence à marcher, mais il s'avère qu'il manque plein de choses à exporter (exemple : les callback ODE).


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 18, 2006 10:58 am 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
pour continuer dans les questions:

est-ce possible de désactiver la boite d'environnement (les BOXfront.tga....)?
j'ai un peu cherché dans la doc, j'ai pas trouvé.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jul 18, 2006 11:46 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
C'est vrai que cette partie n'est pas très souple. Tu souhaites utiliser quoi à la place de la skybox ?

La solution actuelle consiste à activer le brouillard (avec une valeur near éloignée pour ne pas "voir" le brouillard). Il est assez simple d'ajouter une fonction raydium_sky_disable()/enable() sinon (n'hésite pas à le demander, ça ce commit en moins de 10 minutes ce genre de choses).

PS: Tes retours sur le support DLL/C++ m'intéressent, si tu as eu le temps de tester.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jul 19, 2006 8:22 am 
Offline

Joined: Wed Sep 21, 2005 9:08 am
Posts: 29
arrgh, j'avais pas vu que tu avais changé le sdk. J'ai fait quelques tests depuis mon reveil et pour l'instant, c'est vraiment niquel. Ca compile vite, ca accepte le c++ et c'est autonome, pile ce qu'il faut pour que raydium soit plus connu du developppement amateur).

Bon aller j'y retourne moi.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 37 posts ]  Go to page 1, 2, 3  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group