Dev - C++ - Como mover pinzas en pinball?? Ayuda plis

   
Vista:

Como mover pinzas en pinball?? Ayuda plis

Publicado por Josema (1 intervención) el 08/08/2009 19:47:48
Hola, estoy haciendo un pinball en C con codigos ascii.
El procedimiento es el siguiente:
Para empezar uso el gotoxy para ir moviendo el caracter que hace de bola, borrando el caracter y copiandolo donde yo quiera, de manera que siga una trayectoria mas o menos real.

El problema que tengo es que no se como hacer para que cuando yo SIEMPRE pulse una tecla se mueva una pinza hacia arriba, es decir, que siempre que se pulse una tecla se borren unos caracteres (los que dibujan la pinza cuando esta bajada) y aparezcan otros (los que dibujan la pinza levantada).
Aqui os dejo el codigo fuente para que podais ver lo que hace.

Un saludo y mil gracias de antemano ;)
PD : Uso Dev-C++

[code]
#include <stdio.h>
#include <conio.c>
#include <time.h>
#include <windows.h>

#define GRAVEDAD 1

main()
{
char tablero[21][26]={' '};
int i, j;
char tecla;
char bola=2;
char caract;

int bolaX=25;
int bolaY=20;

float incX;
float incY;
//Creando el techo
for (i=0;i<26;i++)
{
tablero[0][i]=223;
}

//Creando el suelo
for (i=0;i<26;i++)
{
tablero[20][i]=220;
}

//Creando pared izquierda
for (i=0;i<21;i++)
{
tablero[i][0]=219;
}

//Creando pared derecha
for (i=0;i<21;i++)
{
tablero[i][25]=219;
}

//Creando triangulo
for (i=3;i<7;i++)
{
tablero[5][i]=238;
}
tablero[4][3]=47;
tablero[4][6]=92;

tablero[3][4]=47;
tablero[3][5]=92;


//Creando pared de salida
for (i=6;i<21;i++)
{
tablero[i][23]=219;
}
tablero[1][24]=17;


//tablero[19][24]=2;

//Creando rombo GRANDE izquierdo
tablero[9][14]=47;
tablero[8][15]=47;
tablero[8][16]=92;
tablero[9][17]=92;
tablero[10][17]=47;
tablero[11][16]=47;
tablero[11][15]=92;
tablero[10][14]=92;



//Creando rombo pequeño
tablero[9][6]=47;
tablero[10][7]=47;
tablero[10][6]=92;
tablero[9][7]=92;


//Creando zona inferior izquierda
tablero[13][4]=179;
tablero[14][5]=92;
tablero[15][6]=92;
tablero[16][7]=179;
tablero[16][8]=238;
tablero[16][9]=238;
tablero[16][10]=238;
tablero[16][11]=179;
//tablero[18][10]=179;
//tablero[19][10]=179;
//tablero[20][10]=179;
tablero[17][10]=238;
tablero[17][9]=238;
tablero[17][8]=238;

//Creando zona inferior derecha
tablero[16][13]=179;
tablero[16][14]=238;
tablero[16][15]=238;
tablero[16][16]=238;
tablero[16][17]=179;
//1º guion superior pinza derecha
tablero[17][14]=238;
tablero[17][15]=238;
tablero[17][16]=238;
tablero[15][18]=47;
tablero[14][19]=47;
tablero[13][20]=179;

//Mostrando el tablero por pantalla
for (i=0;i<21;i++)
{
for (j=0;j<26;j++)
{
printf("%c",tablero[i][j]);
}
printf(" ");
}


printf("Pulsa espacio para empezar ");
tecla = getch(); // Asigna a tecla el caracter presionado por teclado. No muestra nada por pantalla.

if (tecla==' ')
{
//Sacando la bola por el pasillo
for (incY=-17, incX=0;incY<=0;incY++)
{
gotoxy(bolaX,bolaY);
bolaY=bolaY-1;
cprintf("%c",bola);
Sleep(150);
gotoxy(bolaX,bolaY+1);
printf("%c",' ');
if (tablero[bolaY-1][bolaX-1]==17)
{
//bolaY=4;
//bolaX=24;
//Bajando la bola desde el final del pasillo al rombo GRANDE
//tablero[8][16]=92;
for (incY=6, incX=10;incY>=0 && incX>=0;incY--,incX--)//while (tablero[bolaY-1][bolaX-2]!=92)
{
bolaY=bolaY+1;
bolaX=bolaX-1;
gotoxy(bolaX,bolaY);
cprintf("%c",bola);
sleep(100);
gotoxy(bolaX,bolaY);
//sleep(2000);
cprintf("%c",' ');
}
//bolaY=9
//bolaX=18
//printf("Y=%d ",bolaY);
//printf("X=%d ",bolaX);


//Pasando la bola del rombo GRANDE a la pared derecha
for (incY=1, incX=3;incY>=0 && incX>=0;incY--, incX--)//while (bolaX<22) //while(tablero[bolaY-1][bolaX-1]!=219)
{
bolaY=bolaY+1;
bolaX=bolaX+2;
gotoxy(bolaX,bolaY);
cprintf("%c",bola);
sleep(100);
gotoxy(bolaX,bolaY);
cprintf("%c",' ');
}
//bolaY=11
//bolaX=22
//printf("Y=%d ",bolaY);
//printf("X=%d ",bolaX);
/*
bolaX=bolaX+1;
bolaY=bolaY+1;
gotoxy(bolaX,bolaY);

cprintf("%c",bola);
sleep(150);
//printf("bY %d ",bolaY);
//printf("bX %d",bolaX);
//bolaY=12 bolaX=23
gotoxy(bolaX,bolaY);
cprintf("%c",' ');
*/

//tablero[16][10]=238;
//Pasando bola de la pared derecha a pinza izquierda
for (incY=5, incX=12;incY>0 && incX>0;incY--, incX--)//while (bolaY<16)
{
bolaY=bolaY+1;
bolaX=bolaX-2;
gotoxy(bolaX,bolaY);
cprintf("%c",bola);
sleep(100);
gotoxy(bolaX,bolaY);
cprintf("%c",' ');
}
gotoxy(bolaX,bolaY);
cprintf("%c",bola);

//tablero[16][13]=238;
//tablero[18][14]=238;
//tablero[18][15]=238;



}
}
}


gotoxy(1,22);
system("pause");
return 0;
}

[/code]
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder