un conejo en problemas
Publicado por Diego (2 intervenciones) el 22/11/2005 19:44:37
Hola gente. Mucho gusto. Mi nombre es Diego y doy mis primeros pasos
en esto de qbasic y de la programación en general. Intento hacer un
jueguito básico estilo "ping" pero hace días que estoy trancado. Me
gustaría saber cómo hacer para decirle a la máquina que realice dos
tareas simultáneamente: mover el conejo cuando se le pide y mover
una pelota en forma constante y siguiendo una recta pero que ésta sea
aleatoria, de manera tal que tenga como posibles destinos 3 puntos
en la parte superior de la pantalla y vuelva hacia la parte inferior.
Mi manejo de comandos es demasiado limitado y todavía no he entrado
en la lógica de todo esto. Se aceptan consejos, advertencias, risas,
alternativas y rezongos. Todo será bienvenido. Abajo adjunto el código
que llevo hecho hasta el momento, bastante desordenado y puede que
con cosas que serían más sencillas hechas de otra manera. En fin,
no pido SOLUCIONES sino AYUDA. Hasta el momento, nuestro personaje,
un conejo simpático, logra moverse en tres posiciones pero poco más,
y no saben lo aburrido que se me hace estar unos minutos moviendo
al bicho de aquí para allá sin más :(. Muchas gracias por todo y muy
bueno el sitio.
DECLARE SUB Pantalla ()
CLEAR , , 10000
SCREEN 7
CALL Pantalla
MifiIzq:
PCOPY 1, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiDer
ON KEY(13) GOSUB MifiCen
DO
LOOP UNTIL INKEY$ = CHR$(27)
GOTO 4
MifiCen:
PCOPY 2, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiIzq
ON KEY(13) GOSUB MifiDer
DO
LOOP UNTIL INKEY$ = CHR$(27)
GOTO 4
MifiDer:
PCOPY 3, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiCen
ON KEY(13) GOSUB MifiIzq
DO
LOOP UNTIL INKEY$ = CHR$(27)
4
END
SUB Pantalla
izq = 20
der = 50
sup = 175
inf = 190
boca$ = "c2 e3"
boca2$ = "c2 h3"
SCREEN 7, 0, 1, 0
LINE (izq!, sup!)-(der!, inf!), 15, BF
DRAW "bm34, 188" + boca$
DRAW "bm37, 188" + boca2$
CIRCLE (26!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
SCREEN 7, 0, 2, 0
LINE (izq + 100!, sup!)-(der + 100!, inf!), 15, BF
DRAW "bm134,188" + boca$
DRAW "bm137,188" + boca2$
CIRCLE (126!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
SCREEN 7, 0, 3, 0
LINE (izq + 200!, sup!)-(der + 200!, inf!), 15, BF
DRAW "bm234,188" + boca$
8 DRAW "bm237,188" + boca2$
CIRCLE (226!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
END SUB
en esto de qbasic y de la programación en general. Intento hacer un
jueguito básico estilo "ping" pero hace días que estoy trancado. Me
gustaría saber cómo hacer para decirle a la máquina que realice dos
tareas simultáneamente: mover el conejo cuando se le pide y mover
una pelota en forma constante y siguiendo una recta pero que ésta sea
aleatoria, de manera tal que tenga como posibles destinos 3 puntos
en la parte superior de la pantalla y vuelva hacia la parte inferior.
Mi manejo de comandos es demasiado limitado y todavía no he entrado
en la lógica de todo esto. Se aceptan consejos, advertencias, risas,
alternativas y rezongos. Todo será bienvenido. Abajo adjunto el código
que llevo hecho hasta el momento, bastante desordenado y puede que
con cosas que serían más sencillas hechas de otra manera. En fin,
no pido SOLUCIONES sino AYUDA. Hasta el momento, nuestro personaje,
un conejo simpático, logra moverse en tres posiciones pero poco más,
y no saben lo aburrido que se me hace estar unos minutos moviendo
al bicho de aquí para allá sin más :(. Muchas gracias por todo y muy
bueno el sitio.
DECLARE SUB Pantalla ()
CLEAR , , 10000
SCREEN 7
CALL Pantalla
MifiIzq:
PCOPY 1, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiDer
ON KEY(13) GOSUB MifiCen
DO
LOOP UNTIL INKEY$ = CHR$(27)
GOTO 4
MifiCen:
PCOPY 2, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiIzq
ON KEY(13) GOSUB MifiDer
DO
LOOP UNTIL INKEY$ = CHR$(27)
GOTO 4
MifiDer:
PCOPY 3, 0
KEY(12) ON
KEY(13) ON
ON KEY(12) GOSUB MifiCen
ON KEY(13) GOSUB MifiIzq
DO
LOOP UNTIL INKEY$ = CHR$(27)
4
END
SUB Pantalla
izq = 20
der = 50
sup = 175
inf = 190
boca$ = "c2 e3"
boca2$ = "c2 h3"
SCREEN 7, 0, 1, 0
LINE (izq!, sup!)-(der!, inf!), 15, BF
DRAW "bm34, 188" + boca$
DRAW "bm37, 188" + boca2$
CIRCLE (26!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
SCREEN 7, 0, 2, 0
LINE (izq + 100!, sup!)-(der + 100!, inf!), 15, BF
DRAW "bm134,188" + boca$
DRAW "bm137,188" + boca2$
CIRCLE (126!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
SCREEN 7, 0, 3, 0
LINE (izq + 200!, sup!)-(der + 200!, inf!), 15, BF
DRAW "bm234,188" + boca$
8 DRAW "bm237,188" + boca2$
CIRCLE (226!, 180!), 2!, 2
CIRCLE STEP(18!, 0!), 2!, 2
END SUB
Valora esta pregunta


0