ayuda con mi proyecto escolar

the_nefarius
25 de Noviembre del 2004
tengo un pequeño problema revisen este codigo y por favor ayudenme a resolver el problema de los botones que no funcionan mientras se ve el cubo alguien podria decirme como hacer para que funcionen instantaneamente les dejo el codigo tambien se aceptan correciones y recomendaciones

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

void inicia_mouse();
void iniciagraficos();
void aparece_mouse();
void esconde_mouse();
void edo_mouse(int *x,int *y,int *bot);
void cambia_mouse(int x,int y);
void limita_mousex(int xi,int xf);
void limita_mousey(int yi,int yf);
void prueba();
void botones(int xb, int yb, int longbotx, int longboty);
void boton_presionado(int xb, int yb, int longbotx, int longboty);
void presentacion();
void cubopres(int xp, int yp, int colr);
void titulo(int xp, int yp);
void juego();
void ayuda();
void records();
void main()
{
union REGS raton;
int x,y,botrat1=0,tecla=0,xi=100,xf=500,yi=100,yf=300, xb=130, yb=450, longbotx=80, longboty=16;
char posx[4],posy[4];
int tempx,tempy;

randomize();
iniciagraficos();
presentacion();
botones(xb, yb, longbotx, longboty);
inicia_mouse();
aparece_mouse();

while(tecla!=27)
{
edo_mouse(&botrat1,&x,&y);

if(botrat1==1)
{
if(x>130&&y>450&&x<209&&y<465)
{
esconde_mouse();
boton_presionado(xb,yb,longbotx,longboty);
delay(100);
botones(xb,yb,longbotx,longboty);
aparece_mouse();
juego();
}

if(x>230&&y>450&&x<309&&y<465)
{
esconde_mouse();
boton_presionado(xb+100,yb,longbotx,longboty);
delay(100);
botones(xb,yb,longbotx,longboty);
aparece_mouse();
records();
}

if(x>330&&y>450&&x<409&&y<465)
{
esconde_mouse();
boton_presionado(xb+200,yb,longbotx,longboty);
delay(100);
botones(xb,yb,longbotx,longboty);
aparece_mouse();
exit(1);
}

if(x>430&&y>450&&x<509&&y<465)
{
esconde_mouse();
boton_presionado(xb+300,yb,longbotx,longboty);
delay(100);
botones(xb,yb,longbotx,longboty);
aparece_mouse();
ayuda();
}

/*esconde_mouse();
printf("a");
botrat1=0;
aparece_mouse();*/
}
else
if(botrat1==2)
{
esconde_mouse();
printf("aa");
botrat1=0;
aparece_mouse();
}
if(kbhit()){
tecla=getch();
/*switch(tecla){
case 'p':cambia_mouse(300,300);
break;

case 'c':limita_mousex(xi,xf);
limita_mousey(yi,yf);
break;

case 'r':limita_mousex(0,639);
limita_mousey(0,479);
break;

default:break;
}//switch */
}//if
presentacion();

}//while
closegraph();
}//main

void inicia_mouse(){

union REGS in,out;
in.x.ax=0;

int86(0x33,&in,&out);

}

void aparece_mouse()
{
union REGS in,out;
in.x.ax=1;

int86(0x33,&in,&out);


}
void edo_mouse(int *botrat1,int *x,int *y)
{
union REGS in,out;
in.x.ax=3;

int86(0x33,&in,&out);
*botrat1=out.x.bx;
*x=out.x.cx;
*y=out.x.dx;

}

void esconde_mouse()
{
union REGS in,out;
in.x.ax=2;

int86(0x33,&in,&out);
}

void cambia_mouse(int x,int y)
{
union REGS in,out;
in.x.ax=4;
in.x.cx=x;
in.x.dx=y;
int86(0x33,&in,&out);
}

void limita_mousex(int xi,int xf)
{
union REGS in,out;

in.x.ax=7;
in.x.cx=xi;
in.x.dx=xf;
int86(0x33,&in,&out);
}

