Locomotive Basic: Mover un personaje esquivando obstáculos
Ejemplo de cómo mover un personaje esquivando obstáculos en consola, usando Locomotive Basic
Lenguaje: Locomotive Basic
Categoría: Minijuegos
' Fuente procedente de ErrorDeSintaxis.es
' Ejemplo de cómo mover un personaje esquivando
' obstáculos en consola, usando Locomotive
' Basic
' Lenguaje: Locomotive Basic
' Nivel: Básico
' Disponible desde 07/08/2011
' Aportado por Nacho
' Autor original: Nacho Cabanes
' Web original: http://www.nachocabanes.com/amstrad/curso/cpc_e02_01.php
10 ' Ejemplo del tema 2 20 ' Preparo los caracteres 30 borde$=CHR$(206) 40 obstac$=CHR$(207) 50 izqda$=CHR$(242) 60 dcha$=CHR$(243) 70 arriba$=CHR$(240) 80 abajo$=CHR$(241) 90 perso1$=CHR$(248) 100 perso2$=CHR$(250) 110 explo$=CHR$(238) 120 ' Preparo los colores 130 INK 0, 0: ' Color 0: Negro 140 INK 1, 2: ' Color 1: Azul claro 150 INK 2, 11: ' Color 2: Azul cielo 160 INK 3, 20: ' Color 3: Cyan claro 170 PAPER 0: PEN 1: 'Azul cl sobre negro 180 BORDER 0 190 MODE 1 200 ' Dibujo linea superior e inf. 210 FOR i = 1 TO 40 220 LOCATE i,1: PRINT borde$; 230 LOCATE i,24: PRINT borde$; 240 NEXT i 250 ' Dibujo linea dcha e izqda 260 FOR i = 2 TO 23 270 LOCATE 1,i: PRINT borde$; 280 LOCATE 40,i: PRINT borde$; 290 NEXT i 300 ' Pongo unos cuantos obstaculos 310 PEN 2 320 LOCATE 10,10: PRINT obstac$ 330 LOCATE 30,18: PRINT obstac$ 340 PEN 3: PAPER 1 350 LOCATE 2,6: PRINT obstac$ 360 LOCATE 10,8: PRINT obstac$ 370 PEN 3: PAPER 2 380 LOCATE 15,12: PRINT obstac$ 390 LOCATE 22,20: PRINT obstac$ 400 PEN 3: PAPER 0 410 ' Parte repetitiva: personaje 420 ' Primero: valores iniciales 430 x = 10: y= 12 440 persona$=perso1$ 450 LOCATE x,y: PRINT persona$ 460 ' Ahora espero tecla 470 tecla$ = INKEY$: IF tecla$="" THEN GOTO 470 480 ' Borro personaje 490 LOCATE x,y: PRINT " " 500 ' Calculo nueva posicion 510 IF tecla$=izqda$ THEN x = x - 1 520 IF tecla$=dcha$ THEN x = x + 1 530 IF tecla$=arriba$ THEN y = y - 1 540 IF tecla$=abajo$ THEN y = y + 1 550 ' Compruebo si choca 560 LOCATE x,y 570 IF (COPYCHR$(#0) = obstac$) OR (COPYCHR$(#0) = borde$) THEN GOTO 630 580 ' Si no choca, alterno personaje 590 IF persona$=perso1$ THEN persona$=perso2$ ELSE persona$=perso1$ 600 ' Y repito 610 GOTO 450 620 ' Si ha chocado, se acabo 630 PRINT explo$ 640 END