Programación General > C/C++

 Re: movimiento de circulitos

(1/2) > >>

mane_ssa:
hola: necesito ayuddaaaaaaa!! :think:
ehh tratadp de hacer un programa donde salgan cuatro pelotitas de las eskinas de la pantalla y k en un punto det. choken y se acabe es programa ,,,, mi pregunta es ¿como le doy movimientoa las pelotitas??:ayuda: porfavor si alguien sabe!!!
grax....

JuanK:
me imagino que estas hablando de modo texto.. cierto?

alternativa rapida,

lo que debes hacer es escribir el caracter en una nuev posicion...
--problema queda la posicion anterior todavia en pantalla

--solucion..
coo es modo texto es rapido borrar toda la pantalla:

ejemplo:

 
--- Código: Text --- int ix, iy;gotoxy(0,0);printf("*"); for(ix=0;ix<20;ix++){  for(iy=0;iy<20;iy++)  {     clrscr();     gotoxy(ix,iy);printf("*");     delay(500);  }}  
otra forma, mas eficiente es borrar solo la posicion anterior


 
--- Código: Text --- int ix, iy;gotoxy(0,0);printf("*"); for(ix=0;ix<20;ix++){  for(iy=0;iy<20;iy++)  {     gotoxy(ix,iy);printf("*");     delay(500);     gotoxy(ix,iy);printf(" ");  }}  
Para saber cuando se estrellan, tienes que analizar las coordenadas, cada vez que se mueven.


Espero que te haya sido de ayuda, los mismos principios se aplican al modo grafico, pero las funciones serian otras.


Juank

mane_ssa:
hola:
mira e hecho algo para hacer los circulos y tengo esto

#include <graphics.h>
#include <conio.h>
#include <iostream.h>

int main (void)     //dibujar circulos
{
  int controlador, modo;
  controlador = DETECT;
  modo = 0;
  initgraph(& controlador, & modo, "c:Tcbin");
  setbkcolor ( BLACK ); //color de fondo

  setcolor (RED);               // circulo rojo
  circle (10, 10, 10);
  setfillstyle(LINE_FILL,RED);
  floodfill(10,10,RED);

  setcolor (GREEN);
  circle ( 10, 468, 10);
  setfillstyle(HATCH_FILL,GREEN);
  floodfill(10,468,GREEN);

  setcolor (YELLOW);
  circle (629, 10, 10);
  setfillstyle(XHATCH_FILL,YELLOW);
  floodfill(629,10,YELLOW);

  setcolor (BLUE);
  circle (629, 469, 10);
  setfillstyle(WIDE_DOT_FILL,BLUE);
  floodfill(629,469,BLUE);

  getch ();
  restorecrtmode();
  return 0;
}



mi pregunta como agrego alguna funcion para darle el movimiento???

JuanK:
Eso exactamente es lo que te explique arriba...

revisa...borrar, dibujar...borrar...dibjar y asi sucesivamente..de esta manera es como se hace cualquier animacion, obviamente en tu caso y para no complicarte la vida, deberas borrar todo el fondo y volver a dibujar en la nueva posicion... todo esto dentro de un ciclo...
es necesario borrar puesto que si dibujas el obnjeto en una nueva posicion, de todos modos se vea la anterior...

lee bien los consejo que te di y aplicalos, no esta dificil de entender, si tienes dudas, me cuentas.


Juank
Juank

karlcox:
si fuera de modo grafico, pue yo lo haria de esta forma, hago un circulo del color que quiera, y otro del color del fondo(como si fuera una mascara ), y haria un for que incrementa las coordenadas en donde me pinte primero el circulo que yo quiero mover, despues un loop para el espacio de tiempo, y despues coloco el circulo mascara, con la mismas coordenadas:

mover un circulo en el eje x, con valor en el  eje y=30
for (i=5;i<= 50;i++){
     circle( ejex(que es valor i), ejey(qu e vale 30), radio, color)

    loop(500); //el tiempo que queremos
    //sé pinta el circulo mascara
circle( ejex(que es valor i), ejey(qu e vale 30), radio, color(el del fondo))
loop(500)/intervalo de tiempo
}

Y pues supongo que para estrellar cada circulo, seria como bueno, que la diferencia d emovimiento entre los dos circulos sea como igual ose me refiero a que si, colo un circulo en la esquina de la izquierda y el otro en la esquina d ela derecha, tonces, al que la izquierda le suma un vlor en coordenada en x, lo que le va restar al de la derecha, para despues preguntar, si las coordenadas son iguales.

Espero le sea de gran ayuda, por que si no pues mmmmm......:oops:

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa