Ensimmäisen Lua-ohjelman tekeminen

PSPWiki

Kirjoittanut Tdubel.

Ensimmäisen PSP-ohjelman tekeminen Lua-kielellä. Esimerkkiohjelma on klassinen "Hello World" -ohjelma, joka tulostaa näyttöön tekstin "Terve maailma!".

Sisällysluettelo

Yleistä

Ohjeessa käsitellään

Ohjeessa käsitellään: uuden värin tekeminen (Color.new), tekstin tulostaminen näytölle (screen:print), puskurin vaihtaminen (screen.flip), odotus (screen.waitVblankStart) ja lopetus (end).

Lua-ohjelmien käyttäminen PSP:ssä

Katso tietoja Lua-sivulta kohdasta Lua Player.

Hello World -ohjelma

skripti.lua-tiedoston koodi

Kopioi seuraavat rivit tekstieditoriin ja tallenna tiedosto skripti.lua-nimiseksi.

green = Color.new(0, 255, 0)

screen:print(200, 100, "Terve maailma!", green)
screen.flip()

while true do
screen.waitVblankStart()
end

Siirrä skripti.lua-tiedosto PSP:hen Lua Playerin hakemistoon. Valmis ohjelma näyttää seuraavalta:

helloworld.png

Selitykset

Seuraavaksi käydään ohjelma rivi kerrallaan läpi.

vari = Color.new()

green = Color.new(0, 255, 0)

Kohta "green = Color.new" tarkoittaa käytännössä, että tehdään "green" uudeksi väriksi. Nimen "green" tilalle voi kirjoittaa vaikka "red", "yellow", "blue" tai "vihrea". Tässä se on kuitenkin "green".

Kohta "(0, 255, 0)" määrittää varsinaisen värin. Se määritetään RGB-muodossa, jossa jokainen värisävy ilmoitetaan väliltä 0-255. Ensimmäinen numero on punainen (R), toinen vihreä (G) ja kolmas sininen (B).

screen:print()

screen:print(200, 100, "Terve maailma!", green)

Tekstin tulostaminen näytölle tehdään "screen:print" -käskyllä. Kohta "200, 100" määrittää tekstin sijainnin. Tässä "200, 100" siis tarkoittaa, että teksti sijaitsee paikassa 200 kuvapistettä vasemmalta ja 100 kuvapistettä ylhäältä. PSP:n näytön resoluutio on 480 x 272 pikseliä.

"Terve maailma!" on näytölle tulostettava teksti. Kohta "green" asettaa tekstin värin; se määritettiin aiemmin vihreäksi (0, 255, 0).

screen.flip()

screen.flip()

Piirtäminen tapahtuu näkymättömään puskuriin ja se saadaan näkyviin tällä rivillä. Käytä hakusanoja "double-buffering" ja "kaksoispuskurointi".

screen.waitVblankStart()

while true do
screen.waitVblankStart()
end

Lopuksi lisätään nämä rivit, jotta tulokset ehditään nähdä näytöllä. Kyseinen koodi on käytännössä loputon silmukka, joka joka suorituskerrallaan antaa näytön odottaa.

Henkilökohtaiset työkalut