Difference between revisions of "love.graphics.push (简体中文)"
Line 1: | Line 1: | ||
− | <code>love.graphics.push</code>的作用是保存当前的坐标体系并将其激活到可修改状态(英文直译:推动到转换栈),然后可以使用 | + | <code>love.graphics.push</code>的作用是保存当前的坐标体系并将其激活到可修改状态(英文直译:推动到转换栈),然后可以使用[[love.graphics.scale]]以及[[love.graphics.translate]]等函数修改当前的坐标体系至一个新的坐标体系,在这个新的坐标体系上绘制的物体会发生形态变化(如放大和缩小、翻转、平移等),当制作地图上的视角追踪(camera)功能时这一功能尤为重要。 |
− | 需要提醒,当新坐标体系上的物品绘制结束后必须使用 | + | 需要提醒,当新坐标体系上的物品绘制结束后必须使用[[love.graphics.pop]]函数使坐标体系返回至默认状态,否则love2d将会报错。 |
== Function == | == Function == |
Revision as of 15:53, 17 September 2015
love.graphics.push
的作用是保存当前的坐标体系并将其激活到可修改状态(英文直译:推动到转换栈),然后可以使用love.graphics.scale以及love.graphics.translate等函数修改当前的坐标体系至一个新的坐标体系,在这个新的坐标体系上绘制的物体会发生形态变化(如放大和缩小、翻转、平移等),当制作地图上的视角追踪(camera)功能时这一功能尤为重要。
需要提醒,当新坐标体系上的物品绘制结束后必须使用love.graphics.pop函数使坐标体系返回至默认状态,否则love2d将会报错。
Contents
Function
Pushes the current transformation to the transformation stack.
函数本体
love.graphics.push( )
参数
无参数
返回值
无返回值
Function
Available since LÖVE 0.9.2 |
This variant is not supported in earlier versions. |
Pushes a specific type of state to the stack.
Synopsis
love.graphics.push( stack )
Arguments
StackType stack
- The type of stack to push (e.g. just transformation state, or all love.graphics state).
Returns
Nothing.
Examples
Modify and restore the coordinate system.
function love.draw()
love.graphics.push() -- 储存默认的坐标体系
love.graphics.translate(...) -- 移动摄像头的位置
love.graphics.scale(...) -- 放大(缩小)视角
-- 使用新的坐标体系去绘制被观察的物体
love.graphics.pop() -- 回到默认的坐标体系
-- 使用屏幕的坐标绘制状态显示
end
Available since LÖVE 0.9.2 |
This example is not supported in earlier versions. |
Modify love.graphics state in a function, and restore it easily so other code isn't disturbed.
function DrawCoolThing()
love.graphics.push("all") -- save all love.graphics state so any changes can be restored
love.graphics.setColor(0, 0, 255)
love.graphics.setBlendMode("subtractive")
love.graphics.circle("fill", 400, 300, 80)
love.graphics.pop() -- restore the saved love.graphics state
end
function love.draw()
love.graphics.setColor(255, 128, 128)
love.graphics.circle("fill", 400, 300, 100)
DrawCoolThing()
love.graphics.rectangle("fill", 600, 200, 200, 200) -- still uses the color set at the top of love.draw
end
See Also
- love.graphics
- love.graphics.pop
- love.graphics.translate
- love.graphics.rotate
- love.graphics.scale
- love.graphics.shear
- StackType
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info