【发布时间】:2012-12-13 01:01:36
【问题描述】:
我一直在尝试通过 IUP 获得意见来制作一个小型乒乓球游戏。我想尝试一些输入,并尝试了 IUPGL 示例附带的一些代码,但输入似乎根本不起作用。这是目前的代码:
require "iuplua"
require "iupluagl"
require "luagl"
paddle = {x = -0.9, y = 0.2}
function drawPaddle(x, y)
gl.Begin(gl.QUADS)
gl.Color(0.0, 0.5, 0.0)
gl.Vertex(x, y)
gl.Vertex(x + 0.1, y)
gl.Vertex(x + 0.1, y - 0.4)
gl.Vertex(x, y - 0.4)
end
canvas = iup.glcanvas{buffer = "DOUBLE", rastersize = "300x300"}
function canvas:action(x, y)
iup.GLMakeCurrent(self)
gl.ClearColor(0.0, 0.0, 0.0, 0.0)
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.Clear(gl.DEPTH_BUFFER_BIT)
gl.MatrixMode(gl.PROJECTION)
gl.Viewport(0, 0, 300, 300)
gl.LoadIdentity()
drawPaddle(paddle.x, paddle.y)
gl.End()
iup.GLSwapBuffers(self)
end
window = iup.dialog{canvas, title = "Soon to be Pong"}
function canvas:k_any(c)
if c == iup.K_q then
return iup.CLOSE
elseif c == iup.K_w then
paddle.y = paddle.y + 0.02
return iup.CONTINUE
else
return iup.DEFAULT
end
end
window:show()
iup.MainLoop()
据我了解,当按下某个键时会调用 canvas:k_any(),但它没有响应,即使是退出命令也是如此。有什么想法吗?
【问题讨论】:
-
您可能应该向 IUP 邮件列表 lists.luaforge.net/cgi-bin/mailman/listinfo/iup-mail 或 Lua 邮件列表 bazar2.conectiva.com.br/mailman/listinfo/lua 提出这个问题 IUP 作者正在阅读它们,并且通常非常有帮助和响应。
-
我在几个项目中使用了 IUP,但还没有玩过 IUPGL。虽然,我可能应该将它而不是 CD 用于我必须为一个项目实现的音频电平表控制......我确实知道 Lua 绑定中的关键回调比直接从 C 中使用 IUP 时更奇怪,所以这可能是开始查看源代码的地方。我将支持尝试 IUP 列表的建议。作者通常会迅速做出反应,您也会接触到许多高级用户。