Циклы и прочее
1) Пора бы познакомиться с кнопками управления системы PSP:
pad:up()—вверх pad:down()—вниз pad:left()—влево pad:right()—вправо pad:cross()—крестик pad:circle()—нолик pad:square()—квадрат pad:triangle()—теугольник
pad:analogX()—аналоговый джойстик pad:analogY()—аналоговый джойстик
pad:l()—левый триггер pad:r()—правый триггер pad:start()—старт pad:select()—select pad:note()—кнопка звука pad:home()—домой pad:hold()—блокировка
Теперь мы получили полную власть над всеми кнопками нашей приставки.
2) Загрузка сторонних файлов (любого формата на языке lua)
dofile("olol/olol/main.lua”)
в данном случае мы подгружаем файл main.lua, который находится по иерархии в папке olol/olol/ идя от папки нашей игры. Но данный способ загрузки не может дать нам возможность загружать файлы, которые находятся раньше нашей папки с игрой по иерархии.
Для этого есть более подробный, однако и более длинный как по написанию, так и по выполнению способ. dofile("ms0:/psp/game/YOU/olol/olol/main.lua”)
В этом случае мы уже идём не от папки(YOU) с нашей игрой, а от корневой папки PSP, то есть карты памяти, поскольку иерархия очень важна.
3) Загрузка стороннего EBOOT и браузера PSP
System.runeboot("ms0:/psp/game/YOU/EBOOT.pbp")
Тут мы просто загружаем файл Eboot - т.е. подгружаем новый движок или интерпритатор.
Теперь представляю код, с помощью которого вы можете открывать браузер PSP и даже автоматически переходить на необходимый вам сайт, при условии конечно, что EBOOT браузера находится в папке с вашей игрой.
System.webbrowser("ms0:/psp/game/YOU/mozilla","http://pspcode.do.am/")
4) Осуществление выхода из игры не прямым способом и не только
System.Quit()—выход из игры
System.startISO("game.iso”)—запус ISO образов
System.startUMD()—Запуск игры с диска
5) Очистка памяти – массовая и выборочная
System.memclean()—полная очистка всего, что было загружено в оперативную память PSP
kartinka1=nil—очистка из памяти загруженной раньше картинки путём приравнивания её к nil
Циклы
Так что же такое циклы - спросите вы. Циклы - это последовательность действий которая выполняется программой заданное, а порой и бесконечное кол-во раз, до тех пор, пока выполняется написанное программистом условие, а как вы понимаете условие (0==0) будет выполняться бесконечно, ну и всё в том духе.. Вы уже давным давно - сами того возможно не осознавая использовали циклы в своих программах.
В LUA есть 3 разновидности циклов: цикл с предусловием, параметром и постусловием.
1) Например один из них, вы постоянно используете - это while true do - цикл с предусловием, то есть кусок кода, который стоит внутри него выполняется до тех пор, пока выполняется условие true - правда. В данном случае true - всегда бесконечен
x=0
While x<100 do
--здесь кусок программы, который будет выполняться до тех пор, пока верно условие, а если мы внутри цикла 'x' менять не будем, то условие будет вечным
end
2) Другой вид циклов с параметром - более интересен - его можно располагать даже внутри while
for i=1,10,1 do
--здесь кусок программы, обычно сюда ставят на заполнение массивы, или распечатывают кучу картинок, в данном случае он сделает это всего 10 раз
end
этот цикл выполняется до тех пор, пока i<10, при этом этот i по ходу цикла сам накручивается с шагом 1, который написан после запятой и числа 10
Польза от этого цикла - огромная, ну скажем мгновенный вывод большого колличества изображений, самым удобным образом
for i=1,10 do
screen:blit(i*10,y,img)--тут мы выведем на экран 10 одинаковых картинок на расстоянии ровно 10 пикселей. Поскольку 1*10 2*10 3*10 4*10 и т.д.
end
3) Циклы с постусловием - такие же, как и с предусловием, просто условие здесь пишется не в начале а в конце, после кода вложенной программы - иногда это может быть удобнее
repeat .. until условие