SoloCodigo
Programación General => Pascal => Mensaje iniciado por: El Yunta en Jueves 29 de Mayo de 2008, 20:38
-
saludos camaradas.. ps soy estudiante de ing en informatica apenas voy por el segundo semestre, y me mandaron como proyecto final hacer un juego en pascal.
el juego trata de que en la pantalla caigan letras y el usuario debe ir tecleandolas para ir eliminandolas...conciste en tres niveles, cada nivel las letras caen mas rapidas... ps mi duda es como hago para controlar el tiempo en que caen las letas. :S aver alguien me ayuda de corazon... :)
ps soy nuevo en el foro y me han dicho que es bueno., por eso me e registrado :D
saludos y gracias de antemano.. ;) :hola:
saludos desde venezuela.
.
.
.
-
Hola!.
Bueno, lo primero es separar la complejidad de un programa. Aqui veo tres puntos claros:
1. Manejar una lista de letras, agregando nuevas letras a la lista a medida que salen nuevas letras, anulando las que teclee el usuario o su "tiempo de vida" termine. Podrias usar un arreglo de caracteres de tamaño fijo de 256 caracteres y usarla como lista "circular", con un contador de un byte que indique la posición donde se irán agregando nuevas letras, si ya existe una letra en la posición la podrías contar como punto en contra. Si el usuario teclea una letra podrías buscar la letra en la lista desde el punto donde se insertan nuevos caracteres hacia atras y reemplazar el valor de la letra por un valor nulo como 0.
2. Mostrar al usuario la lista en pantalla de forma que parezca una lluvia de letras. En otras palabras mostrar el estado actual de la lista.
3. Tener un bucle de control un while por ejemplo que se ejecuta constantemente hasta que ocurre un evento que termine el juego. Por instancia que el usuario teclee 'ESC' o que haya dejado pasar demasiadas letras. En este bucle agregarías nuevas letras y también mostrarías el estado actual de la lista.
-
gracias por tu ayuda hermano..
estoy pensando usar una matriz, aunque nose como hacer para que las letras vallan callendo mas rapido segun su nivel... (nivel 1 lento - nivel 2 intermedio - nivel 3 rapido)..
estube leyendo y buscando en google, y lei que ahi una libreria que se puede usar en una matriz para tardar o acelerar, pero no especificavan mucho... si sabes algo sobre eso...me gustaria saberlo.. :D
nuevamente gracias por tu ayuda, fue muy util.. ;)
-
simplemente un delay
delay (x) detiene la ejecución del programa el número de milisegundos indicado
puedes declarar tres constantes...
EsperaFacil = 1000; //un segundo
EsperaMedio = 500; //medio segundo
EsperaDificil = 250; //un cuarto de segundo
la función delay está en la librería crt
un saludo
-
gracias brother me ayudo mucho..
pero el delay tengo que ponerlo varias veces asi para que me tarde como 3 seg..
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
delay(11111);
porq si lo pongo una sola ves, todavia es muy rapido.. :S
otra cosa brother.... ahi algo que pueda usar para que un titulo parpadee. osea que aparesca y desparesca varias veces... ?
alguna libreria que haga eso?
graxias por sus ayuda.. B)
salu2
-
Para que parpadee parece que tienes que hacer algo como:
setcolor(blink);
outtextxy(200,350,'Mensaje que parpadea');
-
delay (1000);
delay (1000);
delay (1000);
detiene la ejecución del programa el mismo tiempo que
delay (3000);
-
Para que parpadee parece que tienes que hacer algo como:
setcolor(blink);
outtextxy(200,350,'Mensaje que parpadea');
gracias mano.. pero al ponerlo me manda error.. :s
de que libreria es esa funcion?
-
textcolor de la librería CRT
usa lo siguiente
textcolor (blink);
write ('Estoy parpadeando');
-
oooohh ok.. :) ahora si XD.. graxias danifg
otra duda q tengo..
que puedo usar para guardar automaticamente en una variable cualquier letra presionada desde el teclado..
pero que no sea el readkey, ya que no me sirve para el juego que estoy haciendo.
de antemano muchassss gracias :smartass: :hola:
-
¿Por qué no te sirve readkey para tu juego? Explica un poco qué quieres hacer y te digo
-
lo que pasa es que el juego trata de una lluvia de letras que van callendo en la pantalla y deben ser eliminadas(osea deben ser tecleadas) antes de que lleguen al piso..
entonces si uso un readkey me va a parar el proceso de las letras que van callendo hasta que presione una tecla y eso es lo que no quiero...
este es mi msn marco_jr17@hotmail.com
por si puedes ayudarme un poco... y muchas gracias por tu atension... B)
-
bueno ya encontre la forma.. XD
estaba algo complicado.. pero ya lo solucione.. jejejeje
bueno igual gracias por sus ayudas.. cualquier duda que se me presente ahi preguntare.. XD
saludos :)
-
Dinos como lo has hecho al final, será interesante para todos
-
bueno como necesitaba guardar en una variable las teclas que son presionadas hice esto..
program ejemplo;
uses crt;
var
letra:char;
begin
if keypressed then
letra:=readkey;
end.
asi la variable (letra) va ir tomando el valor de la tecla que sea presionada.
a la final si podia usar el readkey, XD solo que no lo estaba usando bien.
-
tengo un error... :S
al poner esto...
procedure ramdon_letras ( var letr:string[5]; var r:integer;);
me dice Error 89: ")" expected.... y se para justo donde puse (var letr:string[5];)
algo puse malo?? :(