PDA

View Full Version : How to make a VERY basic interface



Lord_Maggot
02-24-2003, 02:56 AM
Hi,

I'm currently making a hangman game. I basically want to format a standard looking menu/game interface. Just crap things like a row of asterisks around the title, edge of boarder etc.

When hangman is played I want the screen to have set areas for displaying the man etc. That way I just use gotoxy.

What I need to know is, are there any commands that can align output to the screen? So I could for example put asterisks to the far right of the screen etc. Or is there an easier way.

I'm only a beginner coder so nothing majorly nice looking or difficult please :) I get confused easily enough.

biosninja
02-24-2003, 03:51 AM
this is taken from one of my projects when from when i was studying.

(note : It will not compile)

this is basicly what you can do.
this is the intro for my banking system. It displays a rotating yin-yang, the time(updates every second) abd a message that flickers. both of these three items all refreshes at a different time



void Driver::intro()
{
int gd,gm;
int yrad = 100;
int xrad = 100;
int flag1 = 0;
int flag2 = 0;
int counter = 0,counter2 = 0;
float rad;
char* text = "Press any key to continue";
void far* buffer;
void far* buffTime;
void far* buffContinue;
SysInfo info;

rad=12.5;
detectgraph(&gd,&gm); //initgrpah
initgraph(&gd,&gm,"");
//get memory for buffers
buffer = farmalloc(imagesize(1,1,205,205));
buffTime = farmalloc(imagesize(1,1,100,50));
buffContinue = farmalloc(imagesize(1,1,400,100));
//getimage for buffers
getimage(1,1,205,205,buffer);
getimage(1,1,100,50,buffTime);
settextstyle(1,0,2);
outtextxy(320-(textwidth(text)/2),420,text); //prints message
getimage(320-(textwidth(text)/2),420,320+textwidth(text)/2,
420+textheight("H")*1.5,buffContinue);
setcolor(GREEN);
outtextxy(320-(textwidth("CopyRight 2001, Ernst Bleeker")/2),10,
"CopyRight 2001, Ernst Bleeker");
settextstyle(1,0,5);
setcolor(BLUE);
introRead(); //calls the inroread function
setcolor(WHITE);
settextstyle(1,0,3);
setcolor(RED);
info.dateG(465,150); //gets the date
if (gd == 9)
{
outtextxy(490-textheight("Video Mode :"),300,"Video Mode :");
switch(gm)
{
case 0: outtextxy(530-(textwidth("640x200x16")/2)+15,340,"640x200x16");
break;
case 1: outtextxy(530-(textwidth("640x200x16")/2)+15,340,"640x350x16");
break;
case 2: outtextxy(530-(textwidth("640x200x16")/2)+15,330,"640x480x16");
}
}
else
{
outtextxy(530-(textwidth("Unknown Mode")/2)+15,340,"Unknown Mode");
}
info.time(495,240); //get the time
setcolor(WHITE);
do
{ // do

if (counter2 == 9)
{
settextstyle(1,0,2);
putimage(320-(textwidth(text)/2),420,buffContinue,1);
settextstyle(1,0,3);
counter2 = 0;
}
counter2++;
if (counter == 15)
{
setcolor(RED);
putimage(495,240,buffTime,0);
info.time(495,240);
setcolor(WHITE);
counter = 0;
}
counter++;
ellipse(320,240,0,360,xrad,yrad);
ellipse(320,185,0,360,(xrad/8)+1,rad);
ellipse(320,290,0,360,xrad/8,rad);
floodfill(320,290,WHITE);
switch (flag2)
{ // switch
case 0 :
ellipse(320,240-yrad/2,90,270,xrad/2,yrad/2);
ellipse(320,240+yrad/2,270,90,xrad/2,yrad/2);
floodfill(320,240-1,WHITE);
break;
case 1 :
ellipse(320,240+yrad/2,90,270,xrad/2,yrad/2);
ellipse(320,240-yrad/2,270,90,xrad/2,yrad/2);
floodfill(320-xrad+1,240,WHITE);
} // switch
if (xrad == 0)
{ // if
if (flag2 == 0)
{ // if
flag2 = 1;
} // if
else
{ // else
flag2 = 0;
} // else
} // if
if (xrad % 100 == 0)
{ // if
if (flag1==0)
{ // if
flag1 = 1;
} // if
else
{ // else
flag1 = 0;
} // else
} // if
if (flag1 == 0)
{ // if
xrad++;
} // if
else
{ // else
xrad--;
} // else
delay(15);
putimage(220,140,buffer,0);
} // do
while (!kbhit());
getch();
closegraph();
//free the momory for the buffer
free(buffer);
free(buffTime);
free(buffContinue);
}