首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Love2d从表中绘制

Love2d从表中绘制
EN

Stack Overflow用户
提问于 2017-02-13 06:53:30
回答 1查看 564关注 0票数 1

在Love2d中,有没有一种有效的方法可以在屏幕上打印一个大的(比如800x600)颜色值表格?我尝试过创建许多矩形(这非常慢)或创建一个imageData并绘制它(如果表值不是在每一帧都改变,这将是很好的,但它们确实改变了)。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-13 09:09:21

如果您可以在没有(大量)额外数据的情况下计算值,您可以尝试编写着色器,并在绘制对象时让其计算内容。

如果这不起作用,使用ImageData通常可以比默认快得多。首先,您应该确保不是按帧调用g = love.graphics.newImage( image_data ),而是创建一次,然后只调用g:refresh( )

接下来的事情是:mapPixel非常慢,因为它不断地从C调用到Lua (每个像素一次),这是相当大的开销。用Lua重写或者只使用:setPixel (也许还有:getPixel)的普通循环会更快。

如果这仍然太慢,最后一个问题是: LuaJIT不能对通过普通Lua API提供的C函数进行即时编译调用。但是,如果您通过ffi描述数据结构,然后让LuaJIT直接进行访问,则可以替换这些访问。Slime已经为love做到了这一点-0.9 (code on github)。只需require该文件,它将取代缓慢的函数,一切都应该快得多。我不是100%确定,但我想我已经在当前版本(0.10)中使用了它,并且它仍然有效。(如果ImageData的内部格式发生变化,它就会崩溃,但修复起来相对容易-而且很可能会有人更新代码并将其发布到某个地方。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42194233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档