Lua - быстро меняющиеся изображения - PullRequest
0 голосов
/ 02 сентября 2011

Я не программист, даже любитель, я просто хотел программу, которая бы изменяла цвет экрана PSP (весь) максимально быстро и бесконечно.Я сделал что-то:

rdupa = Image.load("red.png")
gdupa = Image.load("green.png")
bdupa = Image.load("blue.png")
screen:clear()
while true do
screen:blit(0, 0, rdupa, false)
screen:clear()
screen:blit(0, 0, gdupa, false)
screen:clear()
screen:blit(0, 0, bdupa, false)
screen:clear()
end

Используя Google, но это не работает.Что я сделал не так (у меня * .png изображения в той же папке, что и скрипт)?Готовый сценарий будет виден очень хорошо.

Ответы [ 4 ]

0 голосов
/ 11 января 2012

Если честно, я бы даже не подумал об использовании изображений.

что-то вроде этого сделало бы :)

(Это использует PGELua, но может быть легко адаптировано для LuaPlayer)

while pge.running() do
    color = pge.gfx.createcolor(pge.math.rand(255),pge.math.rand(255),pge.math.rand(255))
    pge.gfx.startdrawing()
    pge.gfx.drawrect(0,0,480,272,color)
    pge.gfx.enddrawing()
    pge.gfx.swapbuffers()
end

, если вы хотите определенные цвета, может быть что-то вроде,

red = pge.gfx.createcolor(255,0,0)
gre = pge.gfx.createcolor(0,255,0)
blu = pge.gfx.createcolor(0,0,255)
loop = 1
while pge.running() do
    pge.gfx.startdrawing()
    if loop==1 then
         pge.gfx.drawrect(0,0,480,272,red)
    elseif loop==2 then
         pge.gfx.drawrect(0,0,480,272,gre)
    elseif loop==3 then
         pge.gfx.drawrect(0,0,480,272,blu)
    end
    loop=loop+1
    if loop>4 then
        loop=1
    end
    pge.gfx.enddrawing()
    pge.gfx.swapbuffers()
end
0 голосов
/ 02 сентября 2011

Lua - небольшой и лаконичный язык программирования, обеспечивающий лишь несколько основных функций (см. этот список ).

Lua не предоставляет никаких функций для работы с экраном и изображениями по умолчанию,поэтому, не зная, какую библиотеку / фреймворк вы используете, мы мало что можем сделать, чтобы помочь.

0 голосов
/ 03 сентября 2011

Для этого ответа я работаю в предположении, что вы используете Lua Player (рассмотрите возможность добавления тега luaplayer?).Из того, что я вижу в документации , вы должны использовать

screen.flip()

вместо

screen:clear()

всякий раз, когда вы хотите обновить экран.К сожалению, у меня нет CFW на моей PSP, поэтому я не могу проверить это сам.

0 голосов
/ 02 сентября 2011

Я не уверен насчет вашей среды, но я предполагаю, что он, скорее всего, не сможет обновить свое главное окно или что-то еще, поскольку он по существу зависает, выполняя отсканированный код Lua (если он не выполняется в отдельном потоке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...