cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008
-
3 avril 2007 à 15:32
Utilisateur anonyme -
8 avril 2007 à 12:30
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Ahh, j'ai uploader le zip mais il ne c'est pas mis a jour ! (sa ma fait pareil avec un source delphi)...
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 7 avril 2007 à 21:58
c'est vrai qu'il faudrait nettoyer un peu le code
toujours avoir un .cpp avec un .h
s'il y a du code dans un .h le plus souvent c'est pour faire du inline avec du code critique (appelé plusieurs fois par image par ex)
les fonctions de fenêtrage c'est pas trop critique
goast_tu
Messages postés212Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention28 mai 20112 7 avril 2007 à 11:37
une ptite remarque d'habitude on ne met pas du code executable dans les *.h
Meci BBEAR, je fait de suite un copier/coller dans le bloc note !
Concernant le probléme du texte trop petit, j'ai eu le même probléme sur le PC de mon frére (et c'est vrai que c'est chiant !!!), je vais éssayer de voir d'ou cela peux bien venir... En tout cas ne croyais pas que je laisse la source a l'abandon si pendant quelques jours il n'y a aucun changement...
Je vais quand même éssayer de faire vite si je peux.
Mercie pour l'aide c'est super cool de votre part.
A+
cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008 5 avril 2007 à 13:17
une version rapide d'ouvrir une fenetre fullscreen (dans le main):
void wmChangeToFullScreen()
{
DEVMODE dmSettings; // Device Mode variable
memset(&dmSettings,0,sizeof(dmSettings)); // Makes Sure Memory's Cleared
// Get current settings -- This function fills our the settings
// This makes sure NT and Win98 machines change correctly
if(!EnumDisplaySettings(NULL,ENUM_CURRENT_SETTINGS,&dmSettings))
{
// Display error message if we couldn't get display settings
MessageBox(NULL, "Could Not Enum Display Settings", "Error", MB_OK);
return;
}
dmSettings.dmPelsWidth = ScreenWidth; // Selected Screen Width
dmSettings.dmPelsHeight = ScreenHeight; // Selected Screen Height
// This function actually changes the screen to full screen
// CDS_FULLSCREEN Gets Rid Of Start Bar.
// We always want to get a result from this function to check if we failed
int result = ChangeDisplaySettings(&dmSettings,CDS_FULLSCREEN);
// Check if we didn't recieved a good return message From the function
if(result != DISP_CHANGE_SUCCESSFUL)
{
// Display the error message and quit the program
MessageBox(NULL, "Display Mode Not Compatible", "Error", MB_OK);
PostQuitMessage(0);
}
}
Ok alors je vais essayer de mettre le fichier xm en .h :)
shenron666> Oui l'intro est en 1024x768, car je ne sais pas comment obtenir la resolution d'écran... Quand je trouverez je modifierais a nouveau la source. (pour l'instant je vais remettre les bordures sur la fenêtre et agrandir le texte...).
Sa risque de prendre quelques jours, ce n'est pas que je galére a coder mais c'est que en ce moment j'ai trop de trucs a faire :)
A+ les gars.
cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008 4 avril 2007 à 22:49
en fait, elle ne s'ouvre pas en fullscreen mais en windowed 1024x768.
ps: je pensais BOBS (pas Blobs) dans le sens afficher des "sprites" 2D (images) en OpenGl (voir l'invitro de la Breakpoint 2007 de Keops avec des vieux effets)
shenron666
Messages postés229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 août 2014 4 avril 2007 à 22:37
sympa comme petite intro, par contre elle me pose quelques problèmes :
- elle n'est pas en plein écran mais dans une fenêtre sans bordure (mon bureau est en 1280x1024)
- le texte, du moins je pense que c'est du texte, est illisible, il reste trop "loin" ou en tout cas il est trop petit
je pense que c'est pour faire "old school" que tu as voulu mettre en resource la musique ?
je suis pas très fan mais la suggestion de BBEAR de générer un .H est préférable au système de resources
à part ça c'est pas mal pour un début
bon courage pour les metaballs ^^
ps: si ça t'intéresse, cherches "marching cubes"
cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008 4 avril 2007 à 12:57
pour Minifmod, il ne faut pas passer par les ressources, mais il faut transformer le fichier module en tableau de char (j'utilise INCPRO) qui sera sauvegarder dans un fichier .H
ensuite utiliser les fonctions memopen/memseek... modifiées :
// minifmod include & lib
#include "minifmod.h"
#pragma comment(lib,"minifmod.lib")
#pragma comment(lib,"winmm.lib")
//--- Module
#include "MOD.H"
// module struct
typedef struct
{
int length;
int pos;
void *data;
} MEMFILE;
FMUSIC_MODULE *pModule;
unsigned int memopen(char *name)
{
MEMFILE *memfile;
memfile = (MEMFILE *)calloc(sizeof(MEMFILE),1);
memfile->length = sizeof(music);
memfile->data = malloc(memfile->length);
memfile->pos = 0;
memcpy(memfile->data,music,memfile->length);
return (unsigned int)memfile;
}
void memclose(unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;
free(memfile->data);
}
int memread(void *buffer, int size, unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;
if (memfile->pos + size >= memfile->length)
size = memfile->length - memfile->pos;
memcpy(buffer, (char *)memfile->data+memfile->pos, size);
memfile->pos += size;
return size;
}
void memseek(unsigned int handle, int pos, signed char mode)
{
MEMFILE *memfile = (MEMFILE *)handle;
if (mode == SEEK_SET)
memfile->pos = pos;
else if (mode == SEEK_CUR)
memfile->pos += pos;
else if (mode == SEEK_END)
memfile->pos = memfile->length + pos;
if (memfile->pos > memfile->length)
memfile->pos = memfile->length;
}
int memtell(unsigned int handle)
{
MEMFILE *memfile = (MEMFILE *)handle;
return memfile->pos;
}
// pour Initialiser :
// init FMOD
FSOUND_File_SetCallbacks(memopen, memclose, memread, memseek, memtell);
pModule = FMUSIC_LoadSong( (char*)music, NULL ); //sampleloadcallback;
FMUSIC_PlaySong(pModule); // start music
Voila j'ai mis l'éxécutable dans le zip. Vous pouvez le télécharger et l'éxécuter diréctement.
J'ai modifier un peux la source, mais ce ne sont que des petit truc de rien du tout.
Voila.
BBEAR> A mon avis c'est chaud de faire des metaballs ou du plasma quand on commence l'OpenGL :) J'éssayerai peut être plus tard mais là pour le moment c'est au dela de mes compétences.
A++
cs_bbear
Messages postés92Date d'inscriptionjeudi 24 novembre 2005StatutMembreDernière intervention29 mai 2008 3 avril 2007 à 15:32
un p'tit exe aurait pas été de trop...
ou alors un lien vers celui du site (c'est l'IntroCPP v1.00) ?
si c'est celle là, j'aime bien les "barres de copper" en openGl. Comme je demarre aussi l'OGl, je me demandais comment faire des effets Oldskool (plasma, bobs...).
si tu utilises Minifmod, tu peux integrer le module dans l'exe (pm pour plus d'infos ou chercher mes messages, j'ai déjà posté la-dessus)
8 avril 2007 à 12:30
7 avril 2007 à 21:58
toujours avoir un .cpp avec un .h
s'il y a du code dans un .h le plus souvent c'est pour faire du inline avec du code critique (appelé plusieurs fois par image par ex)
les fonctions de fenêtrage c'est pas trop critique
7 avril 2007 à 11:37
5 avril 2007 à 21:47
Concernant le probléme du texte trop petit, j'ai eu le même probléme sur le PC de mon frére (et c'est vrai que c'est chiant !!!), je vais éssayer de voir d'ou cela peux bien venir... En tout cas ne croyais pas que je laisse la source a l'abandon si pendant quelques jours il n'y a aucun changement...
Je vais quand même éssayer de faire vite si je peux.
Mercie pour l'aide c'est super cool de votre part.
A+
5 avril 2007 à 13:17
sinon avec une selection windowed/fullscreen :
5 avril 2007 à 12:57
shenron666> Oui l'intro est en 1024x768, car je ne sais pas comment obtenir la resolution d'écran... Quand je trouverez je modifierais a nouveau la source. (pour l'instant je vais remettre les bordures sur la fenêtre et agrandir le texte...).
Sa risque de prendre quelques jours, ce n'est pas que je galére a coder mais c'est que en ce moment j'ai trop de trucs a faire :)
A+ les gars.
4 avril 2007 à 22:49
ps: je pensais BOBS (pas Blobs) dans le sens afficher des "sprites" 2D (images) en OpenGl (voir l'invitro de la Breakpoint 2007 de Keops avec des vieux effets)
4 avril 2007 à 22:37
- elle n'est pas en plein écran mais dans une fenêtre sans bordure (mon bureau est en 1280x1024)
- le texte, du moins je pense que c'est du texte, est illisible, il reste trop "loin" ou en tout cas il est trop petit
je pense que c'est pour faire "old school" que tu as voulu mettre en resource la musique ?
je suis pas très fan mais la suggestion de BBEAR de générer un .H est préférable au système de resources
à part ça c'est pas mal pour un début
bon courage pour les metaballs ^^
ps: si ça t'intéresse, cherches "marching cubes"
4 avril 2007 à 12:57
ensuite utiliser les fonctions memopen/memseek... modifiées :
4 avril 2007 à 12:40
J'ai modifier un peux la source, mais ce ne sont que des petit truc de rien du tout.
Voila.
BBEAR> A mon avis c'est chaud de faire des metaballs ou du plasma quand on commence l'OpenGL :) J'éssayerai peut être plus tard mais là pour le moment c'est au dela de mes compétences.
A++
3 avril 2007 à 15:32
ou alors un lien vers celui du site (c'est l'IntroCPP v1.00) ?
si c'est celle là, j'aime bien les "barres de copper" en openGl. Comme je demarre aussi l'OGl, je me demandais comment faire des effets Oldskool (plasma, bobs...).
si tu utilises Minifmod, tu peux integrer le module dans l'exe (pm pour plus d'infos ou chercher mes messages, j'ai déjà posté la-dessus)