love.graphics中文手册

Love2d 同时被 3 个专栏收录
1 篇文章 0 订阅
1 篇文章 0 订阅
3 篇文章 0 订阅

绘图方法

  • 弧(绘制模式:”fill”|”line”,x座标,y座标,半径,起始弧度:x轴正方向为0,终止弧度:顺时针,线段数:越大则弧线越平滑)
love.graphics.arc("fill", x, y, radius, angle1, angle2, segments)
  • 圆(绘制模式:”fill”|”line”,圆心x座标,圆心y座标,半径,线段数:越大越平滑)
love.graphics.circle("line", x, y, radius, segments )
  • 清除()–在love.draw之前的love.run中自动调用,或自己写love.run时被用到
love.graphics.clear()
love.graphics.clear(r, g, b, a ) -- since 0.10.0
  • 画(物体:图片|画布|精灵组|粒子系统|网格,x座标,y座标,旋转弧度,x轴缩放,y轴缩放,x轴原点偏移值,y轴原点偏移值,x轴剪切系数,y轴剪切系数)
  • 画(材质:图片|画布,四边形,x轴,y轴,旋转弧度,x轴缩放,y轴缩放,x轴原点偏移值,y轴原点偏移值,x轴剪切系数,y轴剪切系数)
love.graphics.draw(drawable, x, y, rotation, scaleX, scaleY, originX, originY, kx, ky )
love.graphics.draw(texture, quad, x, y, math.rad(90), sx, sy, ox, oy, kx, ky )
  • 线(x座标1,y座标1,x座标2,y座标2, … )
    参数可以用table
love.graphics.draw(200,50,400,50, ...)
love.graphics.draw(points)
  • 点(x座标, y座标, … )
    参数可以用table
love.graphics.point(x1, y1, x2, y2, ... )
  • 多边形(绘制模式, … )
    参数可以用table存放所有顶点,再传入
love.graphics.polygon("fill", ... )
  • 呈现()
    只有在自己写love.run方法时被用到
love.graphics.present()
  • 打印(文本,x座标,y座标,旋转弧度,x轴缩放,y轴缩放,x轴原点偏移值,y轴原点偏移值,x轴剪切系数,y轴剪切系数)
love.graphics.print("Hello World!", 150, 120, math.pi/3, 1, 1, 100, 100 )
  • 格式打印(文本,x座标,y座标,行最多像素(若小于1个单词,则显示1个单词),对齐方式:”left”|”right”|”center”|”justify”左右对齐)
love.graphics.printf("Hello World!", 150, 120, 75, "left" )
  • 矩形(绘制模式:”fill”|”line”,x座标,y座标,宽,高)
love.graphics.rectangle("line", 10, 10, 100, 100 )

对象创建方法

  • 新建画布()
    创建一个窗口像素大小的画布
  • 新建画布(宽,高)
  • *新建画布(宽,高,格式:”normal”|”rgba8”|…)
  • *新建画布(宽,高,格式,多重采样反锯齿)
canvas = love.graphics.newCanvas()
canvas = love.graphics.newCnavas(width, height)
canvas = love.graphics.newCanvas(width, height, format)
canvas = love.graphics.newCanvas(width, height, format,msaa)
  • 新建字体(文件名, 字体大小)
  • 新建字体(字体大小)–使用默认字体”Vera Sans”
font = love.graphics.newFont("anyfont.ttf", size)
font = love.graphics.newFont(size)
  • 新建图片(文件名)
  • 新建图片(图片数据)
  • 新建图片(压缩的图片数据)
image = love.graphics.newImage( filename )
image = love.graphics.newImage( imageData )
image = love.graphics.newImage( compressedImageData )
  • 新建图像字体(文件名,???)
font = love.graphics.newImageFont(filename, glyphs)
font = love.graphics.newImageFont(imageData, glyphs)
font = love.graphics.newImageFont(image, glyphs)
  • 新建网格(顶点,纹理:图片|画布|nil无纹理,网格绘画模式:”fan”|”strip”|”triangles”|”points”)
    @参数 顶点:是一个table表,包含顶点x座标,顶点y座标,u纹理座标,v纹理座标,r,g,b,alpha
    @参数 网格绘画模式:详见https://love2d.org/wiki/MeshDrawMode
mesh = love.grahpics.newMesh(vertices, texture, mode)
vertexcount = {0,0, 0,0, 255,255, 255,255}
mesh = love.graphics.newMesh( vertexcount, texture, mode )
  • 新建粒子系统(纹理:图像|画布,粒子数)–用法见wiki
system = love.graphics.newParticleSystem( texture, buffer )
  • 新建四边形(x座标,y座标,宽,高,图片宽,图片高)–用法见wiki
quad = love.graphics.newQuad( x, y, width, height, sw, sh )
  • 新建截屏()
  • 新建截屏(Alpha值)–linux保存位置:~/.local/share/love
screenshot = love.graphics.newScreenshot( )
screenshot = love.graphics.newScreenshot( copyAlpha )
  • 新建着色器(代码)–详见wiki
shader = love.graphics.newShader( code )
shader = love.graphics.newShader( pixelcode, vertexcode )
  • 新建精灵组(图片,精灵数)
  • 新建精灵组(图片,精灵数,用法提示:”dynamic”动态|”static”静态|”stream”流)
  • 新建精灵组(纹理,精灵数,用法提示:”dynamic”动态|”static”静态|”stream”流)
    详见https://love2d.org/wiki/SpriteBatchUsage
