Difference between revisions of "love.graphics.push (简体中文)"

(Function)
(Function)
Line 15: Line 15:
 
无返回值
 
无返回值
  
== Function ==
+
== 函数介绍 ==
 
{{newin|[[0.9.2]]|092|type=variant}}
 
{{newin|[[0.9.2]]|092|type=variant}}
 
Pushes a specific type of state to the stack.
 
Pushes a specific type of state to the stack.
=== Synopsis ===
+
=== 简介 ===
 
<source lang="lua">
 
<source lang="lua">
 
love.graphics.push( stack )
 
love.graphics.push( stack )
 
</source>
 
</source>
=== Arguments ===
+
=== 参数 ===
 
{{param|StackType|stack|The type of stack to push (e.g. just transformation state, or all love.graphics state).}}
 
{{param|StackType|stack|The type of stack to push (e.g. just transformation state, or all love.graphics state).}}
=== Returns ===
+
=== 返回值 ===
Nothing.
+
无返回值
  
 
== Examples ==
 
== Examples ==

Revision as of 02:40, 18 September 2015

love.graphics.push的作用是保存当前的坐标体系并将其激活到可修改状态(英文直译:推动到转换栈),然后可以使用love.graphics.scale以及love.graphics.translate等函数修改当前的坐标体系至一个新的坐标体系,在这个新的坐标体系上绘制的物体会发生形态变化(如放大和缩小、翻转、平移等),当制作地图功能和地图上的视角追踪(或称摄像机,camera)功能时这一功能尤为重要。 需要提醒,当新坐标体系上的物品绘制结束后必须使用love.graphics.pop函数使坐标体系返回至默认状态,否则love2d将会报错。

函数介绍

Pushes the current transformation to the transformation stack.

简介

love.graphics.push( )

参数

无参数

返回值

无返回值

函数介绍

Available since LÖVE 0.9.2
This variant is not supported in earlier versions.

Pushes a specific type of state to the stack.

简介

love.graphics.push( stack )

参数

StackType stack
The type of stack to push (e.g. just transformation state, or all love.graphics state).

返回值

无返回值

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


Other Languages