博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
love2d教程7--绘图顺序
阅读量:4605 次
发布时间:2019-06-09

本文共 1072 字,大约阅读时间需要 3 分钟。

zorder用来控制绘图的先后顺序,可惜love2d里没有zorder,我们需要自己

控制绘图的先后顺序,即在love.draw()回掉函数中的先后顺序.可是这带来

了不便当有很多绘图动作时,代码太多便弄不清先后了.

我们可以自己增加一个z顺序的函数,每次添加绘图对象时,便把顺序设置好.

这里我把zorder的取值范围设为0.0--1.0,值越下越靠近屏幕,值越大越远

离屏幕,可以把zorder视为绘图对象离屏幕的距离.

 

下面我们来把下面三张图合成为以幅完整的图:

图片来自

下面是显示效果:左边的使用zorder,右边的不按顺序.

代码很简单,如下:

main.lua

local zorder={}--z的取值越小越靠近屏幕,默认值0function setZ(drawabl, z)    --z的默认值为0    z=z or 0    if z<=1 and z>=0 then            table.insert(zorder,{drawabl,z})    else            print("zorder must between 0 and 1")    end    table.sort(zorder, function(a,b) return a[2]>b[2] end)endfunction love.load()    imgs={}    for i=1,3 do        table.insert(imgs,love.graphics.newImage("assets/img" .. i .. ".png"))    endendfunction love.draw()    --直接绘图,不注意顺序    love.graphics.draw(imgs[2],400,200)    love.graphics.draw(imgs[1],400,200)    love.graphics.draw(imgs[3],400,200)    setZ(imgs[2],0.2)    setZ(imgs[1],0.3)    setZ(imgs[3],0.1)    for _,v in ipairs(zorder) do        love.graphics.draw(v[1],200,200)    endend

代码

转载于:https://www.cnblogs.com/xdao/archive/2012/12/22/love2d-tutor07.html

你可能感兴趣的文章
在线问答(服务端部分)
查看>>
CC2541设置中断输入模式
查看>>
js判断访问终端
查看>>
题库:简述Django请求生命周期(请求流程)
查看>>
块设备驱动程序
查看>>
每日一记======>linux U盘格式化 2012.08.27
查看>>
Unsafe类park,unpark详解
查看>>
A Simple Example About Privileged Methods in JavaScript
查看>>
Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本号
查看>>
pm2进阶使用
查看>>
在c++中,静态数据成员可以被非静态成员函数调用吗?如果可以调用的话那为什么还要定义静态成员函数呢...
查看>>
查看Sql Server所有表占用的空间大小
查看>>
CSS重置(css reset)【转载】
查看>>
Elasticserach 配置文件详解
查看>>
【案例】大型摩托制造企业如何高效排产?看APS系统如何帮忙
查看>>
NTCIR-13 We Want Web 任务概述
查看>>
模版include的用法
查看>>
LotusScript_导出数据库路径和名称
查看>>
String ,StringBuffer 与S tringBuilder的区别??
查看>>
PgSQL · 追根究底 · WAL日志空间的意外增长
查看>>