Difference between revisions of "Shape"
| (3 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
__NOTOC__  | __NOTOC__  | ||
| − | |||
<!-- GIDEROSOBJ:Shape -->  | <!-- GIDEROSOBJ:Shape -->  | ||
| − | '''  | + | '''Supported platforms:''' [[File:Platform android.png]][[File:Platform ios.png]][[File:Platform mac.png]][[File:Platform pc.png]][[File:Platform html5.png]][[File:Platform winrt.png]][[File:Platform win32.png]]<br/>  | 
| − | '''  | + | '''Available since:''' Gideros 2011.6<br/>  | 
| − | '''  | + | '''Inherits from:''' [[Sprite]]<br/>  | 
| − | ===   | + | === Description ===  | 
| − | The   | + | The '''Shape''' class is used to create and display vector graphics.  | 
| − | ===   | + | === Examples ===  | 
| − | '''Drawing a red square  | + | '''Drawing a red square'''  | 
| − | <  | + | <syntaxhighlight lang="lua">  | 
local shape = Shape.new()  | local shape = Shape.new()  | ||
shape:setFillStyle(Shape.SOLID, 0xff0000, 1)  | shape:setFillStyle(Shape.SOLID, 0xff0000, 1)  | ||
| Line 23: | Line 22: | ||
shape:setPosition(0, 150)  | shape:setPosition(0, 150)  | ||
stage:addChild(shape)  | stage:addChild(shape)  | ||
| − | </  | + | </syntaxhighlight>  | 
| + | |||
| + | '''Drawing a grid'''  | ||
| + | <syntaxhighlight lang="lua">  | ||
| + | application:setBackgroundColor(0xaaaaaa)  | ||
| + | |||
| + | local g_tilesize = 256 -- 8  | ||
| + | local grid = Sprite.new()  | ||
| + | local steps = 16 -- 2  | ||
| + | for i = 1, g_tilesize + 1, steps do  | ||
| + | 	local line = Shape.new()  | ||
| + | 	if i == 1 or i == g_tilesize + 1 then -- outside borders  | ||
| + | 		line:setLineStyle(1, 0x0000ff, 1)  | ||
| + | 	else  | ||
| + | 		line:setLineStyle(1, 0x0000ff, 0.25)  | ||
| + | 	end  | ||
| + | 	line:beginPath()  | ||
| + | 	line:moveTo(i - 1.5, -0.5)  | ||
| + | 	line:lineTo(i - 1.5, g_tilesize - 0.5)  | ||
| + | 	line:endPath()  | ||
| + | 	grid:addChild(line)  | ||
| + | end  | ||
| + | for i = 1, g_tilesize + 1, steps do  | ||
| + | 	local line = Shape.new()  | ||
| + | 	if i == 1 or i == g_tilesize + 1 then -- outside borders  | ||
| + | 		line:setLineStyle(1, 0x0000ff, 1)  | ||
| + | 	else  | ||
| + | 		line:setLineStyle(1, 0x0000ff, 0.25)  | ||
| + | 	end  | ||
| + | 	line:beginPath()  | ||
| + | 	line:moveTo(-0.5, i-1.5)  | ||
| + | 	line:lineTo(g_tilesize - 0.5, i-1.5)  | ||
| + | 	line:endPath()  | ||
| + | 	grid:addChild(line)  | ||
| + | end  | ||
| + | |||
| + | grid:setPosition(16, 16)  | ||
| + | stage:addChild(grid)  | ||
| + | </syntaxhighlight>  | ||
{|-  | {|-  | ||
| style="width: 50%; vertical-align:top;"|  | | style="width: 50%; vertical-align:top;"|  | ||
| − | ===   | + | === Methods ===  | 
| − | [[  | + | [[Shape.new]] ''creates a new Shape object''<br/><!--GIDEROSMTD:Shape.new() creates a new Shape object-->  | 
| − | [[  | + | [[Shape:beginPath]] ''resets the current path''<br/><!--GIDEROSMTD:Shape:beginPath(winding) resets the current path-->  | 
| − | [[  | + | [[Shape:clear]] ''clears the graphics that were drawn to this Shape object''<br/><!--GIDEROSMTD:Shape:clear() clears the graphics that were drawn to this Shape object, and resets fill and line style settings-->  | 
| − | [[  | + | [[Shape:closePath]] ''marks the current subpath as closed''<br/><!--GIDEROSMTD:Shape:closePath() marks the current subpath as closed, and starts a new subpath with a point the same as the start and end of the newly closed subpath-->  | 
| − | [[  | + | [[Shape:endPath]] ''ends the current path''<br/><!--GIDEROSMTD:Shape:endPath() ends the current path and draws the geometry by using the specified line and fill styles-->  | 
| − | [[  | + | [[Shape:lineTo]] ''adds the given point to the current subpath, connected to the previous one by a straight line''<br/><!--GIDEROSMTD:Shape:lineTo(x,y) adds the given point to the current subpath, connected to the previous one by a straight line-->  | 
| − | [[  | + | [[Shape:moveTo]] ''creates a new subpath with the given point''<br/><!--GIDEROSMTD:Shape:moveTo(x,y) creates a new subpath with the given point-->  | 
| − | [[  | + | [[Shape:setFillStyle]] ''sets the fill style that Shape object uses for subsequent drawings''<br/><!--GIDEROSMTD:Shape:setFillStyle(type,...) sets the fill style that Shape object uses for subsequent drawings-->  | 
| − | [[  | + | [[Shape:setLineStyle]] ''sets the line style that Shape object uses for subsequent drawings''<br/><!--GIDEROSMTD:Shape:setLineStyle(width,color,alpha) sets the line style that Shape object uses for subsequent drawings-->  | 
| style="width: 50%; vertical-align:top;"|  | | style="width: 50%; vertical-align:top;"|  | ||
| − | ===   | + | === Events ===  | 
| − | ===   | + | === Constants ===  | 
| − | [[  | + | [[Shape.EVEN_ODD]]<br/><!--GIDEROSCST:Shape.EVEN_ODD evenOdd-->  | 
| − | [[  | + | [[Shape.NONE]]<br/><!--GIDEROSCST:Shape.NONE none-->  | 
| − | [[  | + | [[Shape.NON_ZERO]]<br/><!--GIDEROSCST:Shape.NON_ZERO nonZero-->  | 
| − | [[  | + | [[Shape.SOLID]]<br/><!--GIDEROSCST:Shape.SOLID solid-->  | 
| − | [[  | + | [[Shape.TEXTURE]]<br/><!--GIDEROSCST:Shape.TEXTURE texture-->  | 
|}  | |}  | ||
{{GIDEROS IMPORTANT LINKS}}  | {{GIDEROS IMPORTANT LINKS}}  | ||
Latest revision as of 02:15, 25 December 2024
Supported platforms: ![]()
![]()
![]()
![]()
![]()
![]()
![]()
Available since: Gideros 2011.6
Inherits from: Sprite
Description
The Shape class is used to create and display vector graphics.
Examples
Drawing a red square
local shape = Shape.new()
shape:setFillStyle(Shape.SOLID, 0xff0000, 1)
shape:beginPath()
shape:moveTo(0,0)
shape:lineTo(100, 0)
shape:lineTo(100, 100)
shape:lineTo(0, 100)
shape:lineTo(0, 0)
shape:endPath()
shape:setPosition(0, 150)
stage:addChild(shape)
Drawing a grid
application:setBackgroundColor(0xaaaaaa)
local g_tilesize = 256 -- 8
local grid = Sprite.new()
local steps = 16 -- 2
for i = 1, g_tilesize + 1, steps do
	local line = Shape.new()
	if i == 1 or i == g_tilesize + 1 then -- outside borders
		line:setLineStyle(1, 0x0000ff, 1)
	else
		line:setLineStyle(1, 0x0000ff, 0.25)
	end
	line:beginPath()
	line:moveTo(i - 1.5, -0.5)
	line:lineTo(i - 1.5, g_tilesize - 0.5)
	line:endPath()
	grid:addChild(line)
end
for i = 1, g_tilesize + 1, steps do
	local line = Shape.new()
	if i == 1 or i == g_tilesize + 1 then -- outside borders
		line:setLineStyle(1, 0x0000ff, 1)
	else
		line:setLineStyle(1, 0x0000ff, 0.25)
	end
	line:beginPath()
	line:moveTo(-0.5, i-1.5)
	line:lineTo(g_tilesize - 0.5, i-1.5)
	line:endPath()
	grid:addChild(line)
end
grid:setPosition(16, 16)
stage:addChild(grid)
MethodsShape.new creates a new Shape object  | 
EventsConstantsShape.EVEN_ODD  |