Суббота, 19.09.2020, 12:46 | Приветствую Вас Гость

Циклы и прочее

 

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 условие

Навигация
Форма входа

Календарь
«  Сентябрь 2020  »
ПнВтСрЧтПтСбВс
 123456
78910111213
14151617181920
21222324252627
282930