begin process at 2012 02 12 07:33:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Graphique

 > 

bomberman avec turbo c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

bomberman avec turbo c++

jeudi 9 mai 2002 à 15:00:21 | bomberman avec turbo c++

xav42

Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peu
mais bon...
Voici mon probleme :
j'ai un projet pour la fin de l'annee: faire un bomberman tres simplifié,
donc j'utiser par de sprite mais tout simplement un carré que je deplace
dans toute les zone de l'ecran a l'aide du clavier, ça j'y arrive avec un:
c= getch
if (c==27)
{ deplacement de mon carré...}
Mon probleme: il y a 2 joueurs donc 2 carré a deplacer....
j'y arrive mais un gros probleme: on peux pas les deplacer en meme temps...
les combinaison de touche marche pas, du style: if (c==27 && autre code
ascii...)
donc ça bouche mais chacun son tour...
comment faire pour pouvoir avoir une interuption avec plusieur touche, une
combinaison de touche... enfin, une solution qui ferrai que je peu deplacer
les 2 carré en meme temps, si j'appuis sur '' par exemple : mon carré bleu
va a gauche et si j'ppuis en meme temps sur 'L' : le rouge va vers la
droite...
Merci
Xav

Revenir en haut





programmaeur fou
Invité





Posté le: Lun Avr 22, 2002 12:17 Sujet du message:

il n'y a po de solution comme tu dis, où chaque touche serait gérée
parallèlement !
Les touches seront toujours traités l'une après l'autre.
je te conseille d'utiliser kbhit() qui permet de savoir quand une touche est
pressée.
genre :
while (...)
{
if (kbhit())
c = getch();
}
switch(c)
{
case 'codeASCII de la touche' :
deplacement du premier joueur
break;
case 'code ASCII d'une autre touche' :
deplacement du secon joueur
break;
}

Comme ça même si les deux joueurs appuient en même temps sur une touche,
grace à la grande vitesse de ton PC tu auras l'impression que les deux
carrés se déplacent en même temps, alors qu'ils se seront déplacés l'un
après l'autre.

Bon j'espère que ça va t'aider !!!
Sinon je veux bien aussi t'expliquer comment gérer les interruptions clavier
mais ça va te compliquer la vie pour rien

Revenir en haut





Invité






Posté le: Mar Avr 30, 2002 11:15 Sujet du message:

Sur un PC, il est possible de tester une action simultanée sur les touches
shift crtl et alt. Ces touches n'envoient pas de code caractere mais les
modifient.
La particularité c'est qu'ils sont lisibles en permanence.

Le bout de programme renvoie l'état des touches (combinaison binaire sur 8
bits)


//****************************************************************
char ShiftCtrl(void) // Detecter l' appui sur shift ou ctrol
{
char temp;
asm {
// ****************** LIRE L ETAT DU CLAVIER
MOV AH,2; // fonction
INT 0x16; // lire les flags clavier dans AL
AND AL,0x7;
MOV temp,AL; // sortir les nouvelle donnees dans une variable C
}
return (temp);
}

Revenir en haut





xav42
Nouveau membre du Club



Inscrit le: 20 Avr 2002
Messages: 4

Posté le: Jeu Mai 09, 2002 13:17 Sujet du message: Merci mais...

Avec le switch.. marche pas vraiment... quand j'appuis une fois relaché le
carré continu a avancer et de + ça change rien, 2 touche en meme temps ça
marche pas...
Ensuite pour l'autre reponse... je capte rien, je suis tout debut...
l'assembleur me parré un autre monde...lol
je fé une copie de mon projet:

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>


void Titre() // ecran titre du jeu
{
char f;
cleardevice();
setcolor(RED);
settextstyle(TRIPLEX_FONT, HORIZ_DIR, 6);
outtextxy(100,30," boomberman!!! ");
do //Boucle pour faire clignoter le texte en mode graphique
{ settextstyle(TRIPLEX_FONT, HORIZ_DIR, 2);
setcolor(9);
outtextxy(160,420," appuyer sur une touche ");
delay(500);
setfillstyle(SOLID_FILL,BLACK);
bar(160, 400, 600,460);
delay(500);
}while(!kbhit());
f=getch(); /*sort si on appuit sur echap */
if (f==27)
{
closegraph();
}
cleardevice();
}


