• Sábado 14 de Diciembre de 2024, 15:50

Autor Tema:  Ayudaaaaa!!!!  (Leído 6863 veces)

martin_lomas

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Ayudaaaaa!!!!
« en: Miércoles 29 de Noviembre de 2006, 23:30 »
0
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
  • ==3){

gotoxy(x+20,i+5);
printf("*");
}
if(mat
  • ==2){

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....

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #1 en: Miércoles 29 de Noviembre de 2006, 23:39 »
0
Mira bien la linea 26 y 45  :whistling:
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

martin_lomas

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #2 en: Miércoles 29 de Noviembre de 2006, 23:58 »
0
Cita de: "su -"
Mira bien la linea 26 y 45  :whistling:
y que le podria cambiar a esas lineas osea conoses alguna funcion del c que no me joda el movimiento de la pelotita mientras pulso una tecla, porque cuando presiono una tecla en ese la pelotita se queda quieta mas bien se mueve solo cuando tengo apretada alguna tecla.?????? :huh:

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #3 en: Jueves 30 de Noviembre de 2006, 00:40 »
0
No, realmente no se, solo te digo lo que vi, por ejemplo en la linea 26:
Código: Text
  1. gotoxy(k,);
  2.  
Falta un parametro a gotoxy, es lo que creo...
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #4 en: Jueves 30 de Noviembre de 2006, 01:16 »
0
Cita de: "su -"
No, realmente no se, solo te digo lo que vi, por ejemplo en la linea 26:
Código: Text
  1. gotoxy(k,);
  2.  
Falta un parametro a gotoxy, es lo que creo...
De esa manera si se puede su-, lo que eso quiere decir es utilice la columna k, y la fila dejela en la actual.

Por favor que me corrijan si estoy mal, pero así lo ví yo en mí epoca.

PD. No uses Borland, aquí aprendí que eso daña la ropa.
El pasado son solo recuerdos, el futuro son solo sueños

martin_lomas

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #5 en: Jueves 30 de Noviembre de 2006, 03:46 »
0
Cita de: "RadicalEd"
Cita de: "su -"
No, realmente no se, solo te digo lo que vi, por ejemplo en la linea 26:
Código: Text
  1. gotoxy(k,);
  2.  
Falta un parametro a gotoxy, es lo que creo...
De esa manera si se puede su-, lo que eso quiere decir es utilice la columna k, y la fila dejela en la actual.

Por favor que me corrijan si estoy mal, pero así lo ví yo en mí epoca.

PD. No uses Borland, aquí aprendí que eso daña la ropa.
si eso ya lo habia arreglado pero aun asi no logro hacer para poder hacer mover el curdor y que se mueva la pelotita a la vez, osea ese es el problema. cuando puso una tecla se deja de mover la pelotita, pero lo que quiero es que al pulsar als teclas no afecte para nada el movimiento de la pelota.

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Ayudaaaaa!!!!
« Respuesta #6 en: Jueves 30 de Noviembre de 2006, 14:18 »
0
La clave esta en capturar el teclado sin interrumpir la ejecucion cuando no hay tecla presionada... algo asi como primero preguntar si se toco una tecla y, si es asi, capturarla y actuar en consecuencia.
Es justamente lo lindo de programar juegos...que tenes que pensar que todo va a correr siempre a la vez.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ayudaaaaa!!!!
« Respuesta #7 en: Jueves 30 de Noviembre de 2006, 18:14 »
0
Este Arcanoid con "C" lo programé hace unos cuantos años. Funciona bien pero como es mi mala costumbre le faltan algunas cositas como ser, colocar las pastillas de bonus de los niveles 2,3 y 4, agregar niveles y algunos detalles en cuanto a los gráficos pero igual. Para lo que tu lo necesitas puedes usarlo sin problemas. Fijate en el bucle principal de la función main.

A los demás les digo........YA SE QUE ESTA TODO ENREDADO Y MAL PROGRAMADO  :P
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ayudaaaaa!!!!
« Respuesta #8 en: Viernes 1 de Diciembre de 2006, 13:00 »
0
Cita de: "RadicalEd"
PD. No uses Borland, aquí aprendí que eso daña la ropa.
Por que?
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #9 en: Viernes 1 de Diciembre de 2006, 14:40 »
0
Cuando trate de escribir mi primer programe en VC++ y trate de usar gotoxy() o clrscr(), arranque 2 botones de la camisa pensando que lo escribia mal; además aquí en el foro fue que aprendí que eso pasaba por que Borland no es Standard.
El pasado son solo recuerdos, el futuro son solo sueños

pabloreda

  • Miembro MUY activo
  • ***
  • Mensajes: 125
    • Ver Perfil
    • http://www.reda4.org
Re: Ayudaaaaa!!!!
« Respuesta #10 en: Viernes 1 de Diciembre de 2006, 15:25 »
0
Lo bueno de los estandares es que hay muchos para elegir

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #11 en: Viernes 1 de Diciembre de 2006, 16:37 »
0
entonces tengo una duda, existe alguna función en el ansi c que emule el gotoxy, kbhit, getch, etc?, he leido de algunas librerias para linux, pero me interesaria saber, sobre algunas que sean del standart

Disculpen mi ignorancia :huh:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #12 en: Viernes 1 de Diciembre de 2006, 16:44 »
0
Cita de: "ArKaNtOs"
entonces tengo una duda, existe alguna función en el ansi c que emule el gotoxy, kbhit, getch, etc?, he leido de algunas librerias para linux, pero me interesaria saber, sobre algunas que sean del standart

Disculpen mi ignorancia :huh:
No; si buscas en el foro vas a encontrar muchos mensajes donde se habla de este tema.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #13 en: Viernes 1 de Diciembre de 2006, 16:57 »
0
si lo se, lo digo porque ya busque y encontré esto:

http://foros.solocodigo.com/index.php?showtopic=25007
la solución que da su-

http://foros.solocodigo.com/index.php?showtopic=25012
en este caso también hablan de ncurses

pero yo me refiero a las librerías estándar
http://c.conclase.net/librerias/

en todo caso una duda mas especifica seria ncurses es utilizable para windows?, ncurses esta bajo el estándar? :unsure:

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #14 en: Viernes 1 de Diciembre de 2006, 18:00 »
0
Cita de: "ArKaNtOs"
ncurses esta bajo el estándar? :unsure:
Mi respuesta anterior fue no y la mantengo, no hay ninguna libreria standard.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayudaaaaa!!!!
« Respuesta #15 en: Viernes 1 de Diciembre de 2006, 18:19 »
0
Si utilizas la extención de C++ para generar código CLR ( C++ .net) puedes utilizar el namespace

System.Console

donde encontraras una enorme cantidad de funciones utilizables desde consola, al ser código de CLR es estándar para todos los sistemas operativos donde se ejecute y que posean un CLR instalado.

Por otra parte analizando el código de tu programa se ve que no tienes mucho conocimiento en cuanto a la estructura mínima que debe tener un videojuego, aca te la dejo:

Código: Text
  1. int main()
  2. {
  3.     while(! gameover)
  4.     {
  5.          //aca se captura la informacion de teclado, mouse, joystick etc
  6.          ProcesarDispositivosEntrada();
  7.          //De acuerdo a la entrada se lleva a cabo un proceso, mover, cambir de estado etc
  8.          ProcesarAccionesATomar();
  9.          //Y de acuerdo a las acciones que se eralizaron se actualiza el dibujo en pantalla
  10.          Dibujar();      
  11.     }
  12. }
  13.  

Si quieres comenzar con un juego mas 'entretenido' te recomiendo utilizar allegro con eso dejas ya de hacer juegos por consola.

http://alleg.sourceforge.net/index.es.html
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

ArKaNtOs

  • Miembro de PLATA
  • *****
  • Mensajes: 1253
  • Nacionalidad: mx
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #16 en: Viernes 1 de Diciembre de 2006, 19:39 »
0
Cita de: "Eternal Idol"
Cita de: "ArKaNtOs"
ncurses esta bajo el estándar? :unsure:
Mi respuesta anterior fue no y la mantengo, no hay ninguna libreria standard.
a ya :P , pensé que me decías no por otra cosa jejejeje :P Thanx por resolver la duda

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ayudaaaaa!!!!
« Respuesta #17 en: Viernes 1 de Diciembre de 2006, 23:13 »
0
Cita de: "RadicalEd"
Cuando trate de escribir mi primer programe en VC++ y trate de usar gotoxy() o clrscr(), arranque 2 botones de la camisa pensando que lo escribia mal; además aquí en el foro fue que aprendí que eso pasaba por que Borland no es Standard.
Perdón pero recién ahora caigo. ¿Solamente los que utilicen borland podrán compilar el código escrito en este?
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayudaaaaa!!!!
« Respuesta #18 en: Viernes 1 de Diciembre de 2006, 23:57 »
0
no, si algún otro compilador soporta dichas funciones de seguro también podrá.

o bien cada cual puede hacer las funciones y crear su propia libreria e implementar  un condicionamiento en el pre procesador del compilador que diga algo asi como ( es un ejemplo):

Código: Text
  1.  
  2. #ifndef BORLAND
  3.  #include&#34;miLibreria.h&#34;
  4. #else
  5.  #include&#60;conio.h&#62;    
  6. #endif
  7.  

 :smartass:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Ayudaaaaa!!!!
« Respuesta #19 en: Sábado 2 de Diciembre de 2006, 00:29 »
0
Es ifdef en este caso ... o la logica al revez como lo dejaste.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ayudaaaaa!!!!
« Respuesta #20 en: Sábado 2 de Diciembre de 2006, 01:59 »
0
corregido  :smartass:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Ayudaaaaa!!!!
« Respuesta #21 en: Sábado 2 de Diciembre de 2006, 06:34 »
0
Gracias. Ahora entiendo.
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.