servis-konzoli.cz
+ Odpovědět na toto téma
Stránka 1 z 5 123 ... PosledníPoslední
Zobrazují se odpovědi 1 až 15 z 65

Téma: LUA Tutoriály

  1. #1
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default LUA Tutoriály


    LUA - Skriptovací jazyk


    LUA je najjednoduchší štart pre začiatocníkov v oblasti tvorenia hier/aplikácii pre PSP. Štruktúra je jednoduchá a dá sa rýchlo naučiť, avšak neposkytuje toľko možností ako C, alebo iné jazyky. Na začiatok to bohate stačí.

    Wikipédia - LUA

    LUA Hello World



    1. Čo budeme potrebovať ?

    PC
    Notepad (tzv. Poznámkový blok)

    2. Tutoriál krok po kroku:

    1. Takže, otvoríme si notepad a začneme.
    2. Najprv vložíme do kódu svoje údaje, asi takto:

    Code:
    --Hello World
    --by myschoo
    2 pomlčky za sebou nám zaručia, že táto časť kódu nebude prečítaná.

    3. Teraz si definujeme farby:

    Code:
    white = Color.new(255,255,255)
    Pod pojmom "white" sme si definovali novú farbu s údajmi 255,255,255. Odkial tieto údaje zobereme? Použijeme na to Paint (tzv. Malovanie)
    Otvorte si paint, hore máte "Colors" alebo "Farby" --> Kliknite na to a uvidíte niečo ako "Zmena farieb" alebo "Edit Colors" --> kliknite na to a ďalej na "Definovanie vlastných farieb". Mali by ste vidieť malú tabulku farieb:


    Úplne vpravo dole sú tri kolonky: Red, Green, Blue. To sú tie tri čisla ktoré potrebujete.

    4. Ok, farbý máme definované. Teraz začneme samotným dianím na obrazovke, takže teraz napíšte:

    Code:
    while true do
    Spojenie "while true do" začína hlavný "loop" (otočku/obrátku). Za 1 sek. prebehne 60 takýchto otočiek.

    5. Teraz si zmažeme obrazovku aby sme mali čierne pozadie, takže:

    Code:
    screen:clear()
    Toto snaď každý chápe čo znamená. Pre tých, ktorý to nechápu, je to príkaz na to, aby som mal obrazovku čisto čiernu. Do "()" môžete dať aj biela, ak chcete pozadie biele, alebo modrá ak modré. Tú farbu si samozrejme musíte predtím definovať (krok č. 3).

    6. Teraz si určíme čo nám vypíše na obrazovku, v tomto prípade:

    "Hello World!"

    Aby sme tam tento text dostali, napište:

    Code:
    screen:print(100,100,"Hello World! for tutorial",white)
    screen:print(100,255,"Stlac X pre vypnutie",white)
    Ešte si tam pridáme ďalší text, ktorý oznamuje ako vypnúť aplikáciu.

    Popis kódu:

    screen:print - funkcia "vytlačenia" textu na obrazovku
    (100,100,"Hello World! for tutorial",white) - čísla 100 a 100 popisujú kde bude text začínať. Prvé číslo udáva pozíciu na X-ovej, druhé na Y-ovej osi. Po tomto nasleduje text, ktorý musí byť v "" a napokon definovaná farba.

    7. Takže, je čas definovať si ovládanie. Na to použijeme príkaz:

    Code:
    pad = Controls.read()
    Všimnite si, že kód je podobný ako keď sme si definovali farby. Namiesto slova "pad" môžete použiť trebárs aj "pecenakacica", to už nechám na Vás.

    Teraz si určíme samotnú funkcia tlačítka (X):

    Code:
    if pad:cross() then
    break
    end
    Kód sa začína podmienkou "if" potom našou skratkou, ktorú sme si určili, ciže "pad", teraz nasleduje tlačítko "cross()" a nakoniec "then".
    V preklade tento riadok priblžne znamena:

    Ak stlačíme krížik, potom ...

    V 2. riadku si určíme funkciu, čiže "break" čo zjednodušene znamená "zlomiť". V tomto prípade nám funkcia berak vypne LOOP.
    A nakoniec koniec funkcie X čiže "end".

    8. Poslednú vec, ktorú pridáme je:

    Code:
    screen.waitVblankStart()
    screen.flip()
    end
    Toto zaistí, že náš "loop" bude funkčný a ukončený.
    Hotovo! Uložte a príponu .txt zmeňte na .lua. Hello World je kompletný. Tak šup šup otestujte ho!
    __________________________________________________ __________

    Váš kód by mal vyzerať asi takto: (klikni na dvojitú šípku smerom nadol)

    Code:
    --Hello World sample for tutorial
    --by myschoo
    
    --Farby
    white = Color.new(255,255,255)
    
    --hlavna cast
    
    while true do
    
    screen:clear()
    screen:print(100,100,"Hello World! for tutorial",white)
    screen:print(100,255,"Stlac X pre vypnutie",white)
    
    --ovladanie
    
    --urcime si skratku pre ovladanie
    --najcastejsia je: pad takze
    
    pad = Controls.read()
    
    --Xko nam vypne aplikaciu
    
    if pad:cross() then
    break
    end
    
    --ukoncime aplikaciu
    
    screen.waitVblankStart()
    screen.flip()
    end
    __________________________________________________ __________

    Zjednodušená verzia kódu bez definovania, porovnajte: (klikni na dvojitú šípku smerom nadol)

    Code:
    --Hello World sample for tutorial
    --by myschoo
    
    --Farby
    --nie je potrebne
    
    --hlavna cast
    
    while true do
    
    screen:clear()
    screen:print(100,100,"Hello World! for tutorial",Color.new(255,255,255))
    screen:print(100,255,"Stlac X pre vypnutie", Color.new(255,255,255))
    
    --ovladanie
    
    --urcime si skratku pre ovladanie
    --najcastejsia je: pad takze
    --nie je potrebne
    
    --Xko nam vypne aplikaciu
    
    if Controls.read():cross() then
    break
    end
    
    --ukoncime aplikaciu
    
    screen.waitVblankStart()
    screen.flip()
    end
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________


    LUA Button Tester



    Je čas sa posunúť do druhej lekcie...

    1. Ako minule, aj tentoraz začneme poznámkami:

    Code:
    --Button Tester for tutorial
    --sample by myschoo
    2. Teraz si definujem farby, tentoraz bude čierna:

    Code:
    cierna = Color.new(0,0,0)
    3. Teraz použijem nový príkaz a to "Image.load("nazov_obrazka.png")". Týmto príkazom nahrám obrázok do RAMky. Max. veľkosť je 512x512 pixelov a viem, že podporované formáty sú *.jpg a *.png. Možno aj iné, ale nespomínam si presne.
    Takže pridajte:

    Code:
    pozadie = Image.load("sample.png")
    4. Môžem začať LOOP:

    Code:
    while true do
    5. Vyčistím obrazovku a vložím pozadie.

    Code:
    screen:clear()
    screen:blit(0,0,pozadie)
    "screen.blit(x,y,premenna)" je funkcia na "blitovanie" (vkladanie) obrázkov.

    6. Definujem si ovládanie:

    Code:
    pad = Controls.read()
    7. Teraz pridám kód na "button test":

    Code:
    if pad:right() then
    screen:print(200, 100, "Drzis sipku DOPRAVA!", cierna)
    end
    Toto je funkcia keď držíte šípku doprava. Tak isto to urobte s ostatnými tlačítkami. Skúste to sami, bez toho aby ste sa pozreli dolu do zdrojového kódu . Tu sú ešte definície ostatných tlačítok:

    Code:
    left()
    up()
    down()
    l()
    r()
    cross()
    square()
    triangle()
    circle()
    start()
    select()
    8. Ak ste všetko splnili, uzavrite loop:

    Code:
    screen.waitVblankStart()
    screen.flip()
    end
    To je všetko! Otestujte to!

    __________________________________________________ __________

    Váš kód by mal vyzerať asi takto: (klikni na dvojitú šípku smerom nadol)

    Code:
    --Button Tester for tutorial
    --sample by myschoo
    
    --definujem bielu
    
    cierna = Color.new(0,0,0)
    
    --naloadujem obbrazok do RAMKY... pozadie
    
    pozadie = Image.load("sample.png")
    
    --main loop
    
    while true do
    
    --vycistim obrazovku a VLOZIM pozadie :)
    
    screen:clear()
    screen:blit(0,0,pozadie)
    
    --definujem Controls.read()
    
    pad = Controls.read()
    
    --no a teraz samotny "button test" kod :)
    --je to jeddnoduche
    
    if pad:right() then
    screen:print(200, 100, "Drzis sipku DOPRAVA!", cierna)
    end
    
    if pad:left() then
    screen:print(200, 100, "Drzis sipku DOLAVA!", cierna)
    end
    
    if pad:up() then
    screen:print(200, 100, "Drzis sipku NAHOR!", cierna)
    end
    
    if pad:down() then
    screen:print(200, 100, "Drzis sipku NADOL!", cierna)
    end
    
    if pad:cross() then
    screen:print(200, 100, "Drzis Xko!", cierna)
    end
    
    if pad:circle() then
    screen:print(200, 100, "Drzis Ocko!", cierna)
    end
    
    if pad:square() then
    screen:print(200, 100, "Drzis stvorcek!", cierna)
    end
    
    if pad:triangle() then
    screen:print(200, 100, "Drzis trojuholnik!", cierna)
    end
    
    if pad:l() then
    screen:print(200, 100, "Drzis Lko!", cierna)
    end
    
    if pad:r() then
    screen:print(200, 100, "Drzis Rko!", cierna)
    end
    
    if pad:start() then
    screen:print(200, 100, "Drzis START!", cierna)
    end
    
    if pad:select() then
    screen:print(200, 100, "Drzis SELECT!", cierna)
    end
    
    --mozeme ukoncit loop
    
    screen.waitVblankStart()
    screen.flip()
    end

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  2. Nasledujících 7 uživatelů poděkovalo myschoo za užitečný příspěvek:

    ClayMore (03.02.2010), FxR (20.09.2010), Han3 (31.08.2008), JamesRamone (19.02.2009), k3vadros (13.05.2008), Nil3E (02.08.2008), Unlimited_Killer (07.09.2010)

  3. #2
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    Príklady


    FAKE OE-A Source


    Tu dávam source code FAKE OE-A, ktorý som robil asi pred dvoma týždňami.
    Neskôr prihodím popisky.




    Code:
    -- Fake 3.03 OE-A updater by myschoo
    -- Its just joke dont take it too serious :D
    
    --colors
    
    red = Color.new(217,26,117)
    error = Color.new(255,0,0)
    white = Color.new(255,255,255)
    
    rsod = Image.load("load.dat")
    
    fakenum = 20
    
    counter = Timer.new(0)
    counter:stop()
    timer = Timer.new(0)
    timer:stop()
    
    function update()
    currentTime = counter:time()
    if pad:cross() then
    counter:start()
    end
    if currentTime > 0 then
    screen:print(5, 55, "Opening and validating dxar file...", red)
    end
    end
    
    function timerfun()
    
    curTimeinsecs = math.floor(timer:time()/1000)
    currentTime = counter:time()
    
    if currentTime > 2000 then
    screen:print(290, 55, "done.", red)
    end
    if currentTime > 3000 then
    screen:print(5, 65, "Logical formating flash0...", red)
    end
    if currentTime > 5000 then
    screen:print(230, 65, "done.", red)
    end
    if currentTime > 6000 then
    screen:print(5, 75, "Creating directories...", red)
    end
    if currentTime > 8000 then
    screen:print(200, 75, "done.", red)
    end
    if currentTime > 9000 then
    screen:print(5, 85, "Writing 1.50 subset...", red)
    end
    if currentTime > 11000 then
    timer:start()
    screen:print(190, 85, curTimeinsecs .. "%", red)
    end
    if timer:time() > 0 then
    cfg = io.open("cfg.dat","r")
    mem = cfg:read("*n")
    cfg:close()
    if fakenum >= mem then
    cfg = io.open("cfg.dat","w+")
    cfg:write(fakenum)
    cfg:close()
    end
    if timer:time() >= 94000 then
    timer:stop()
    fakenum = fakenum - 1
    end
    end
    if currentTime > 110000 then
    screen:print(5, 105, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 111000 then
    screen:print(5, 115, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 112000 then
    screen:print(5, 125, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 113000 then
    screen:print(5, 135, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 114000 then
    screen:print(5, 145, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 115000 then
    screen:print(5, 155, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 116000 then
    screen:print(5, 165, "FATAL ERROR OCCURED", error)
    end
    if currentTime > 117000 then
    screen:print(5, 175, "FATAL ERROR OCCURED", error)
    end
    end
    
    ------------main loop
    
    while true do
    
    screen:clear()
    
    pad = Controls.read()
    
    screen:print(5, 5, "You are about to flash your PSP to custom firm 3.03 OE-A.", red)
    screen:print(5, 15, "Press X to start. By doing it, you accept the risk and ALL", red)
    screen:print(5, 25, "the responsability of what happens.", red)
    screen:print(5, 35, "If you don't agree press R button.", red)
    
    update()
    timerfun()
    
    if currentTime > 122000 then
    screen:clear()
    end
    if currentTime > 124000 then
    screen:blit(0, 0, rsod)
    end
    if currentTime > 134000 then
    screen:clear()
    screen:print(5, 5, "Lol to bol len VTIP !! :D", white)
    end
    if currentTime > 136000 then
    screen:print(5, 15, "Aplikacia sa vypne za 5 sek. Cakajte.", white)
    end
    if currentTime > 138000 then
    screen:print(5, 25, "Bye Bye", white)
    end
    if currentTime > 141000 then
    System.Quit()
    end
    
    if pad:r() then
    System.Quit()
    end
    
    screen.waitVblankStart()
    screen.flip()
    end
    Source code obsahuje nejaké chybky atď., a niektoré veci by sa dali vyriešíť jednoduchšie.

    Full Download

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Prečitaj PSP prezívku a vypíš na obrazovku



    Urobil som jednoduchý kód, ktorý prečíta s PSP flash1:/registry/system.dreg nickname užívatela a vypíše ho na obrazovku.

    Code:
    -- Print PSP's name on screen
    -- by myschoo
    
    -- definujem farby
    
    white = Color.new(255,255,255)
    
    -- nájdi meno
    -- toto nesmiem dat do LOOPu, pretoze ten je citany 60x za sek. musim 
    -- to teda dat do prvej casti
    
    -- funkcia pre otvorenie suboru, "r" znamena "read", este existuje
    -- funkcia"w+" cize write
    meno = io.open("flash1:/registry/system.dreg","r") 
    -- musim precita IBA urcity riadok, ten najdem podla offsetu riadku
    -- proste pozrite si system.dreg v hex editore :) (0x2380 - offset)
    meno:seek("set", 0x2380) 
    -- precitam data, 27 znamena pocet znakov, max. dlzka nicku je 27
    -- znakov
    precitajmeno = meno:read(27)
    -- zavriem subor
    meno:close()
    
    while true do
    
    screen:clear()
    
    pad = Controls.read()
    
    --pisem na obrazovku
    screen:print(5, 5, "Find Name by myschoo", white)
    screen:print(100,100, "Tvoje PSP meno je:" , white)
    screen:print(100,115, precitajmeno , white)
    
    if pad:cross() then
    System.Quit()
    end
    
    screen.waitVblankStart()
    screen.flip()
    end
    Popísané sú najdôležitejšie časti.

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Funkcie Batérie



    Code:
    -- Funkcie Baterie
    -- by myschoo
    
    --definujem farby
    biela = Color.new(255,255,255)
    cervena = Color.new(255,0,0)
    zelena = Color.new(0,255,0)
    
    -- definujem ciselne premenne
    batstat = System.powerGetBatteryLifePercent() -- stav baterie v %
    battime = System.powerGetBatteryLifeTime() / 60 -- kolko este vydrzi bat. v hod.
    teplota = System.powerGetBatteryTemp() -- teplota baterie v °C
    volt = System.powerGetBatteryVolt() -- napatie v milivoltoch
    
    -- funkcia "battery"
    function battery()
    if System.powerIsBatteryCharging() then -- ak sa nabija tak
    screen:print(10,110, "Nabijanie baterie: ON", zelena) -- napis
    else -- inak
    screen:print(10,110, "Nabijanie baterie: OFF", zelena) -- napis
    end
    if System.powerIsLowBattery() then -- zisti ci je baterka slaba
    screen:print(10,120, "Bateria je slaba", cervena)
    end
    -- napisem premenne na obrazovku
    screen:print(10, 60, "Stav baterie: " .. batstat .. "%", zelena)
    screen:print(10, 70, "Bateria vydrzi este: " .. battime .. " hod.", zelena)
    screen:print(10, 80, "Teplota baterie je: " .. teplota .. " stupnov C", zelena)
    screen:print(10, 90, "Napatie baterie je: " .. volt .. " mV", zelena)
    screen:print(10, 150, "Stlac (X) pre vypnutie", biela)
    end
    
    while true do
    
    screen:clear()
    
    screen:print(175, 5, "MyBatt by myschoo", biela)
    screen:print(175, 12, "-----------------", biela)
    
    -- vlozim funkciu
    battery()
    
    pad = Controls.read()
    
    if pad:cross() then
    break
    end
    
    screen.waitVblankStart()
    screen.flip()
    end
    Popísané sú najdôležitejšie časti.

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Pixel Fixer



    Pamätáte sa na rôzne programy, ktoré preblikávali 3 farby a maly Vám opraviť "stuck" pixely? Tu je jednoduchý kód ako na to...

    Code:
    -- Pixel Fixer for Tutorial
    -- by myschoo
    
    -- definujem farby, zakladnu cervenu, zelenu a modru ( R G B )
    red = Color.new(255,0,0)
    green = Color.new(0,255,0)
    blue = Color.new(0,0,255)
    white = Color.new(255,255,255)
    
    -- pod premennu "timer" si dam novy timer
    timer = Timer.new(0)
    -- ten sa ale hned zapne takze ho musim stopnut
    timer:stop()
    
    -- funckia bliknutia
    function Blick()
    -- zapne sa timer
    timer:start()
    -- ak je cas vacsi/nanajvys rovny 0 a mensi ako 200milisekund potom
    if timer&#58;time&#40;&#41; >= 0 and timer&#58;time&#40;&#41; < 200 then
    -- pouzijeme prikaz screen&#58;clear&#40;farba&#41;
    screen&#58;clear&#40;red&#41;
    end
    -- takto isto aj dalej
    if timer&#58;time&#40;&#41; >= 200 and timer&#58;time&#40;&#41; < 400 then
    screen&#58;clear&#40;green&#41;
    end
    if timer&#58;time&#40;&#41; >= 400 and timer&#58;time&#40;&#41; < 600 then
    screen&#58;clear&#40;blue&#41;
    end
    -- ak je cas vacsi ako 600milisekund potom sa timer stopne a resetuje a
    -- funkcia bezi od zaciatku
    if timer&#58;time&#40;&#41; >= 600 then
    timer&#58;stop&#40;&#41;
    timer&#58;reset&#40;0&#41;
    end
    end
    
    while true do
    
    -- vlozim funkciu
    Blick&#40;&#41;
    
    screen&#58;print&#40;5,5, "Pixel Fixer by myschoo", white&#41;
    
    screen.waitVblankStart&#40;&#41;
    screen.flip&#40;&#41;
    end
    Popísané sú najdôležitejšie časti.

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Funkcie MP3



    LUA Player Mod od cools, má pár nových funkcii ako prehrávanie MP3 a OGG. Tu je príklad použitia MP3 funkcii...

    Code:
    --MP3 Player test by myschoo
    
    -- definujem farby
    white = Color.new&#40;255,255,255&#41;
    gray = Color.new&#40;192,192,192&#41;
    
    -- definujem si status hrania 
    playing = "false"
    
    -- zlozka v PSP, z ktorej sa nacita MP3
    System.currentDirectory&#40;"ms0&#58;/PSP/MUSIC"&#41;
    -- nacita MP3 do RAM
    Mp3.load&#40;"03-lostprophets-last_train_home-rns.mp3"&#41;
    
    while true do
    
    -- vycistim obrazovku a napisem nejake texty
    screen&#58;clear&#40;&#41;
    screen&#58;print&#40;5,5, "MP3 Player Test by myschoo", white&#41;
    screen&#58;print&#40;5,90, "Last Train Home - Lostprophets" , gray&#41;
    screen&#58;print&#40;5, 130, "Stlac &#40;X&#41; pre hranie", white&#41;
    screen&#58;print&#40;5, 140, "Stlac &#40;O&#41; pre pauznutie", white&#41;
    screen&#58;print&#40;5, 150, "Stlac START pre navrat do LUA Player", white&#41;
    screen&#58;print&#40;5, 160, "Stlac SELECT pre navrat do XMB menu", white&#41;
    
    pad = Controls.read&#40;&#41;
    
    if pad&#58;cross&#40;&#41; then
    -- zacne prehravat MP3 
    Mp3.play&#40;&#41;
    -- zmenim status
    playing = "true"
    end
    -- funcia streamovania
    if Mp3.EndOfStream&#40;&#41; == "false" and playing == "true" then
    -- Mp3.getTime ziska cas prehravania vo forme 00 &#58; 00 &#58; 00
    screen&#58;print&#40;5,100, Mp3.getTime&#40;&#41; , gray&#41;
    end
    
    -- toto zaruci ze jednym stlacenim &#40;O&#41; sa vysle len 1 signal
    if pad&#58;circle&#40;&#41; and oldpad&#58;circle&#40;&#41; ~= pad&#58;circle&#40;&#41; then
    -- pauzne MP3
    Mp3.pause&#40;&#41;
    end
    
    if pad&#58;start&#40;&#41; then
    break
    end
    
    if pad&#58;select&#40;&#41; then
    -- nova funckia, funguje iba v najnovsom lua playeri, po vyvolani funckie 
    -- sa aplikacia vypne a dostanete XMB
    System.Quit&#40;&#41;
    end
    
    -- ukoncenie
    screen.waitVblankStart&#40;&#41;
    screen.flip&#40;&#41;
    -- toto tam musi byt
    oldpad = pad
    end
    Popísané sú najdôležitejšie časti.

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Jednoduché Menu



    Code:
    -- Ukazka Menu
    -- by myschoo
    
    -- farby
    
    biela = Color.new&#40;255,255,255&#41;
    selector = Color.new&#40;0,128,255&#41;
    zelena = Color.new&#40;20,150,147&#41;
    
    -- definujem premennu
    selY = 44
    
    while true do
    
    screen&#58;clear&#40;&#41;
    
    -- vytvorim tzv. "selector" &#40;vid. obrazok&#41;
    Image&#58;fillRect&#40;4, selY, 120, 10, selector&#41;
    
    -- nejake texty + polozky v menu
    screen&#58;print&#40;140,5, "Testovacie menu by myschoo", biela&#41;
    screen&#58;print&#40;140,12, "--------------------------", zelena&#41;
    
    screen&#58;print&#40;5,45, "Nova hra", biela&#41;
    screen&#58;print&#40;5,55, "Pokracuj v hre", biela&#41;
    screen&#58;print&#40;5,65, "Ovladanie", biela&#41;
    screen&#58;print&#40;5,75, "O hre", biela&#41;
    screen&#58;print&#40;5,85, "Koniec", biela&#41;
    screen&#58;print&#40;5,115, "---------------------------------------", biela&#41;
    screen&#58;print&#40;5,135, "Pouzi sipky pre pohyb v menu", biela&#41;
    screen&#58;print&#40;5,145, "Pouzi &#40;X&#41; pre potvrdenie", biela&#41;
    
    pad = Controls.read&#40;&#41;
    
    -- pohyb selectora za pomoci premmennej selY
    if pad&#58;down&#40;&#41; and oldpad&#58;down&#40;&#41; ~= pad&#58;down&#40;&#41; then
    selY = selY + 10
    end
    
    if pad&#58;up&#40;&#41; and oldpad&#58;up&#40;&#41; ~= pad&#58;up&#40;&#41; then
    selY = selY - 10
    end
    
    -- toto zaisti, ze selector bude kruzit v cykle, ak ste na 5. polozke a
    -- stlacite dole, selector bude na 1. polozke a naopak
    if selY == 94 then
    selY = 44
    end
    
    if selY == 34 then
    selY = 84
    end
    
    -- vykona jednotlive funkcie
    if selY == 44 and pad&#58;cross&#40;&#41; and oldpad&#58;cross&#40;&#41; ~= pad&#58;cross&#40;&#41; then
    -- vykona 1. funkciu
    end
    
    if selY == 54 and pad&#58;cross&#40;&#41; and oldpad&#58;cross&#40;&#41; ~= pad&#58;cross&#40;&#41; then
    -- vykona 2. funckiu
    end
    
    if selY == 64 and pad&#58;cross&#40;&#41; and oldpad&#58;cross&#40;&#41; ~= pad&#58;cross&#40;&#41; then
    -- vykona 3. funckiu
    end
    
    if selY == 74 then
    screen&#58;print&#40;5,250, "Moja Prva Hra by myschoo", biela&#41;
    screen&#58;print&#40;5,260, "Vsetky prava vyhradene &#58;D", biela&#41;
    end
    
    if selY == 84 and pad&#58;cross&#40;&#41; and oldpad&#58;cross&#40;&#41; ~= pad&#58;cross&#40;&#41; then
    System.Quit&#40;&#41;
    end
    
    screen.waitVblankStart&#40;&#41;
    screen.flip&#40;&#41;
    oldpad = pad
    end
    Popísané sú najdôležitejšie časti.

    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________
    __________________________________________________ __________________________________________________ ____________________

    Analóg



    Jednoduchý skript, ktorý ukazuje použitie analógu a pohyb objektu pomocou neho...

    Code:
    red = Color.new&#40;255,0,0&#41;
    black = Color.new&#40;0,0,0&#41;
    white = Color.new&#40;255,255,255&#41;
    
    -- vytvorim si prazdny cerveny obrazok
    player = Image.createEmpty&#40;32,32&#41;
    player&#58;clear&#40;red&#41;
    
    -- vytvorim si table z vlastnostami
    Player = &#123; x = 100, y = 100, img = player &#125;
    
    -- funkcia analogoveho pohybu
    function analogMove&#40;&#41;
    
    pad = Controls.read&#40;&#41;
    
    -- anaX a anaY su premenne
    anaX = pad&#58;analogX&#40;&#41;
    anaY = pad&#58;analogY&#40;&#41;
    
    -- ak je anaX cislo vacie ako 50 potom
    if anaX > 50 then
    -- hrac sa pohne po X osi o 5 pixelov
    Player.x = Player.x + 5
    end
    
    if anaX < -50 then
    Player.x = Player.x - 5
    end
    
    -- ak je anaYcislo vacie ako 50 potom
    if anaY > 50 then
    -- hrac sa pohne po Y osi o 5 pixelov
    Player.y = Player.y + 5
    end
    
    if anaY < -50 then
    Player.y = Player.y - 5
    end
    end
    
    while true do
    
    screen&#58;clear&#40;&#41;
    
    -- vykreslim hraca
    screen&#58;blit&#40;Player.x,Player.y,Player.img&#41;
    
    -- vlozim funkciu
    analogMove&#40;&#41;
    
    -- vypisem koordinaty &#40;nie je porebne skor pre info&#41;
    screen&#58;print&#40;5,5,"analogX&#58; " .. anaX, white&#41;
    screen&#58;print&#40;5,15,"analogY&#58; " .. anaY, white&#41;
    
    if pad&#58;cross&#40;&#41; then
    break
    end
    
    screen.flip&#40;&#41;
    screen.waitVblankStart&#40;&#41;
    end

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  4. Nasledujících 9 uživatelů poděkovalo myschoo za užitečný příspěvek:

    ClayMore (25.01.2012), Han3 (31.08.2008), JamesRamone (19.02.2009), k3vadros (13.05.2008), Leny (09.06.2009), Makaker (08.08.2010), Nil3E (01.08.2008), Rajce (07.08.2008), Unlimited_Killer (08.08.2010)

  5. #3
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    OSTATNÉ


    LUA Kód do EBOOTu


    LUA sa nedá kompilovať, ale pomocou obyčajného LUA Playera môžete urobiť Váš kód samostatný.

    1. Stiahnite LUA Player 0.20 + Mp3/OGG podpora pre PSP (pozri nižšie).

    2. Otvorte zložku luaplayer, z nej vymažte všetko okrem EBOOT.PBP a System.lua, ktorá sa nachádza v zložke System.
    Do zložky "luaplayer" vložte svoj LUA skript + potrebné súbory atď.
    Malo by to vyzerať asi takto:

    luaplayer/System/System.lua
    ............./index.lua <---Vaš skript sa musí volať index.lua!
    ............./obrazok1.png

    atď.

    3. Otvorte zložku luaplayer%. EBOOT.PBP otvorte pomocou PSPBrew a zmeňte ikonku a pozadie na aké chcete.

    4. To je všetko. A samozrejme zložky luaplayer a luaplayer% môžete premenovať na hocičo iné, trebars: zložka zložka%.

    DOWNLOAD


    ConTEXT + LUA Syntax zvýrazňovač
    Pack obsahuje:
    - ConTEXT Editor
    - lua.chl - zvýrazňuje syntax pre lepšiu prehladnosť

    LUA Player 0.20 + Mp3/OGG podpora pre PSP

    LUA Player 0.20 pre PSP

    LUA Player 0.20 pre WINDOWS

    1. Zložku "luaplayerwindows" prekopírujte niekam do PC.
    2. Svoje abc.LUA skrypty spúšťajte nasledovne:

    - Vytvorte nový textový dokument. Príponu *.txt prepíšte na *.cmd.
    - Kliknite na to pravým a vyberte edit.
    - Do vnútra napíšte:

    Code:
    luaplayer nazov_mojho_skriptu.lua
    pause
    - Uložte to.

    3. To je všetko, teraz len dvojklik na Váš CMD súbor. Ak ste všetko urobili správne, malo by to fičať.

    UŽITOČNÉ STRÁNKY


    Evilmana.com Tutoriály - AJ

    pspDEVELOPER Tutoriály - AJ - nie len LUA

    ZAKAZ KOPIROVANIA TUTORIALOV/KODU.
    (c) myschoo
    Naposledy upravil: myschoo - 05.08.2008 v 20:01

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  6. Nasledujících 8 uživatelů poděkovalo myschoo za užitečný příspěvek:

    4A8georgeCZ (12.05.2008), ClayMore (03.02.2010), Han3 (06.06.2008), k3vadros (13.05.2008), Nil3E (30.08.2008), NirvanaFanBoy (07.08.2008), Rajce (07.08.2008), Unlimited_Killer (08.08.2010)

  7. #4
    Member Georgeos's Avatar
    Založen
    Aug 2006
    Věk
    21
    Příspěvky
    287
    Feedback Score
    0

    Default

    Jako super práce... Ještě by to chtělo nějaký C tutorialy od kgsws a bylo by to super

    PSP 2.60 -> 1.50 -> 2.71 SE -> 3.02 OE-A -> 2.71 SE-C (zcihleno) -> new 2.71 ->1.50->3.10OE-A'->3.40OE-A, 4GB Sandisk

  8. #5
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    diky nj ale pridal som jednu stranku a tam su aspon AJ tuty...

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  9. #6
    Member margot1's Avatar
    Založen
    Jul 2006
    Bydliště
    Praha
    Příspěvky
    197
    Feedback Score
    0

    Default

    hello world sem zkoušel asi před měsícem, potom taky skript na počítání věku, a ten fake 3.02 mi taky určitě přijde vhod... dobrá práce myschoo!

  10. #7
    Member margot1's Avatar
    Založen
    Jul 2006
    Bydliště
    Praha
    Příspěvky
    197
    Feedback Score
    0

    Default

    asi místo wordpadu bych doporučil ConTEXT, příjde mi přehlednější

  11. #8
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    presne ten pouzivam

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  12. #9
    Member west]['s Avatar
    Založen
    Apr 2006
    Bydliště
    Praha 5
    Věk
    24
    Příspěvky
    1,010
    Feedback Score
    0

    Default

    wow, to je parada.. ze bych se jeste dal na programovani na psp ...
    Xbox 360 Slim 250GB Black Piano
    PSP Slim&Lite Ice Silver
    HTC Desire S-OFF rooted

  13. #10
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    pridany Button tester tutorial

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  14. #11
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    pridal som nejake vecicky a dalsi priklad

    + ako rozbehat win lua player

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  15. #12
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    pridal dom do prikladov funckie baterky celkom zaujimave

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  16. #13
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    pridany kod na Pixel Fixer v Prikladoch

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



  17. #14
    Member
    Založen
    Sep 2006
    Bydliště
    Uherský Brod
    Věk
    20
    Příspěvky
    319
    Feedback Score
    2 (100%)

    Default

    Quote Původně napsal myschoo
    pridany kod na Pixel Fixer v Prikladoch
    Heh na to se dívat půl hodiny a měl bych zažítek na celý život. Hele jak uděláš to, aby jsi ty LUA prográmky mohl převést do ebootu?
    PSP: FAT Black 1004 + WHITE 1000- FW: 5.50 GEN-D2
    Příslušenství: Speed Link Carry Case, SanDisk 4 GB Memory Stick Pro Duo Ultra II, Creative EP-630

  18. #15
    iModerator myschoo's Avatar
    Založen
    Oct 2005
    Bydliště
    Bratislava
    Věk
    20
    Příspěvky
    5,049
    Feedback Score
    0

    Default

    Navod na to sem pridam

    [ ICQ | 224-212-929 ]

    [ Console-Forum.cz Veteran ]
    [ PSP Guides ] [ iPhone FAQ ]
    "Neserte mně, nebo vytáhnu bouchačku a vlítnu tam mezi vás!"



+ Odpovědět na toto téma
Stránka 1 z 5 123 ... PosledníPoslední

Informace tématu

Users Browsing this Thread

Právě prohlíží 1 uživatelů tohle téma. (0 registrovaných a 1 anonymních)

Podobné témata

  1. Tutoriály
    Od Anonymous v sekci Info o foru
    Odpovědi: 13
    Poslední příspěvek: 24.05.2006, 13:34

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete přidávat odpovědi
  • Nemůžete přidávat přílohy
  • Nemůžete upravovat svoje příspěvky