' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' R¢TULOS DECLARE SUB grande12 () DECLARE SUB tumbado () DECLARE SUB ampliado () DECLARE SUB multicolor12 () DECLARE SUB relieve () DECLARE SUB movil () DECLARE SUB cubicolor () DECLARE FUNCTION menu! (comando$, v!, h!, l!, f!, lr!, fr!, pp!, s!, t!) DECLARE SUB cubo (X!, Y!, lado!, C!, CA!, cs!, cl!, p!) DECLARE SUB letras (X!, Y!, TEXT$, escl!, clrs!, ang!, ancho!, relleno!) DIM SHARED mat(0 TO 2200) DIM SHARED scl(0 TO 4000) DIM SHARED conjuntomenu$(1 TO 10) DO SCREEN 0 CLS WIDTH 80, 25 PALETTE 4, 36 COLOR 14: LOCATE 2, 8: PRINT "* * * D E M O S T R A C I O N E S C O N L E T R A S * * *" LOCATE 25, 1: COLOR 4, 7: PRINT SPACE$(80); LOCATE 25, 61: PRINT "HECHO EN RONDA"; LOCATE 25, 3: COLOR 0: PRINT "Elegir opci¢n del men£..."; LOCATE 20, 8: COLOR 13, 0: PRINT "## PARA USAR LAS LETRAS COPIAR LA SUB 'LETRAS' DE ESTE PROGRAMA ##" me = menu("Letras multicolores en SCREEN 12-Logotipo movil para SCREEN 13-Letras en relieve-Logotipo de cubos 3D para SCREEN 13-Logotipo 3D grande para SCREEN 12-Logotipo 3D tumbado para SCREEN 12-Logotipo ampliado para SCREEN 13-SALIR", 8, 23, 15, 1, 14, 4, 0, 0, 0) SELECT CASE me CASE 1: multicolor12 CASE 2: movil CASE 3: relieve CASE 4: cubicolor CASE 5: grande12 CASE 6: tumbado CASE 7: ampliado END SELECT IF me <> 8 THEN DO: LOOP WHILE INKEY$ = "" LOOP UNTIL me = 8 COLOR 2, 7 COLOR 0 ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' LOGO HECHO EN RONDA CIUDAD SO¥ADA SUB ampliado SCREEN 13 h = 138 v = 17 cf = POINT(h, v) LINE (h, v)-STEP(55, 33), 255, B LINE (h + 2, v + 2)-STEP(51, 8), 255, BF LINE (h + 2, v + 25)-STEP(51, 6), 255, BF letras h, v + 8, "HECHO", 6, cf, 0, 1, 1 letras h + 35, v + 8, "EN", 6, cf, 0, 1, 1 letras h - 4, v + 21, "RON A", 10, 255, 0, 2, 1 letras h, v + 29, "CIUDAD SO¥ADA", 4, cf, 0, 1, 1 PSET (h + 37, v + 23), 255: DRAW "u11r4f2d7g2l3u10r3fd7gl3" C = 32 FOR HH = h TO h + 55 C = C + .4 FOR vv = v TO v + 33 IF POINT(HH, vv) = 255 THEN PSET (HH, vv), C NEXT NEXT END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' LOGO HECHO EN RONDA CUBOS DE COLORES SUB cubicolor SCREEN 13 h = 0 v = 0 cf = POINT(h, v) LINE (h, v)-STEP(45, 21), 255, B LINE (h + 2, v + 2)-STEP(41, 6), 255, BF letras h + 4, v + 6, "HECHO EN", 4, cf, 0, 1, 1 letras h - 3, v + 17, "RONDA", 8, 255, 0, 2, 1 C = 32 FOR HH = h TO h + 45 C = C + .4 FOR vv = v + 21 TO v STEP -1 IF POINT(HH, vv) = 255 THEN cubo ((HH * 6) + 16), ((vv * 6) + 40), 4, 320, C, C + 72, C + 144, 0 NEXT NEXT END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' SUB cubo (X, Y, lado, C, CA, cs, cl, p) SHARED cubos D = INT(RND * p) + 1 IF D = p THEN : EXIT SUB cab = INT((lado * 2) / 3) IF CA < 256 THEN : LINE (X, Y)-(X + lado, Y - lado), CA, BF FOR s = 0 TO cab IF cs < 256 THEN : LINE (X + s, Y - s - lado)-STEP(lado, 0), cs, B IF cl < 256 THEN : LINE (X + s + lado, Y - s - lado)-STEP(0, lado), cl, B NEXT cubos = cubos + 1 IF C > 255 THEN : EXIT SUB PSET (X, Y), C LINE STEP(0, 0)-STEP(lado, 0 - lado), C, B LINE STEP(0, 0)-STEP(cab, 0 - (cab)), C LINE STEP(0, 0)-STEP(0, lado), C LINE STEP(0, 0)-STEP(0 - cab, cab), C LINE STEP(0 - lado, 0 - lado)-STEP(cab, 0 - (cab)), C LINE STEP(0, 0)-STEP(lado, 0), C END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' SUB grande12 SCREEN 12 PALETTE 3, 0 c1 = 15 c2 = 7 c3 = 8 c4 = 256 h = 0 v = 0 cf = POINT(h, v) LINE (h, v)-STEP(45, 21), 3, B LINE (h + 2, v + 2)-STEP(41, 6), 3, BF letras h + 4, v + 6, "HECHO EN", 4, cf, 0, 1, 1 letras h - 3, v + 17, "RONDA", 8, 3, 0, 2, 1 C = 32 FOR HH = h TO h + 45 FOR vv = v + 21 TO v STEP -1 IF POINT(HH, vv) = 3 THEN cubo ((HH * 13) + 15), ((vv * 13) + 110), 13, c4, c1, c2, c3, 0 NEXT NEXT END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' TIPOGRAFIA VECTORIAL ESCALABLE HECHO EN RONDA ' ' ' SUB letras (X, Y, TEXT$, escl, clrs, ang, ancho, relleno) IF relleno < 1 THEN : relleno = 1 FOR h = 1 TO ancho STEP relleno FOR v = 1 TO ancho STEP relleno ccc = POINT(X + h, Y + v) PSET (X + h, Y + v), ccc C$ = STR$(clrs): e$ = STR$(escl): a$ = STR$(ang) FOR a = 1 TO LEN(TEXT$) IF clrs > 255 THEN C$ = STR$(INT(RND * 15) + 1) DRAW "S" + e$ + "C" + C$ + "ta" + a$ SELECT CASE UCASE$(MID$(TEXT$, a, 1)) CASE "A": DRAW "br2 u2nnr2u2r2d4" CASE "B": DRAW "br2 u4r2dgnlfdnl2" CASE "C": DRAW "br2 bu4 nr2d4r2" CASE "D": DRAW "br2 u4rfd2glbr2" CASE "E": DRAW "br2 bu4 nr2d2nr2d2r2" CASE "F": DRAW "br2 bu4 nr2d2nr2d2br2" CASE "G": DRAW "br2 bu4 nr2d4r2unld" CASE "H": DRAW "br2 u2nu2r2nu2d2" CASE "I": DRAW "br2 nu4" CASE "J": DRAW "br2 nur2nu4" CASE "K": DRAW "br2 u2 nu2ne2f2" CASE "L": DRAW "br2 nu4r2" CASE "M": DRAW "br2 u4f2e2d4" CASE "N": DRAW "br2 u4f4nu4" CASE "¤": DRAW "br2 u3f3u3bunl3bd4" CASE "¥": DRAW "br2 u3f3u3bunl3bd4" CASE "O": DRAW "br2 bu4 nr2d4r2nu4" CASE "P": DRAW "br2 u2nnr2u2r2d2bd2" CASE "Q": DRAW "br2 bu4 nr2d4renu3blf" CASE "R": DRAW "br2 u4r2d2l2f2" CASE "S": DRAW "br2 r2u2l2u2r2BD4" CASE "T": DRAW "br2 BU4r2nd4r2bd4" CASE "U": DRAW "br2 nu4r2nu4" CASE "V": DRAW "br2 bunu3fenu3bd" CASE "W": DRAW "br2 bunu3fenu2fenu3bd" CASE "X": DRAW "br2 br2bu2ne2nf2ng2nh2br2bd2" CASE "Y": DRAW "br2 br2u2nh2ne2bd2br2" CASE "Z": DRAW "br2 bu4 r4g2nlnrg2r4" CASE "1": DRAW "br2 bu3ed4nlr" CASE "2": DRAW "br2 bu4 r2d2l2d2r2" CASE "3": DRAW "br2 bu4 r2d2nl2d2nl2" '"br2 bu4 r2fgnlfgnl2bl" CASE "4": DRAW "br2 bu2 nu2r2nu2d2" CASE "5": DRAW "br2 bu4 nr2d2r2d2nl2" CASE "6": DRAW "br2 bu4 nr2d2nr2d2r2nu2" CASE "7": DRAW "br2 bu4 r2d4" CASE "8": DRAW "br2 u4r2d2nl2d2nl2" CASE "9": DRAW "br2 bu2 nr2u2r2d4" CASE "0": DRAW "br2 bu4 nr2d4r2nu4" CASE "*": DRAW "br2 br2 u2nl2nu2nr2nengnhfbf " CASE "+": DRAW "br2 br2 u2nl2nu2r2bd2" CASE "-": DRAW "br2 bu2r2bd2" CASE ".": DRAW "br2": PSET STEP(0, 0), clrs CASE ",": DRAW "br2 ng" CASE ";": DRAW "br2 ngbunuBD" CASE ":": DRAW "br2": PSET STEP(0, 0), clrs: PSET STEP(0, -2), clrs: DRAW "bd2" CASE "=": DRAW "br2 bunr2bu2r2bd3" CASE "µ": DRAW "br2 unr2u2rbunebdrd3" CASE "": DRAW "br2 bu3 rbunebdrl2d2nr2dr2" CASE "Ö": DRAW "br2 u3bunebd4" CASE "à": DRAW "br2 u3rbunebdrd3nl2" CASE "é": DRAW "br2 u3brbunebdbrd3nl2" CASE " ": DRAW "br2 unr2u2rbunebdrd3" CASE "‚": DRAW "br2 bu3 rbunebdrl2d2nr2dr2" CASE "¡": DRAW "br2 u3bunebd4" CASE "¢": DRAW "br2 u3rbunebdrd3nl2" CASE "£": DRAW "br2 u3brbunebdbrd3nl2" CASE ELSE: DRAW "S" + e$ + "ta" + a$ + "BR4" END SELECT NEXT: NEXT: NEXT DRAW "s4ta0" END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' MEN£ DESPLAZABLE HECHO EN RONDA ' ' camando$....Conjunto de ordenes del men£ separadas por guiones ' v,h.........Posici¢n superior izquierda ' l...........Color de letra ' f...........Color de fondo ' lr..........Color de letra resaltada ' fr..........Color de fondo resaltado ' p...........Color del fondo de la pantalla detr s del men£ ' s...........Color de la sombra del men£ en relieve ' t...........Tipo se men£ 0=Simple 1=Sombra 2=Borde y sombra ' ' FUNCTION menu (comando$, v, h, l, f, lr, fr, pp, s, t) comando$ = comando$ + "-" p = 0 Linea$ = "" FOR n = 1 TO LEN(comando$) letra$ = MID$(comando$, n, 1) SELECT CASE letra$ CASE "-": p = p + 1: conjuntomenu$(p) = Linea$: Linea$ = "" CASE ELSE: Linea$ = Linea$ + letra$ END SELECT NEXT numlineas = p largo = 0 FOR n = 1 TO numlineas la = LEN(conjuntomenu$(n)) IF la > largo THEN : largo = la NEXT h2 = h + largo + 1 v2 = v + numlineas - 1 'SELECT CASE t 'CASE 1: caja v, h, v2, h2, pp, l, f, s 'CASE 2: caja v - 1, h - 1, v2 + 1, h2 + 1, pp, l, f, s 'END SELECT FOR n = 1 TO numlineas la = LEN(conjuntomenu$(n)) nuevalinea$ = " " + conjuntomenu$(n) + SPACE$((largo - la) + 1) conjuntomenu$(n) = nuevalinea$ NEXT COLOR l, f FOR vv = v + 1 TO v + numlineas - 1 LOCATE vv, h: PRINT conjuntomenu$(vv - v + 1); ' Numlineas; largo NEXT LOCATE v, h: COLOR lr, fr: PRINT conjuntomenu$(1); p = 1 DO DO kbd$ = INKEY$ LOOP WHILE kbd$ = "" COLOR l, f FOR vv = v TO v + numlineas - 1 LOCATE vv, h: PRINT conjuntomenu$(vv - v + 1); NEXT SELECT CASE kbd$ CASE CHR$(0) + "H": p = p - 1 CASE CHR$(0) + "P": p = p + 1 CASE CHR$(13): EXIT DO CASE ELSE: SOUND 400, 2 END SELECT IF p < 1 THEN : p = numlineas IF p > numlineas THEN : p = 1 LOCATE v + p - 1, h: COLOR lr, fr: PRINT conjuntomenu$(p); LOOP LOCATE v + p - 1, h: COLOR lr, fr: PRINT conjuntomenu$(p); menu = p END FUNCTION ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' LOGO HECHO EN RONDA ARCOIRIS MOVIL SUB movil SCREEN 13 h = 138 v = 17 cf = POINT(h, v) LINE (h, v)-STEP(45, 21), 255, B LINE (h + 2, v + 2)-STEP(41, 6), 255, BF letras h + 4, v + 6, "HECHO EN", 4, cf, 0, 1, 1 letras h - 3, v + 17, "RONDA", 8, 255, 0, 2, 1 C = 32 FOR HH = h TO h + 45 C = C + .4 FOR vv = v TO v + 21 IF POINT(HH, vv) = 255 THEN PSET (HH, vv), C NEXT NEXT FOR n = 1 TO 22 GET (138, n + 16)-STEP(45, 0), mat(((n - 1) * 50)) NEXT n = 40 lh = INT(RND * 15) + 5 DO n = n - 1 IF n < 1 THEN n = 30 + INT(RND * 20): lh = INT(RND * 15) + 5 IF n < 23 THEN PUT (lh, 0), mat((n - 1) * 50), PSET ELSE LINE (0, 0)-STEP(65, 0), 0 GET (0, 0)-(65, 198), scl PUT (0, 1), scl, PSET LOOP WHILE INKEY$ = "" END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' DEMO LETRAS MULTICOLOR SUB multicolor12 SCREEN 12 letras 20, 300, "ronda", 80, 256, 20, 20, 5 letras 80, 20, "abcdefghijklmn¤opqrstuvwxyz", 20, 256, -28, 4, 2 letras 10, 10, "1234567890", 40, 256, 270, 8, 1 letras 90, 400, "*+-.,;:= ", 70, 256, 0, 12, 2 letras 250, 40, " ‚¡¢£ µÖàé", 20, 256, 0, 3, 2 END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' COMBINACION LETRAS EN RELIEVE SUB relieve SCREEN 13 letras 68, 98, "HECHO EN RONDA", 12, 8, 0, 3, 1 letras 68, 98, "HECHO EN RONDA", 12, 15, 0, 2, 1 letras 69, 99, "HECHO EN RONDA", 12, 7, 0, 1, 1 END SUB ' ' © JM. :: Hecho en Ronda ' ' ' Procedente de... es.geocities.com/jm00092 ' '______________________________________________________________________ ' LOGO HECHO EN RONDA APARIENCIA TRIDIMENSIONAL TUMBADO SUB tumbado SCREEN 12 PALETTE 3, 0 c1 = 15 c2 = 7 c3 = 8 c4 = 256 h = 0 v = 0 cf = POINT(h, v) LINE (h, v)-STEP(45, 21), 3, B LINE (h + 2, v + 2)-STEP(41, 6), 3, BF letras h + 4, v + 6, "HECHO EN", 4, cf, 0, 1, 1 letras h - 3, v + 17, "RONDA", 8, 3, 0, 2, 1 C = 32 FOR HH = h TO h + 45 FOR vv = v TO v + 21 IF POINT(HH, vv) = 3 THEN cubo ((HH * 9) + 170 - (vv * 6)), ((vv * 6) + 110), 9, c4, c2, c1, c3, 0 NEXT NEXT END SUB