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.