Kirjoittaja: Antti Laaksonen
Kirjoitettu: 18.02.2002 – 18.02.2002
Tagit: grafiikka, koodi näytille, vinkki
Tämän koodinpätkän avulla näytön reunoilla kiertää vastapäivään haluttu teksti. Animaatio ei tyhjennä näyttöä, joten keskelle voi kirjoitella mitä mieli tekee ilman jatkuvaa päivitystä.
DIM teksti AS STRING * 202 CLS teksti = "*** Parhaat QBasic-vinkit tarjoaa Ohjelmointiputka: https://www.ohjelmointiputka.net. Uusia vinkkejä päivittäin, kaikki selvällä suomen kielellä ***" x = 40: y = 1 DO GOSUB tulosta a = TIMER DO IF TIMER - a > 0 THEN EXIT DO LOOP IF y = 1 THEN IF x = 1 THEN y = y + 1 ELSE x = x - 1 END IF ELSEIF x = 1 THEN IF y = 23 THEN x = x + 1 ELSE y = y + 1 END IF ELSEIF y = 23 THEN IF x = 80 THEN y = y - 1 ELSE x = x + 1 END IF ELSE IF y = 1 THEN x = x - 1 ELSE y = y - 1 END IF END IF LOOP WHILE INKEY$ = "" END tulosta: px = x: py = y FOR i = 1 TO 202 LOCATE py, px: PRINT MID$(teksti, i, 1) IF py = 1 THEN IF px = 80 THEN py = py + 1 ELSE px = px + 1 END IF ELSEIF px = 80 THEN IF py = 23 THEN px = px - 1 ELSE py = py + 1 END IF ELSEIF py = 23 THEN IF px = 1 THEN py = py - 1 ELSE px = px - 1 END IF ELSE IF py = 1 THEN px = px + 1 ELSE py = py - 1 END IF END IF NEXT RETURN
Hieno.
Aikas kiva. :)
Itse suosisin taulukkoja näissä jutuissa.
SCREEN 13 DIM Text AS STRING Text = " ASCII-World ja hiphip hurraa" DIM TextX(LEN(Text)) AS INTEGER DIM TextY(LEN(Text)) AS INTEGER CLS : Color 14,0 For i = 1 TO LEN(Text) TextX(i) = 1 TextY(i) = i Next i DIM x,y AS INTEGER x = 1 : y = LEN(Text) DO For i = 1 TO LEN(Text) LOCATE TextX(i),TextY(i) : Print MID$(Text,i,1); Next i For i = 1 TO LEN(Text) - 1 TextX(i) = TextX(i + 1) TextY(i) = TextY(i + 1) Next i IF x = 1 AND y < 41 Then y = y + 1 IF y = 40 Then x = x + 1 IF x = 25 Then y = y - 1 IF y = 1 AND x > 1 Then x = x - 1 TextX(LEN(Text)) = x : TextY(LEN(Text)) = y Sleep 100 i$ = INKEY$ Loop until i$ <> ""
Ongelmana tässä on se ettei tekstin pituus saa olla isompi kuin 40 merkkiä joka tulee tuon SCREEN 13 leveydestä.
Minkä koodin tarttee, että se menee fullscreeniin.
Lurah, oot vissiin sekoottanu freebasiciin "Color 14,0" ei toimi screen 13stoista ja "Sleep 100" orottaa sata sekunttia.