Pixel

From GiderosMobile
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Supported platforms: Platform android.pngPlatform ios.pngPlatform mac.pngPlatform pc.pngPlatform html5.pngPlatform winrt.pngPlatform win32.png
Available since: Gideros 2016.06
Inherits from: Sprite

Description

A rectangular Sprite which can be filled with solid colors, gradients or textures. Pixel aims at being a simpler and faster alternative to Shape when needing to display a coloured box or box with a gradient. It is also useful as Bitmap replacement since every texture will be fitted into Pixel dimensions automatically.

Examples

local mypixel = Pixel.new(0x0000FF, 0.75, 128, 128)
mypixel:setAnchorPoint(0.5, 0.5)
mypixel:setPosition(application:getContentWidth() / 2, 64)

stage:addChild(mypixel)
application:setBackgroundColor(0x323232)
local p = Pixel.new(0xffffff, 1, 32, 32)
 
p:set("redMultiplier", 1) -- OK
p:set("greenMultiplier", 0) -- OK
p:set("blueMultiplier", 0) -- OK
p:set("alphaMultiplier", 1) -- OK
--p:set("anchorX", .5) -- NOT OK
--p:set("anchorY", .5) -- NOT OK
p:set("anchorX", 16) -- OK
p:set("anchorY", 16) -- OK
p:set("alpha", .5) -- OK
p:set("scaleX", 1.5) -- OK
p:set("rotation", 10) -- OK
p:set("x", 32) -- OK
p:set("y", 32) -- OK

stage:addChild(p)

Moving stars in a gradient sky

-- a gradient bg
local bggradient = Pixel.new(0xffffff, 1, 800, 480) -- set a white color to start with
bggradient:setColor(0x0, 1, 0x00007f, 1, -90) -- a gradient set horizontally
bggradient:setAnchorPoint(0.5, 0.5)
-- stars
local spritestars = Sprite.new() -- a sprite to hold all star shapes
for i = 1, 512 do -- @PaulH
	local s = Shape.new()
	s:setLineStyle(2, 0xffffff)
	s:moveTo(0, 0)
	s:lineTo(1, 1)
	s:endPath()
	s:setPosition(math.random(0, 800), math.random(0, 480))
	s:setScale(math.random(5, 15) / 10)
	s:setAlpha(math.random(10, 50) / 50)
	spritestars:addChild(s)
end
-- render stars to a render target
--local rtstars = RenderTarget.new(800, 480, nil, true, nil, nil, nil, false) -- BUG?
local rtstars = RenderTarget.new(800, 480)
rtstars:draw(spritestars)
rtstars:save("|T|bgstars.png") -- TO FIX BUG
-- create an image (Pixel) of the stars
--local bgstars = Pixel.new(rtstars, 800, 480) -- BUG?
local texstars = Texture.new("|T|bgstars.png", nil, {wrap=TextureBase.REPEAT, extend=false}) -- TO FIX BUG
local bgstars = Pixel.new(texstars, 800, 480) -- TO FIX BUG
bgstars:setColorTransform(7/255, 221/255, 219/255, 1) -- stars color
bgstars:setAnchorPoint(0.5, 0.5)
local texscale = 0.7
bgstars:setTextureScale(texscale, texscale)
-- position
bggradient:setPosition(800/2, 480/2)
bgstars:setPosition(800/2, 480/2)
-- order
stage:addChild(bggradient)
stage:addChild(bgstars)

-- game loop
local velx = 0
function onEnterFrame(e)
	-- move the stars
	velx -= e.deltaTime * 128
	bgstars:setTexturePosition(velx, 0)
end
stage:addEventListener(Event.ENTER_FRAME, onEnterFrame)

Methods

Pixel.new creates a new Pixel
Pixel.new constructor to create a Pixel with texture in letterbox mode
Pixel:getColor returns the color(s) of the Pixel
Pixel:getDimensions returns the current size of the Pixel
Pixel:getTexturePosition returns the texture position
Pixel:getTextureScale returns the texture scale
Pixel:setColor sets the color of the Pixel
Pixel:setColor sets a gradient
Pixel:setColor sets a 4-colour gradient
Pixel:setDimensions sets both width and height of the Pixel
Pixel:setHeight sets the height of the Pixel sprite
Pixel:setNinePatch sets a 9-patch style texture rendering
Pixel:setTexture attaches a texture to the Pixel
Pixel:setTextureMatrix specifies a transform matrix for the texture
Pixel:setTexturePosition sets a texture position
Pixel:setTextureScale sets a texture scale
Pixel:setWidth sets the width of the Pixel sprite

Events

Constants