spriteBatch = love.graphics.newSpriteBatch( image, size )
spriteBatch = love.graphics.newSpriteBatch( image, size, usagehint )
spriteBatch = love.graphics.newSpriteBatch( texture, size, usagehint )

图形状态

  • 获取背景颜色()
    @返回 红,绿,蓝,Alpha值
r, g, b, a = love.graphics.getBackgroundColor()
  • 获取混合模式()
    @返回 混合模式
mode = love.graphics.getBlendMode()
  • 获取画布()
    @返回 画布
canvas = love.graphics.getCanvas()
  • 获取画布格式()
    @返回 画布格式是一张table表:其中key是格式名;value是boolean值
formats = love.graphics.getCanvasFormats()
  • 获取颜色()
    @返回 红,绿,蓝,Alpha值
r, g, b, a = lvoe.graphics.getColor()
  • 获取颜色遮罩()
    @返回 红,绿,蓝,Alpha值
r, g, b, a = love.graphics.getColorMask()
  • 获取压缩图片的格式()
    @返回 格式是一张table表:其中key是格式名;value是boolean值
formats = love.graphics.getCompressedImageFormats()
min, mag, anisotropy = love.graphics.getDefaultFilter()
  • 获取字体()
    @返回 字体
font = love.graphics.getFont()
join = love.graphics.getLineJoin()
  • 获取线条风格()
    @返回 线条风格:”rough”|”smooth”
style = love.graphics.getLineStyle()
  • 获取线条宽度()
    @返回 宽度
width = love.graphics.getLineWidth()
  • 获取点尺寸()
    @返回 点尺寸
size = love.graphics.getPointSize()
  • 获取点风格()
    @返回 点风格:”rough”粗糙|”smooth”平滑
style = love.graphics.getPointStyle()
  • 获取渲染器信息()
    @返回 名称:”OpenGL”|”OpenGL ES”,版本,显卡厂商,显卡名
name, version, vendor, device = love.graphics.getRendererInfo()
  • 获取剪裁框()
    @返回 左上角x座标,左上角y座标,宽,高
x, y, width, height = love.graphics.getScissor()
  • 获取渲染器()
    @返回 渲染器
shader=love.graphics.getShader()
stats = love.graphics.getStats()
limit = love.graphics.getSystemLimit( limittype )
isSupported = love.graphics.isSupported( support1, support2, support3, ... )
assert(love.graphics.isSupported("canvas"),"your graphics does not support canvases, sorry!")
  • 是线框()
wireframe = love.graphics.isWireframe()
  • 重置()
love.graphics.reset()
  • 设置背景颜色(红,绿,蓝)
  • 设置背景颜色(红,绿,蓝,Alpha值)
  • 设置背景颜色(table表:{r,g,b})
  • 设置背景颜色(table表:{r,g,b,a})
love.graphics.setBackgroundColor( r, g, b )
love.graphics.setBackgroundColor( r, g, b, a )
love.graphics.setBackgroundColor( table )
love.graphics.setBlendMode( mode )
  • 设置画布()–画在主屏幕上
  • 设置画布(画布)–画在所指定的画布上
love.graphics.setCanvas()
love.graphics.setCanvas( canvas1, canvas2, ... )
  • 设置颜色(红,绿,蓝,Alpha值)
love.graphics.setColor(0, 255, 0, 255 )
  • 设置颜色遮罩(红,绿,蓝,Alpha值)
love.graphics.setColorMask(r, g, b, a)
love.graphics.setDefaultFilter( min, mag, anisotropy )
  • 设置字体(字体)
love.graphics.setFont( font )
love.graphics.setInvertedStencil(stencilFunction)
love.graphics.setInvertedStencil()
love.graphics.setLineJoin("miter"|"none"|"bevel")
  • 设置线条风格(线条风格:”smooth”平滑|”rough”粗糙)
love.graphics.setLineStyle("smooth"|"rough")( "smooth"|"rought" )
  • 设置线条宽度(宽度)
love.graphics.setLineWidth( 2 )
  • 设置点尺寸(尺寸)
love.graphics.setPointSize( 2 )
  • 设置点风格(风格:”rough”粗糙|”smooth”平滑)
love.graphics.setPointStyle( "rough"|"smooth" )
love.graphics.setScissor(0, 0, 100, 100)
  • 设置着色器(着色器)
  • 设置着色器()–禁用着色器,允许未过滤的绘画操作
love.graphics.setShader( shader )
love.graphics.setShader()
myStencil = love.graphics.setStencil( stencilFunction )
love.graphics.setStencil( )
  • 设置线框(使用与否:boolean值)–只用于调试,勿作他用
love.graphics.setWireframe( enable )

坐标系统

love.graphics.origin()
love.graphics.pop()
love.graphics.push()
love.graphics.push( stack )
  • 旋转(弧度)
love.graphics.rotate()
  • 缩放(x坐标,y坐标)
love.graphics.scale( sx, sy )
love.graphics.shear( kx, ky )
  • 翻转(相对x坐标,相对y坐标)
love.graphics.translate( dx, dy )

窗口

  • 获取窗口大小()
    @返回 宽,高
width, height = love.graphics.getDimensions()
  • 获取窗口高度()
    @返回 高
height = love.graphics.getHeight()
  • 获取窗口宽度()
    @返回 宽
width = love.graphics.getWidth()
  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值