Hola yo estoy haciendo el juego del arkanoide en lenguaje c y queria saber como podia hacer para mover el cursor que golpea la pelotita y que se mueva la pelotita a la vez, ya que cuendo muevo e cursor la pelotita no hace nada ufaaaa. aca les dejo lo que hice:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define DERECHA 77
#define IZQUIERDA 75
#define ESC 27
#define ENTER 13
void cursor()
{
int tecla,k,d=1;
do{
tecla=getch();
switch(tecla)
{
case DERECHA:
if(k== 38 ) {
k=3;
}
else{
k++;
}
gotoxy(k,);
break;
case IZQUIERDA:
if(k== 3 ) {
k=38;
}
else{
k--;
}
break;
case ESC:
d=0;
break;
}
}while(d!=0);
}
void main()
{
int mat[20][40]={
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,
3,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,
3,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,
3,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,
};
int x,i,j=20,y=15,variable=0,dir=1;
do{
clrscr();
gotoxy(1,1);
printf("variable: %d j=%d y=%d ",variable,j,y);
for(i=0; i<20; i++){
for(x=0; x<40; x++){
if(mat
gotoxy(x+20,i+5);
printf("*");
}
if(mat
gotoxy(x+20,i+5);
printf("=");
}
}
}
//direccion de la pelota
cursor();
switch(dir)
{
case 1:
if(j--<=3||mat[y][j-1]==2){
dir=2;
mat[y][j]=0;
}
else if(y--<=2||mat[y-1][j]==2){
y--;
dir=4;
}
break;
case 2:
if(j++>=38||mat[y][j+1]==2){
dir=1;
mat[y][j+1]=0;
}
else if(y--<=2||mat[y-1][j]==2){
y--;
dir=3;
}
break;
case 3:
if(j++>=38||mat[y][j+1]==2){
dir=4;
mat[y][j+1]=0;
}
else if(y++>=16||mat[y+1][j]==2){
y++;
dir=2;
}
break;
case 4:
if(j--<=3||mat[y][j-1]==2){
dir=3;
mat[y][j-1]=0;
}
else if(y++>=16||mat[y+1][j]==2){
y++;
dir=1;
}
break;
}
if(mat[y][j]==2){mat[y][j]=0;}
gotoxy(j+20,y+5);
printf("o");
delay(100);
}while(!kbhit());
}
si encuentran algun fallo por favor diganme cual es o modifiquenlo....
gracias desde ya....