Lua - 快速更改图像

我不是程序员,甚至不是业余爱好者,我只想要一个能够无限制地尽快改变 PSP 屏幕整体颜色的程序。我做了一些东西:

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 图像)?准备好的脚本会看起来非常好。

原文链接 https://stackoverflow.com/questions/7286093

点赞
stackoverflow用户409744
stackoverflow用户409744

我不确定您的环境,但我猜它很可能无法更新其主窗口或其他内容,因为它实际上被困在执行 Lua 代码段的过程中(除非在单独的线程中执行)。

2011-09-02 16:06:01
stackoverflow用户221509
stackoverflow用户221509

Lua是一种小巧简洁的编程语言,仅提供少量核心函数(请参见此列表)。

默认情况下,Lua不提供任何与屏幕和图像相关的函数,因此如果不知道使用哪个库/框架,我们可以提供的帮助有限。

2011-09-02 16:43:55
stackoverflow用户926122
stackoverflow用户926122

对于这个答案,我假设您正在使用Lua Player(考虑添加lua玩家标签?)。从我在文档中看到的信息,每当您想要更新屏幕时,您应该使用

screen.flip()

而不是

screen:clear()

不幸的是,我没有CFW的PSP,所以我无法自己测试这个。

2011-09-02 23:28:04
stackoverflow用户1139673
stackoverflow用户1139673

说实话,我甚至不考虑使用图像。

可以像这样做:

(这是使用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
2012-01-11 16:04:57