Суббота, 19.09.2020, 12:55 | Приветствую Вас Гость
Графика и не только


Начнём с того, как устроен интерпритатор PSP. Я предлагаю в этом разделе использовать движок LuaPlayer HM7. Создаём в директории PSP/GAME свою папку и называем её английскими буквами. В эту папку закидываем наш движок. После в этой папке создаём текстовый документ с расширением *.LUA и называем его SCRIPT.LUA. Открываем его AklePad-ом или же, кому удобнее могут использовать Notepad++. И начинаем писать наш будущий проект.

Код будет считываться сверху вниз-по строчкам.
Тоесть сначала нам нужно будет указать,какую информацию мы хотим подгрузить в память PSP для работы с нею а уже потом создать игровой или програмный цикл,к которому впоследствии и перейдёт интерпритатор.

 

 

Памятка


1) Ставим частоту процессора на максимум этой функцией System.setHigh()
2) Подгружаем картинки которые нам необходимы в проекте kartinka=Image.load("kartinka.png"). Тут стоит замтить, что PSP распознаёт картинки лишь формата PNG и JPG, а путь который мы к ней прописываем пишется в кавычках как у меня.Например если бы в нами созданной папке была ещё папка,в которой бы хранилась наша картинка, то путь выглядел бы так ("papka/kartinka.png").С новых строк пишем наши переменные x и у,и приравниваем их к 0. x=0 y=0
3) Далее можно подгружать свои шрифты или музыку,но об этом позже.
4) После пункта 2 или же у кого-то 3 мы приступаем к созданию бесконечного цикла. пишется он так while true do, после этой строки мы переходим на новую строку и пишем end.Между двумя этими строчками мы делаем ещё несколько,где и будет располагаться наша процедура.Мы пишем screen:clear() для того, чтобы наш экран постоянно очищался и не было эффекта оставления следов нашими картинками при их перемещении.Далее необходимо написать pad = Controls.read() для того, чтобы psp смогла подгрузить в программу и постоянно считывать нажатия кнопок.Далее опять с новой строки пишется screen:flip() для проявления изображений.А перед ним и после pad = Controls.read() и будет как раз наша программа.
5) Распечатываем на экран нашу картинку screen:blit(x,y,kartinka)
6) Благодаря тому, что мы подгрузили кнопки PSP мы теперь можем управлять нашей картинкой.
7) Пишем условия нажатия и то, что долно следовать при их выполнении.

if pad:up() and y>0 then--если нажата кнопка вверх и координаты по у больше чем 0 то
y=y-1--уменьшаем у
end--конец условия
if pad:down() and y+kartinka:height()<272 then--если нажата кнопка вниз и координаты по у+высота картинки меньше чем 272 то
y=y+1--увеличиваем у
end--конец условия
if pad:left() and x>0 then--если нажата кнопка влево и координаты по х больше чем 0 то
x=x-1--уменьшаем х
end--конец условия
if pad:right() and x+kartinka:width()<480 then--если нажата кнопка вправо и координаты по х+ширина картинки меньше чем 480 то
x=x+1--увеличиваем х
end--конец условия

Осмелюсь заметить, что координаты 0,0 находятся в левом верхнем углу экрана PSP, соответственно перемещая картинку например вправо мы должны увеличивать x до тех пор, пока он не достигнет 480-предел экроана. По у же предел составляет 272

 

 

 
КОД

System.setHigh()
kartinka=Image.load("kartinka.png")
x=0
y=0


while true do
screen:clear()
pad = Controls.read()
screen:blit(x,y,kartinka)

if pad:up() and y>0 then
y=y-1
end
if pad:down() and y+
kartinka:height()<272 then
y=y+1
end
if pad:left() and x>0 then
x=x-1
end
if pad:right() and x+
kartinka:width()<480 then
x=x+1
end


screen:flip()
end
Навигация
Форма входа

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