void limita_mousey(int yi,int yf)
{
union REGS in,out;
in.x.ax=8;
in.x.cx=yi;
in.x.dx=yf;
int86(0x33,&in,&out);
}

void iniciagraficos()
{

int gd=DETECT,gm,error;
initgraph(&gd,&gm,"..\bgi");
error=graphresult();
if(error!=grOk)
printf("ERROR DE GRAFICOS:");

}

void botones(int xb, int yb, int longbotx, int longboty)
{
int j, r, a, s, j1;

setcolor(9);
settextstyle(0,0,0);
j=textwidth("JUGAR");
r=textwidth("RECORDS");
s=textwidth("SALIR");
a=textwidth("AYUDA");
j1=textheight("JUGAR");

outtextxy(xb+(j/2),yb+(j1/2)+1,"JUGAR");
outtextxy(xb+100+(r/4),yb+(j1/2)+1,"RECORDS");
outtextxy(xb+200+(s/2),yb+(j1/2)+1,"SALIR");
outtextxy(xb+300+(a/2),yb+(j1/2)+1,"AYUDA");

setcolor(15);
line(xb,yb,xb+longbotx,yb);
line(xb,yb,xb,yb+longboty);
line(xb+100,yb,xb+longbotx+100,yb);
line(xb+100,yb,xb+100,yb+longboty);
line(xb+200,yb,xb+longbotx+200,yb);
line(xb+200,yb,xb+200,yb+longboty);
line(xb+300,yb,xb+longbotx+300,yb);
line(xb+300,yb,xb+300,yb+longboty);
setcolor(LIGHTGRAY);
line(xb,yb+longboty,xb+longbotx,yb+longboty);
line(xb+longbotx,yb,xb+longbotx,yb+longboty);
line(xb+100,yb+longboty,xb+longbotx+100,yb+longboty);
line(xb+100+longbotx,yb,xb+100+longbotx,yb+longboty);
line(xb+200,yb+longboty,xb+longbotx+200,yb+longboty);
line(xb+200+longbotx,yb,xb+200+longbotx,yb+longboty);
line(xb+300,yb+longboty,xb+longbotx+300,yb+longboty);
line(xb+300+longbotx,yb,xb+300+longbotx,yb+longboty);
}

void boton_presionado(int xb, int yb, int longbotx, int longboty)
{
setcolor(LIGHTGRAY);
line(xb,yb,xb+longbotx,yb);
line(xb,yb,xb,yb+longboty);
setcolor(15);
line(xb,yb+longboty,xb+longbotx,yb+longboty);
line(xb+longbotx,yb,xb+longbotx,yb+longboty);
}

void presentacion()
{
int xp=257, yp=200;
cubopres(xp, yp, random(15));
cubopres(xp,yp, 0);
titulo(xp,yp);
}

void cubopres(int xp, int yp, int colr)
{
int i, j, k;
int color=colr;
for(i=0; i<100; i++)
{
putpixel(xp+i,yp,color);
putpixel(xp+100-i,yp+100,color);
putpixel(xp+125-i,yp-25,color);
delay(15);
}

for(j=0; j<100; j++)
{
putpixel(xp+100, yp+j,color);
putpixel(xp,yp+100-j,color);
putpixel(xp+125,yp+75-j,color);
delay(15);
}
for(k=0; k<26; k++)
{
putpixel(xp+k,yp-k,color);
putpixel(xp+125-k,yp-25+k,color);
putpixel(xp+100+k,yp+100-k,color);
delay(15);
}
}

void titulo(int xp, int yp)
{
setcolor(RED);
settextstyle(1,0,5);
outtextxy(xp-70,yp-150,"Cubitos chinos");
}

void juego()
{
cleardevice();
outtextxy(300,250,"JUEGO EN CONSTRUCCION");
}

void records()
{
cleardevice();
outtextxy(300,250,"AUN NO HAY RECORDS");
}

void ayuda()
{
cleardevice();
outtextxy(300,250,"TODAVIA NO HAY AYUDA");
}