Difference between revisions of "Pixel"
m (→Examples) |
|||
(2 intermediate revisions by the same user not shown) | |||
Line 43: | Line 43: | ||
-- a gradient bg | -- a gradient bg | ||
local bggradient = Pixel.new(0xffffff, 1, 800, 480) -- set a white color to start with | local bggradient = Pixel.new(0xffffff, 1, 800, 480) -- set a white color to start with | ||
− | bggradient:setColor(0x0, 1, | + | bggradient:setColor(0x0, 1, 0x00007f, 1, -90) -- a gradient set horizontally |
bggradient:setAnchorPoint(0.5, 0.5) | bggradient:setAnchorPoint(0.5, 0.5) | ||
-- stars | -- stars | ||
local spritestars = Sprite.new() -- a sprite to hold all star shapes | local spritestars = Sprite.new() -- a sprite to hold all star shapes | ||
− | for i = 1, | + | for i = 1, 512 do -- @PaulH |
local s = Shape.new() | local s = Shape.new() | ||
s:setLineStyle(2, 0xffffff) | s:setLineStyle(2, 0xffffff) | ||
− | s:moveTo(0,0) | + | s:moveTo(0, 0) |
− | s:lineTo( | + | s:lineTo(1, 1) |
s:endPath() | s:endPath() | ||
− | s:setPosition(math.random(0, 800 | + | s:setPosition(math.random(0, 800), math.random(0, 480)) |
− | s:setScale(math.random( | + | s:setScale(math.random(5, 15) / 10) |
− | s:setAlpha(math.random(10,50)/ | + | s:setAlpha(math.random(10, 50) / 50) |
spritestars:addChild(s) | spritestars:addChild(s) | ||
end | end | ||
− | -- render stars to a render target | + | -- render stars to a render target |
− | local rtstars = RenderTarget.new( | + | --local rtstars = RenderTarget.new(800, 480, nil, true, nil, nil, nil, false) -- BUG? |
+ | local rtstars = RenderTarget.new(800, 480) | ||
rtstars:draw(spritestars) | rtstars:draw(spritestars) | ||
+ | rtstars:save("|T|bgstars.png") -- TO FIX BUG | ||
-- create an image (Pixel) of the stars | -- create an image (Pixel) of the stars | ||
− | local bgstars = Pixel.new(rtstars, | + | --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) | bgstars:setAnchorPoint(0.5, 0.5) | ||
− | local texscale = 0. | + | local texscale = 0.7 |
bgstars:setTextureScale(texscale, texscale) | bgstars:setTextureScale(texscale, texscale) | ||
-- position | -- position | ||
bggradient:setPosition(800/2, 480/2) | bggradient:setPosition(800/2, 480/2) | ||
− | bgstars:setPosition( | + | bgstars:setPosition(800/2, 480/2) |
-- order | -- order | ||
stage:addChild(bggradient) | stage:addChild(bggradient) | ||
Line 77: | Line 82: | ||
function onEnterFrame(e) | function onEnterFrame(e) | ||
-- move the stars | -- move the stars | ||
− | velx -= e.deltaTime * | + | velx -= e.deltaTime * 128 |
bgstars:setTexturePosition(velx, 0) | bgstars:setTexturePosition(velx, 0) | ||
end | end |
Latest revision as of 02:41, 19 July 2023
Supported platforms:
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)
MethodsPixel.new creates a new Pixel |
EventsConstants |