Bonjour,
Je souhaite faire un petit moteur 2d avec glscene. EN cherchant sur le forum j'ai vu qu'il faut passer en mode ortho. Comment fait t'on avec glscene? La doc sur se composants est assez dure à trouver surtout pour la 2d.
Merci
Bonjour,
Je souhaite faire un petit moteur 2d avec glscene. EN cherchant sur le forum j'ai vu qu'il faut passer en mode ortho. Comment fait t'on avec glscene? La doc sur se composants est assez dure à trouver surtout pour la 2d.
Merci
En regardant sur le site de GLScene, on a accès à des projets "amateurs" dont celui nommé WAtomic, clone de KAtomic (que je ne connais pas ) et qui semble être un jeu de réflexion en 2D créé sous GLScene :
http://watomic.sourceforge.net/
Si tu oscultes un peu de code source du projet, disponible sur sourceforge, je pense que tu devrais trouver ton bonheur
J'ai trouvé l'astuce mais j'ai un autre problème.
Je charge une image depuis le gestionnaire de texture mais j'arrive pas à affecter une couleur de transparence.
Ne connaissant pas delphi ni GLScene je ne pourrai pas t'apporter la solution ultime.
sinon pour la transparence sous opengl tu as 2 possibilité, la tranparence au niveau des vertex avec des couleur en 4 éléments (glColor4* en C) ou une transparence au niveau de la texture avec une couche alpha (texture en RGBA)
dans les 2 cas, tu dois activer la transparence (glEnable(GL_BLEND) en C) et paramétrer la fonction de transparence (glBlendFunc(..., ...) toujours en C)
vois déjà si au moins l'un des 2 cas est respecté et surtout l'activation
ça y est j'ai trouvé!!! Merci beaucoup
suffit d'activer le blend. Par contre moi la couleur de transparence c'est le superblack (0,0,0,0). On peut changer la couleur de transparence?
De quel format est l'image chargée ? (bmp, jpg, tga ?)
Est-ce que l'image chargée contient 3 ou 4 composantes ?
si ton image est bien en 32 bits donc sur 4 composante, tu as 3 composantes rouge, vert et bleu pour les couleurs et la quatrième est le canal alpha, en gros c'est l'image en niveaux de gris, plus c'est noir plus c'est transparent, plus c'est blanc moins ca l'est et les niveaux de gris donnent des transparences intermédiaires
note que noir opaque et blanc transparent peuvent être obtenus selon la fonction de blending
regardes du côté de la doc de glBlendfunc
Merci
(faudrais que je m'y mette à l'opengl pur plutot que par des composants).
Sinon d'un point de vue structure, je fais des "plane" collé les uns aux autres avec une texture (c'est pour faire un jeu en 2d style "sonic"), est-ce rapide?
J'avais déjà fais une maquette en utilisant les fonctions (canvas et bitmap) de windows mais ça devenais très vite lent.
Si tu à une methode alternative ou un lien ou je peut voir la struture d'un moteur 2d ça serais super. (j'ai fais le tour avec google et j'ai pas trouvé )
Encore merci
Oui c'est rapide, si la carte video support opengl bien sûr, puisque 2D ou 3D avec opengl derrière c'est pareil, si la carte support ce sera accéléré
je n'ai pas de lien sous la main, désolé, j'ai déjà fait quelques petits essais 2D avec opengl sans difficulté
sinon le source de WAtomic te sert ?
Pas réellement car je comprend pas trop la méthode (pour bouger dans la carte). En faite je cherche à comprendre comment mettre en place le defilement de la carte, si pour une carte de 256*256 je doit faire 256*256 "plane" avec des images et je balade le personnage dessus ou alors je crée dynamiquement les images (je load se qui se voit et j'unload se qui se voit pas).
De plus, je sait pas comment faire pour couper une image en plusieures morceaux (pour faire une animation).
Voilà, en gros mon problème final
Bon, en ce qui concerne les déplacements, ce n'est pas sorcier en 2D : Tu dois implementer une sorte de caméra, et je présume que les déplacements possibles seront seulement des translations (verticales et horizontales), et pour l'ipmlementer :
- une simple structure avec 2 variables X et Y
- à chaque déplacement, mets à jour X et Y (pour aller à droite incremente X, ...)
- au début de chaque frame, et juste aprés avoir chargé la matrice identité dans la matrice MODEL VIEW, tu appliques :
notes les - devant X et Y, car pour la caméra, on doit inverser : si la caméra se déplace à gauche, on simule ça en déplacant l'univers à droite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part glTranslatef(-X, -Y, 0);
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager