IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques Discussion :

Help : MessageBox


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut Help : MessageBox
    Voilà je suis étudiant en BTS seconde année et actuellement en stage.
    On m'a chargé de créer un tuto et j'ai eu l'idée de faire un tuto sur la création d'un petit jeu de A à Z en utilisant PTK.

    PS : j'ai bien peur que je vais passer de plus en plus souvent ici

    J'avoue avoir de nombeux problèmes et le patron étant en déplacement là je sèche sur un truc.

    Voilà : j'essai de faire en sorte que l'utilisateur saisisse le nom d'un fichier, ce dernier étant enregistré dans une variable nommé name.
    J'ai donc en gros :

    char name[20];

    name = MessageBox(0,L"Saisissez le nom de votre fichier .txt.",L"Saisir Nom",0);

    Sauf que j'ai une erreure m'indiquant qu'on en peut convertir du int en char. Je sais que c'est logique vous inquiétez pas. Mais j'ai retourné tout le net, y compris cette dauberie de msdn (perso ça m'a jamais aidé ce truc désolé), sans trouver de solution.

    Aidé un petit débutant qui cherche à devenir programmeur de jeux vidéos

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. Connais pas PTK
    2. Si la fonction MessageBox() que tu emploies est celle de Windows, sache qu'il n'y a malheureusement pas de fonction directe pour obtenir une simple saisie de texte. Au niveau complexité, les boîtes de dialogue fournie par Windows vont directement de "Afficher un message" à "Sélectionner un fichier"...
    3. Sois poli.
    4. Pour sélectionner un fichier, utilise la fonction GetOpenFileName() ou GetSaveFileName(), déclarée dans <commdlg.h> (et si tu as une erreur à l'édition de liens, ajoute au projet la bibliothèque statique comdlg32.lib)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Médinoc
    1. Connais pas PTK
    2. Si la fonction MessageBox() que tu emploies est celle de Windows, sache qu'il n'y a malheureusement pas de fonction directe pour obtenir une simple saisie de texte. Au niveau complexité, les boîtes de dialogue fournie par Windows vont directement de "Afficher un message" à "Sélectionner un fichier"...
    3. Sois poli.
    4. Pour sélectionner un fichier, utilise la fonction GetOpenFileName() ou GetSaveFileName(), déclarée dans <commdlg.h> (et si tu as une erreur à l'édition de liens, ajoute au projet la bibliothèque statique comdlg32.lib)
    PTK est une bibliotèque pour la création 2D/3D de jeux vidéos en passant par OpenGl (ou DirectX).

    Donc il n'y a aucun moyen de demander un nom pour l'enregistrer dans une variable?

    Où j'ai été mal poli? Pour "dauberie" sur msdn... Y a pire franchement, si tu veus des vrais insultes je peus t'en envoyr par MP

    pour la gestion et l'enregistrement de fichier c'est bon pas d'inquiétude. Mon unique soucis est de pouvoir donner un nom à mon fichier pour éviter les doublons.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    1. OK.
    2. Aucun moyen simple, rapide et intégré. Il faut au minimum faire une fenêtre perso ou une boîte de dialogue perso.
    3. Tu oses et je forwarde direct aux modos
    4. Puisque tu veux un nom de fichier, autant utiliser ses fonctions-là. Mais si tu voulais demander autre chose à l'utilisateur (son nom à lui, par exemple) il te faudrait passer par une fenêtre ou boîte de dialogue perso.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Médinoc
    1. OK.
    2. Aucun moyen simple, rapide et intégré. Il faut au minimum faire une fenêtre perso ou une boîte de dialogue perso.
    3. Tu oses et je forwarde direct aux modos
    4. Puisque tu veux un nom de fichier, autant utiliser ses fonctions-là. Mais si tu voulais demander autre chose à l'utilisateur (son nom à lui, par exemple) il te faudrait passer par une fenêtre ou boîte de dialogue perso.
    J'oserais pas rassure toi
    Donc hormis passer par la création de fenêtre perso il n'y a aucun moyen...
    Bizarre mais bon c'est pas dramatique je vais trouver une solution de rechange c'est pas un soucis.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par Ryuuku
    Donc hormis passer par la création de fenêtre perso il n'y a aucun moyen...
    Tu ne lis pas ce que je lis, ou bien tu as décidé de demander autre chose qu'un nom de fichier ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Médinoc
    Tu ne lis pas ce que je lis, ou bien tu as décidé de demander autre chose qu'un nom de fichier ?
    Oui j'avais prévu ça aussi.

  8. #8
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    J'ai honte de demander ça... J'aimerais savoir s'il était possible de corriger du code??

    Je veus dire... Arf comment expliquer... Comme je l'ai dis au début je suis en stage, le aptron est absent et me dis quand je fais des erreurs et sur quoi. J'aovue ne aps être un pro du C++ loin de là, a vrai dire j'ai plus appris les bases dirons nous.
    Le soucis c'est que parfois je trouve la solution tout seul, parfois non et parfois je galère et me dis que finalement c'est comme si j'avais jamais appris le C++...

    J'ai à la fois et je suis à la fois d'en être là parce que j'aime bien programmer (même si pour le moment je suis loin de pouvoir faire d'énorme programme hein), j'essai de m'investir à fond dedans mais... je bloque quoi.

    Voilà donc je pose tout de même la question : est-il possible si je donne un code, de le corriger tout en m'expliquant peut être Ou en me donnant des pistes...
    Rassurez vous toutefois, je sais que ce forum n'a pas pour but de jouer les professeurs. Donc si la réponse est négative vous inquiétez pas le prendrais pas mal.
    j'ai un peu l'impression de demander de faire mon devoir de math à ma place

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Corriger/commenter du code déjà fait, c'est ce qu'on fait de mieux ici (si ce n'est pas trop gros).
    Ce qu'on ne fait pas, c'est pondre du code sans rien en entrée.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par Médinoc
    Corriger/commenter du code déjà fait, c'est ce qu'on fait de mieux ici (si ce n'est pas trop gros).
    Ce qu'on ne fait pas, c'est pondre du code sans rien en entrée.
    Autrement dit : si je te dis : fait moi un code pour ceci et cela, tu me diras non. Logique

    En revanche si je te mets un code en te disant ce qu'il est censé faire et que te demande de me conseiller, là en revanche ça serait possible.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    C'est bien ça, c'est la politique du forum.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Bon ben vais essayer quand même, mais si finalement c'est pas possible je vous en voudrais pas. C'est logique d'aider mais de faire le boulot à la place des autres.

    Tout d'abord le projet en cours est de faire un petit jeu (un labyrinthe) et ensuite d'en faire un tuto complet en français et anglais. Le but étant d'apprendre à utiliser PTK. Il est donc possible que certaines choses vous semble obscur, mais globalement je suis sur de ce qui ressort de ptk, beaucoup moins de ce qui ressort du C++.

    J'ai séparé mon code en plusieurs fichiers sources : celui que vous allez voir est celui en rapport avec les niveaux. Je vais essayer d'expliquer en quoi consiste chaque chose, noté que init() n'a pas été commencé, donc je vous demande pas de correction là dessus rassurez vous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
     
    #include <ptk.h>
    #include <stdlib.h>
    #include <stdio.h>
     
    class cLevel 
    {
    public :
    	char levelGrid[20][15] ; 
     
    	void init();//initialisation de levelGrid à partir d'un fichier
     
    	void drawLevel(void) ; //fabrication du niveau à partir de levelGrid
     
    	bool isThereABrickAt( long x ,long y); //vérification s'il y a une brique pour déplacement
    };
     
    void init (); //Pas encore commencé
    {
    	//selon selectniveau de menu : 1 pour lvl1 et 2 pour lvl2
    	//ouverture du fichier
    	//lecture de fichier
    	//enregistrement dans tableau 1 à 1
    }
     
    void DrawBrickBlack (long x, long y)//construction d'une brique noir avec black.tga
    {
    	KGraphic *BlackBrick = NULL ;
    	//BlackBrick = KPTK::createKGraphic(); et BlackBrick->loadPicture(KMiscTools::makeFilePath("black.tga"),true,true); à mettre dans le main, la procédure elle sera dans la boucle
    	BlackBrick -> blitAlphaRect(0,0,32,32,x,y);
    	delete BlackBrick;
    };
     
    void DrawBrickRed (long x,long y)//construction d'une brique rouge avec red.tga
    {
    	KGraphic *RedBrick = NULL;
    	//Voir DrawBrickBlack pour ce qui est à mettre en début de main
    	RedBrick -> blitAlphaRect(0,0,32,32,x,y);
    	delete RedBrick;
    };
     
    void drawLevel() //construction du niveau en ajoutant ou non une brique selon le tableau levelgrid.
    {
    	int x, y ;
     
    	for (x=0 ; 640 ; x+=32)
    		{
    		for (y=0 ; 480 ; y += 32)
    		{
    			if (levelGrid[x][y]== 1)
    			{
    				DrawBrickBlack(x*32,y*32); // brique normal
    			}
    			if (levelGrid[x][y]==2)
    			{
    				DrawBrickRed(x*32,y*32); //brique de départ et d'arrivé
    			}
     
    		}
    	}
    };
    bool  isThereABrickAt(long x , long y) //oui il y a une brique, non il n'y en a pas, cela servira pour le déplacement du perso dans le laby
    {
    	if (levelGrid[x][y]!= 0) 
    	{
    		return 1;
    	}
    	else
    	{
    		return 0;
    	}
    }; 
     
    //éditeur de niveau
    void EditLvl()
    {
    	bool LeftBMouse;
    	int Tab [20][15] ;
    	LeftBMouse = KInput::getLeftButtonState();
    	KWindow *editorWindow = NULL;
    	KGraphic *editorPicture = NULL;
    	FILE* sav = NULL;
    	int i,j,x,y;
    	short mx, my ;
     
    	editorWindow = KPTK::createKWindow(K_OPENGL);
    	editorWindow -> createGameWindow(640,480,-1,true,"editor");
    	editorPicture = KPTK::createKGraphic();
    	editorPicture -> loadPicture(KMiscTools::makeFilePath("editorfont.tga"),true,true);
     
    	do
    	{
    		editorWindow->setDefaultWorldView();
    		editorPicture->blitAlphaRect(0,0,640,480,0,0);
     
    		for (x=0 ; 640 ; x+=32) 
    		{ 
    			editorPicture->drawLine(x,0,x,480,1,1,1,1);
    		};
    		for (y=0 ; 480 ; x+=32)
    		{
    			editorPicture->drawLine(0,y,640,y,1,1,1,1);
    		};
     
    		mx = KInput::getMouseX() / 32;
    		my = KInput::getMouseY()/ 32;
     
    		if ( mx >= 0 && my >= 0 && mx < (640/32) && my < (480/32) )
    		{
    			if (LeftBMouse)
    			{
    				if  ( Tab[mx][my] == 0 )
    				{
    					Tab[mx][my] = 1 ;
    				}
    				else
    				{
    					Tab[mx][my] = 0 ;
    				}
    			}
    			if ( KInput::isPressed( K_VK_S ) == ISDOWN ) //Pour la sauvegarde, à modifier pour une intégration dans le jeu si j'ai le temps, mais comme c'est juste pour créer 2 niveaux.
    			{
    				sav = fopen("level.txt,"w");
    				for (i=1 ; 20; i++)
    				{
    					for (j=1;15;j++)
    					{
    						fputc(Tab[i][j],sav);
    					}
    				}
    				fclose(sav);
    			}
    		}
    	}while(editorWindow->isQuit() == false );
    	delete sav;
    	delete editorWindow;
    	delete editorFont
    };
    Voilà, si vous avez des questions hésitez pas, si ça vous semble trop à corriger au point de refaire le code vous inquiétez pas je comprendrais.

    Merci ent out cas si vous pouvez me conseiller. Perso je vois pas d'erreurs à mon humble petit niveau, mais mon patron me signale qu'il y a des soucis de pointeurs et de déclaration de fonction.
    De même que le débuggeur me dit que levelGrid (dans les fonctions, mais aps dans la classe) n'est pas déclaré (hors elle est en "public" dans ma déclaration d'ojet)...

    Voilà et encore désolé j'ai un peu honte

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Hum...
    Il y avait pas mal d'erreurs de syntaxe.
    J'ai fait quelques corrections. Mais je te préviens, je n'ai pas PTK, donc je n'ai pas pu tester...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    #include <ptk.h>
    #include <stdlib.h>
    #include <stdio.h>
     
    class cLevel 
    {
    public :
    	/* Med:
    		On va utiliser des constantes pour 20 et 15, parce qu'on va en avoir besoin ailleurs.
    	 */
    	static const int LARGEUR = 20;
    	static const int HAUTEUR = 15;
    	char levelGrid[LARGEUR][HAUTEUR]; 
     
    	void init();//initialisation de levelGrid à partir d'un fichier
     
    	void drawLevel(void) ; //fabrication du niveau à partir de levelGrid
     
    	bool isThereABrickAt( long x ,long y); //vérification s'il y a une brique pour déplacement
    };
     
    /* Med:
    	Quand une fonction est dans une classe, il faut annoncer la classe dans la déclaration.
    void init(); //Pas encore commencé
     */
    /* Med: Pas d'espace entre la fonction et la parenthèse ouvrante, c'est illisible à souhait. */
    void cLevel::init()
    {
    	//selon selectniveau de menu : 1 pour lvl1 et 2 pour lvl2
    	//ouverture du fichier
    	//lecture de fichier
    	//enregistrement dans tableau 1 à 1
    }
     
    void DrawBrickBlack (long x, long y)//construction d'une brique noir avec black.tga
    {
    	KGraphic *BlackBrick = NULL ;
    	//BlackBrick = KPTK::createKGraphic(); et BlackBrick->loadPicture(KMiscTools::makeFilePath("black.tga"),true,true); à mettre dans le main, la procédure elle sera dans la boucle
    	BlackBrick -> blitAlphaRect(0,0,32,32,x,y);
    	delete BlackBrick;
    }/* Med: Le ';' est inutile après une fonction : c'est juste après les structures et les classes. */
     
    void DrawBrickRed (long x,long y)//construction d'une brique rouge avec red.tga
    {
    	KGraphic *RedBrick = NULL;
    	//Voir DrawBrickBlack pour ce qui est à mettre en début de main
    	RedBrick -> blitAlphaRect(0,0,32,32,x,y);
    	delete RedBrick;
    }
     
    /* Med:
    	Nom de la classe oublié là aussi.
     */
    void cLevel::drawLevel() //construction du niveau en ajoutant ou non une brique selon le tableau levelgrid.
    {
    	int x, y ;
     
    	/* Med :
    		Le for, dans les langages c-style, doit spécifier les conditions explicitement.
    		Pas d'espace non plus entre le for et la parenthèse, pour raison de lisibilité:
    		Si tu veux mettre des espaces, mets-les à l'intérieur des parenthèses.
    	for (x=0 ; 640 ; x+=32)
    		De plus, ici tu accèdes à ta matrice de 20*15 : Tu ne dois pas utiliser les "grandes" valeurs ici.
    	 */
    	for(x=0 ; x<LARGEUR ; x++)
    	{
    		for(y=0 ; y<HAUTEUR ; y++)
    		{
    			if(levelGrid[x][y]== 1)
    			{
    				DrawBrickBlack(x*32,y*32); // brique normal
    			}
    			if(levelGrid[x][y]==2)
    			{
    				DrawBrickRed(x*32,y*32); //brique de départ et d'arrivé
    			}
     
    		}
    	}
    }
     
    /* Med:
    	Nom de la classe oublié là aussi.
     */
    bool cLevel::isThereABrickAt(long x , long y) //oui il y a une brique, non il n'y en a pas, cela servira pour le déplacement du perso dans le laby
    {
    	if (levelGrid[x][y]!= 0) 
    	{
    		return 1;
    	}
    	else
    	{
    		return 0;
    	}
    }
     
    //éditeur de niveau
    void EditLvl()
    {
    	bool LeftBMouse;
    	int Tab [cLevel::LARGEUR][cLevel::HAUTEUR];
    	LeftBMouse = KInput::getLeftButtonState();
    	KWindow *editorWindow = NULL;
    	KGraphic *editorPicture = NULL;
    	FILE* sav = NULL;
    	int i,j,x,y;
    	short mx, my ;
     
    	editorWindow = KPTK::createKWindow(K_OPENGL);
    	editorWindow -> createGameWindow(640,480,-1,true,"editor");
    	editorPicture = KPTK::createKGraphic();
    	editorPicture -> loadPicture(KMiscTools::makeFilePath("editorfont.tga"),true,true);
     
    	do
    	{
    		editorWindow->setDefaultWorldView();
    		editorPicture->blitAlphaRect(0,0,640,480,0,0);
     
    		/* Med: Correction des boucles for */
    		for(x=0 ; x<640 ; x+=32) 
    		{ 
    			editorPicture->drawLine(x,0,x,480,1,1,1,1);
    		}
    		for(y=0 ; y<480 ; x+=32)
    		{
    			editorPicture->drawLine(0,y,640,y,1,1,1,1);
    		}
     
    		mx = KInput::getMouseX() / 32;
    		my = KInput::getMouseY()/ 32;
     
    		if( mx >= 0 && my >= 0 && mx < cLevel::LARGEUR && my < cLevel::HAUTEUR )
    		{
    			if(LeftBMouse)
    			{
    				if( Tab[mx][my] == 0 )
    				{
    					Tab[mx][my] = 1 ;
    				}
    				else
    				{
    					Tab[mx][my] = 0 ;
    				}
    			}
    			if( KInput::isPressed( K_VK_S ) == ISDOWN ) //Pour la sauvegarde, à modifier pour une intégration dans le jeu si j'ai le temps, mais comme c'est juste pour créer 2 niveaux.
    			{
    				/* Med : Guillemet manquant, et il faut vérifier le résultat: fclose(NULL) peut faire planter. */
    				sav = fopen("level.txt","w");
    				if(sav!=NULL)
    				{
    					/* Med:
    						Pourquoi cette boucle for commence à 1 ?
    					for(i=1 ; 20; i++)
    					 */
    					for(i=0 ; i<cLevel::LARGEUR ; i++)
    					{
    						for(j=0 ; j<cLevel::HAUTEUR ; j++)
    						{
    							fputc(Tab[i][j],sav);
    						}
    					}
    					fclose(sav);
    				}
    			}
    		}
    	}while(editorWindow->isQuit() == false );
    	/* Med: On ne fait pas de delete sur un FILE*
    		delete sav;
    	 */
    	delete editorWindow;
    	//delete editorFont;
    	delete editorPicture;
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 64
    Points : 43
    Points
    43
    Par défaut
    Merci, mais tkt pas pour PTK

    Erf effectivement j'ai fais beaucoup d'erreurs... Je suis encore loin d'arriver à pouvoir programmer tranquillement en C++

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2003, 16h20
  2. help please
    Par atom267 dans le forum CORBA
    Réponses: 2
    Dernier message: 24/01/2003, 10h41
  3. [Kylix] fichiers help kylix2 oe ??
    Par sdoura2 dans le forum EDI
    Réponses: 2
    Dernier message: 29/11/2002, 14h32
  4. Help :Problème de clignotement
    Par LE CHAKAL dans le forum Composants VCL
    Réponses: 6
    Dernier message: 14/08/2002, 10h53
  5. Help InnoSetup ou Installshield
    Par buzz dans le forum Outils
    Réponses: 4
    Dernier message: 30/07/2002, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo