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
RETURNHieno.
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.