void joueur(int mi , int ni )
{
char c;
while (c!=27)
{

setfillstyle(SOLID_FILL,BLUE);
bar(mi,ni,mi+30,ni+30);


if (kbhit())
{
c=getch();
/* deplacement du joueur bleu */



if(c==77 && mi<getmaxx()-30) /*deplacement vers la droite*/
{

setfillstyle(SOLID_FILL,BLACK);
bar(mi,ni,mi+30,ni+30);
mi=mi+10;

}

if(c==75 && mi>0) /*deplacement vers la gauche*/
{
setfillstyle(SOLID_FILL,BLACK);
mi=mi-10;
bar(mi+30,ni,mi+60,ni+30);

}

if(c== 72 && ni>0) /*deplacement vers le haut*/
{
setfillstyle(SOLID_FILL,BLACK);
ni=ni-10;
bar(mi,ni+30,mi+30,ni+60);

}

if(c==80 && ni<getmaxy()-30) /*deplacement vers le bas*/
{
setfillstyle(SOLID_FILL,BLACK);
ni=ni+10;
bar(mi,ni-30,mi+30,ni);

}

/* fin du deplacement */
}
delay(3);
}
}


void main()
{
int gdriver = DETECT, gmode, errorcode;
char E;
initgraph(&gdriver, &gmode, "c:\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk)
{
printf("carte graphique...: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

while (E!=27)
{
Titre();
joueur(200,100);



}

enfin, la c quand j'ai pas encore essayer de mettre un joueur 2 avec
switch(c) mais comme ça marche pas...
si vous pouvez quelque chose pour moi.. ça serrai super simpa
merci >>
lundi 17 janvier 2005 à 20:43:29 | Re : bomberman avec turbo c++

WariorProg



WariorProg

Merci beaucoup car moi je galerai avec int86(0x16,..............)
il est vrai que ca a l air plus leger avec kbhit()


Cette discussion est classée dans : temps, touche, carré, deplacement, mi


Répondre à ce message

Sujets en rapport avec ce message

bomberman avec turbo c++ [ par xav42 ] Bonjour, je suis étudiant et à mon iut on utilise turbo c++ qui date un peumais bon...Voici mon probleme :j'ai un projet pour la fin de l'annee: fair [Directx] Deplacement et vitesse d'une balle selon le cpu ? [ par skeleton ] Salut, voila mon probleme je me test avec directx en faisant un casse brique mais voila que je tombe sur un probleme (qui commence a me faire rager et comment gérer un sleep() et une siasie de touche en même temps? [ par capunk ] bonjour, j'ai un programme a faire dont le but est de simuler le fonctionnement d'une mémoire vive.Donc mon soucis c'est qu'il faut que je simule auss Tester l'appui d'une touche [ par Spoolega ] BonjourLe programme est écrit en C en mode console.Il faudrait que le prog puisse détecter l'appui d'une touche mais sans tout bloquer (genre, scanf, détécter l'appuit des fleches [ par florian1121 ] bonjours il m'est deman der dans le cadre de mes étude de realisé un projet d'informatique! seulement mon tres faible niveau ne me ^permet pas d'y par decompte du temps [ par florian1121 ] Bonjiours, je recherche une fonction qui effecturait un decompte du temps en lancant le programme et ensuite je cherche un moyen d'obtenir le temps qu 2 boucles qui ne veulent pas marcher en mm tps [ par florian1121 ] Bonjour, g un probleme avec deux boucles que je n'arrive pas a faire marcher simultanément!!C soit l'une soit l'autre mais pas les deux en meme temps, Recherche librairie jpeg [ par turnerom ] Bonjour a tous.Ma question est dans le titre du message.Je cherche une librairie C++ pouvant décompresser une image jpeg deja en mémoire. Pour cela, j Utilisation du port // ; mesure temps-résistance [ par thibzult ] Bonjour,Je dois d'abord vous dire que mes connaissances en programmations sont ... quasi nulles ! J'ai programmé il y a longtemps en GW-Basic puis Q-B problème animation [ par DanteSeb ] Bonsoir !! Voila mon problème j'ai créer un code d'animation de Jet avec courbe de Bézier mais mon animation plante au bout d'un passage en boucle...


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,966 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales