My new documentation site and about where I'm heading :)
Re: My new documentation site and about where I'm heading :)
----------------------------
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: My new documentation site and about where I'm heading :)
Quite impressive! Don't forget to post the news to other sites as well to spread the word about this great library!
Re: My new documentation site and about where I'm heading :)
Thank you Andreas! I will do, but first here is another shot of another work with the GLGalore plugin (not yet release and not yet completed)
The video is a bit laggy due to my laptop but look at the fps counter on the top-left corner
YouTube video
The video is a bit laggy due to my laptop but look at the fps counter on the top-left corner
YouTube video
----------------------------
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: My new documentation site and about where I'm heading :)
Very impressive! There'll be a new GL Galore version soon with 64-bit support for Windows, Mac OS and Linux!
Re: My new documentation site and about where I'm heading :)
That's great!
Any chances to see GL Galore on Pi-like boards?
Any chances to see GL Galore on Pi-like boards?
----------------------------
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: My new documentation site and about where I'm heading :)
Yes, the next version will include support for Linux ARM but on the Pi there's currently only an experimental GL driver which is not active by default. But it seems to work just fine.
Re: My new documentation site and about where I'm heading :)
Hi!
Here is another request made by @Bugala who was searching for a particle system for the Hollywood's Layers Engine, and I had a library ready for this task. He has asked to put it public so everyone can benefit from it.
I took some time to polish a bit the source code and to write some examples.
INTRODUCTION
The LSprite library is a toolset that uses Layers or Double Buffer technic to bring to the coder an easy to use sprite system, including a a nice particle engine. It supports layers (I mean display levels or planes), it is full supported in Double Buffer mode while with layers it has some limitations.
During the development I've switched to the GLGalore version because of the performances, in fact using OpenGL they are far better than the stock rendering libraries.
Said that, you will understand why the documentation is quite poor and some features are missing.
If there is interest I can backport the missing parts from the GLGalore version to this one, let me know if someone is interested.
WHAT CAN DO THIS LIBRARY?
As said it features a sprite engine able to handle animations, paths, particles, custom actions (recurring or associated with timeouts), and so on... below you can see what functions, objects and methods it offers:
Sprite Engine Object
- pSpriteEngine:Create()
- SEObject:All_DrawOrdered(offsetx, offsety)
- SEObject:All_DrawUnorderedLayered(offsetx, offsety)
- SEObject:All_DrawOrderedInv(offsetx, offsety)
- SEObject:All_DrawUnordered(offsetx, offsety)
- SEObject:All_DrawUnorderedInv(offsetx, offsety)
- SEObject:FindSpriteByName(SpriteName)
- SEObject:YSort_Set(value)
- SEObject:Free()
- SEObject:All_Translate(x, y, Layer)
- SEObject:All_AttributesSet(Attributes, Layer)
- SEObject:All_AttributesAdd(Attributes, Layer)
Simple Sprite Object
These are sprites with a single frame.
- SimpleSprite:Create(engine, name, layer, attributes, filters, image, hardware, brushflag, islayer)
- SimpleSprite:CreateFromText(engine, name, layer, attributes, filters, text, textattrs, textfont, textstyle, textcolor, hardware, extraheight)
- SSObj:ActionAdd(name, atype, func, args)
- SSObj:ActionRemoveAll()
- SSObj:ActionRemove(name)
- SSObj:PathSet(Nodes, Loop, EndEvent)
- SSObj:PathSetNode(NodePos)
- SSObj:PathSetNodeNext()
- SSObj:FadeInvert()
- SSObj:FadeClear()
- SSObj:FadeSet(StartFade, EndFade, Time, Pulse, EndEvent)
- SSObj:ZoomInvert()
- SSObj:ZoomClear()
- SSObj:ZoomSet(StartZoom, EndZoom, Time, Pulse, EndEvent)
- SSObj:RotoSet(StartRoto, EndRoto, Time, Loop, EndEvent)
- SSObj:Update()
- SSObj:Draw(offsetx, offsety)
- SSObj:Hide()
- SSObj:Show()
- SSObj:Move(x, y)
- SSObj:Translate(x, y)
- SSObj:AttributesSet(Attributes)
- SSObj:AttributesRemove(Attributes)
- SSObj:AttributesAdd(Attributes)
- SSObj:Clone(CloneBrush, Hardware, IsLayer)
- SSObj:Free()
- SimpleSprite.Collisions.WithMouse:Set(OnCollision, OnCollisionStart, OnCollisionEnd)
- SimpleSprite.Collisions.WithMouse:Clear(OnCollision, OnCollisionStart, OnCollisionEnd)
Complex Sprite Object
These are sprites with a multiple frames an d multiple animation sequences.
This object includes all the SimpleSprite's methods.
- ComplexSprite:Create(engine, name, layer, attributes, filters, animations)
- CSObj:AnimStop()
- CSObj:AnimResume()
- CSObj:AnimStart()
- CSObj:Update()
- CSObj:AnimFrameNext()
- CSObj:AnimFramePrev()
- CSObj:AnimSetSequence(sequence, EndEvent)
- CSObj:Draw(offsetx, offsety)
Particle System Object
- ParticleSystem:New(engine, layer, emitter, gravity, textures, partinfo, Rate, Active, IsLayer)
- PS:EmitON()
- PS:EmitOFF()
- PS:Move(x, y)
- PS:Free()
Particle Object
- Particle:Create(PartSys)
- Part:Update()
INCLUDED TESTS as functions
TEST_01_Particles_And_Layers()
Shows how you can build a particle system using layers, here it is to have a quick idea:
TEST_02_Particles_And_DoubleBuffer()
Shows how you can build a particle system using the Double buffer
TEST_03_SimpleSprite_And_Layers()
Shows how to build a particle system and a simple sprite using layers
ABOUT THE INCLUDED EXAMPLE
The included example shows in details how to build a particle system (as requested by @Bugala), all parameters are commented and explained.
DOWNLOAD
Download the library from here
This library is FREE but donations are welcome, especially if you need more docs, examples and backporting of the new features added in the GLGalore version.
It would be a great help for me if you could consider the possibility to support me on Patreon, I've updated the rewards adding more stuff!
My treasure box isn't empty yet, stay tuned!
Here is another request made by @Bugala who was searching for a particle system for the Hollywood's Layers Engine, and I had a library ready for this task. He has asked to put it public so everyone can benefit from it.
I took some time to polish a bit the source code and to write some examples.
INTRODUCTION
The LSprite library is a toolset that uses Layers or Double Buffer technic to bring to the coder an easy to use sprite system, including a a nice particle engine. It supports layers (I mean display levels or planes), it is full supported in Double Buffer mode while with layers it has some limitations.
During the development I've switched to the GLGalore version because of the performances, in fact using OpenGL they are far better than the stock rendering libraries.
Said that, you will understand why the documentation is quite poor and some features are missing.
If there is interest I can backport the missing parts from the GLGalore version to this one, let me know if someone is interested.
WHAT CAN DO THIS LIBRARY?
As said it features a sprite engine able to handle animations, paths, particles, custom actions (recurring or associated with timeouts), and so on... below you can see what functions, objects and methods it offers:
Sprite Engine Object
- pSpriteEngine:Create()
- SEObject:All_DrawOrdered(offsetx, offsety)
- SEObject:All_DrawUnorderedLayered(offsetx, offsety)
- SEObject:All_DrawOrderedInv(offsetx, offsety)
- SEObject:All_DrawUnordered(offsetx, offsety)
- SEObject:All_DrawUnorderedInv(offsetx, offsety)
- SEObject:FindSpriteByName(SpriteName)
- SEObject:YSort_Set(value)
- SEObject:Free()
- SEObject:All_Translate(x, y, Layer)
- SEObject:All_AttributesSet(Attributes, Layer)
- SEObject:All_AttributesAdd(Attributes, Layer)
Simple Sprite Object
These are sprites with a single frame.
- SimpleSprite:Create(engine, name, layer, attributes, filters, image, hardware, brushflag, islayer)
- SimpleSprite:CreateFromText(engine, name, layer, attributes, filters, text, textattrs, textfont, textstyle, textcolor, hardware, extraheight)
- SSObj:ActionAdd(name, atype, func, args)
- SSObj:ActionRemoveAll()
- SSObj:ActionRemove(name)
- SSObj:PathSet(Nodes, Loop, EndEvent)
- SSObj:PathSetNode(NodePos)
- SSObj:PathSetNodeNext()
- SSObj:FadeInvert()
- SSObj:FadeClear()
- SSObj:FadeSet(StartFade, EndFade, Time, Pulse, EndEvent)
- SSObj:ZoomInvert()
- SSObj:ZoomClear()
- SSObj:ZoomSet(StartZoom, EndZoom, Time, Pulse, EndEvent)
- SSObj:RotoSet(StartRoto, EndRoto, Time, Loop, EndEvent)
- SSObj:Update()
- SSObj:Draw(offsetx, offsety)
- SSObj:Hide()
- SSObj:Show()
- SSObj:Move(x, y)
- SSObj:Translate(x, y)
- SSObj:AttributesSet(Attributes)
- SSObj:AttributesRemove(Attributes)
- SSObj:AttributesAdd(Attributes)
- SSObj:Clone(CloneBrush, Hardware, IsLayer)
- SSObj:Free()
- SimpleSprite.Collisions.WithMouse:Set(OnCollision, OnCollisionStart, OnCollisionEnd)
- SimpleSprite.Collisions.WithMouse:Clear(OnCollision, OnCollisionStart, OnCollisionEnd)
Complex Sprite Object
These are sprites with a multiple frames an d multiple animation sequences.
This object includes all the SimpleSprite's methods.
- ComplexSprite:Create(engine, name, layer, attributes, filters, animations)
- CSObj:AnimStop()
- CSObj:AnimResume()
- CSObj:AnimStart()
- CSObj:Update()
- CSObj:AnimFrameNext()
- CSObj:AnimFramePrev()
- CSObj:AnimSetSequence(sequence, EndEvent)
- CSObj:Draw(offsetx, offsety)
Particle System Object
- ParticleSystem:New(engine, layer, emitter, gravity, textures, partinfo, Rate, Active, IsLayer)
- PS:EmitON()
- PS:EmitOFF()
- PS:Move(x, y)
- PS:Free()
Particle Object
- Particle:Create(PartSys)
- Part:Update()
INCLUDED TESTS as functions
TEST_01_Particles_And_Layers()
Shows how you can build a particle system using layers, here it is to have a quick idea:
Code: Select all
/**** EXAMPLE 01 *********************
* Using Particle System with Layers *
*************************************/
; Enable the layers system
EnableLayers()
; Create a Sprite Engine
Local se = pSpriteEngine:Create()
; Disable Y Sprite Sorting
se:YSort_Set(False)
; Load 2 brush we will use as particle for the first system (ps)
Local bid1 = LoadBrush(Nil, "resources/blob.png", { LoadAlpha = True })
Local bid2 = LoadBrush(Nil, "resources/blib.jpg")
; Now we create 3 particle systems
Local ps = ParticleSystem:New(se, 0, { x = 400, y = 300, Rate = 40, Quantity = 1 }, { y = 0.01, Velocity = 0.01 }, { Brushes = True, Items = { bid1, bid2 } }, { Life = 3000, LifeVar = 2000, Scale1 = 1, Scale2 = 0.1 }, 15, True, True)
Local ps2 = ParticleSystem:New(se, 1, { x = 250, y = 300, Rate = 9, Quantity = 1 }, {}, { Brushes = False, Items = { "resources/blib.jpg" } }, { Life = 2000, AngleVar = 40, Angle = 10, Roto1 = 20, Roto2 = 90, Scale1 = 1, Scale2 = 5 }, 20, True, True)
Local ps3 = ParticleSystem:New(se, 2, { x = 150, y = 300 }, {}, { Brushes = False, Items = { "resources/nuvola.png" } }, { Life = 1000 }, 10, True, True)
; This interval is needed to update constantly the particles
Local rendering = SetInterval(Nil,
Function()
; Attach one particle system to the mouse pointer
ps.Emitter.x = MouseX()
ps.Emitter.y = MouseY()
; Updates all defined sprites
se:All_DrawUnorderedInv()
EndFunction , 15)
; Wait for events until ESC key is pressed
While Not(IsKeyDown("ESC"))
WaitEvent()
Wend
Shows how you can build a particle system using the Double buffer
TEST_03_SimpleSprite_And_Layers()
Shows how to build a particle system and a simple sprite using layers
ABOUT THE INCLUDED EXAMPLE
The included example shows in details how to build a particle system (as requested by @Bugala), all parameters are commented and explained.
DOWNLOAD
Download the library from here
This library is FREE but donations are welcome, especially if you need more docs, examples and backporting of the new features added in the GLGalore version.
It would be a great help for me if you could consider the possibility to support me on Patreon, I've updated the rewards adding more stuff!
My treasure box isn't empty yet, stay tuned!
----------------------------
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: My new documentation site and about where I'm heading :)
Very interesting project, looks great!
Re: My new documentation site and about where I'm heading :)
Hello all!
I've published a video showing my DemoEngine for Hollywood, you can see it here :
https://youtu.be/m5IrJiZzEDo
The quality is not very high because my notebook is not fast enough to run the demo showcase and the recording software at the same time so I've reduced the demo frame rate.
I've used this library to make a demo for the IndieGO! campaign, here is the demo running on a Raspberry Pi3 :
https://www.youtube.com/watch?v=b54VqHmwBOo
List of classes and methods available at this time:
CLASS DEng
CLASS DEng.Twister
CLASS Deng.Plasma
CLASS DEng.BMFont
CLASS DEng.BMFText
CLASS DEng.Shape
CLASS DEng.Brush
CLASS DEng.RainbowLine
CLASS DEng.Starfield
CLASS DEng.ScreenBuffer
CLASS DEng.RotoLines
CLASS DEng.Hyperspace
CLASS Deng.Waves
CLASS Deng.C64Raster
CLASS DEng.Checkers
CLASS DEng.DotScroller
CLASS DEng.MCircles
At this time the library is available under request (free for Patreons, asking a pay-as-much-as-you-like for all the others), the documentation has not been written yet because I'd like to know if there is interest before starting to write docs.
So if you are interested let me know!
I've published a video showing my DemoEngine for Hollywood, you can see it here :
https://youtu.be/m5IrJiZzEDo
The quality is not very high because my notebook is not fast enough to run the demo showcase and the recording software at the same time so I've reduced the demo frame rate.
I've used this library to make a demo for the IndieGO! campaign, here is the demo running on a Raspberry Pi3 :
https://www.youtube.com/watch?v=b54VqHmwBOo
List of classes and methods available at this time:
CLASS DEng
Code: Select all
.MakeGradient(colorlist, steps)
.MakeCopperBar(params)
.MakeGradientTable(colorlist, steps)
:new()
:init(params)
:setClearColor(ARGB)
:draw()
:objectAdd(object)
:objectRemove(object, free)
:objectCleanup()
:objectSwap(object1, object2)
:stackPushUp(object)
:stackPushDown(object)
:stackShiftUp()
:stackShiftDown()
CLASS DEng.Twister
Code: Select all
:new(params)
:draw()
CLASS Deng.Plasma
Code: Select all
:new(params)
:update() - called by :draw()
:draw()
:free()
CLASS DEng.BMFont
Code: Select all
:new(params)
:free()
CLASS DEng.BMFText
Code: Select all
:new(params)
:draw()
CLASS DEng.Shape
Code: Select all
:new(params)
:draw()
CLASS DEng.Brush
Code: Select all
:new(params)
:clean()
:hsplit(size) Return a table of brush objects
:vsplit(size) Return a table of brush objects
:hvsplit(size) Return a table (matrix) of brush objects
:free()
CLASS DEng.RainbowLine
Code: Select all
:new(params)
:draw()
:free()
CLASS DEng.Starfield
Code: Select all
:new(params)
:draw()
CLASS DEng.ScreenBuffer
Code: Select all
:new(engine, params, objList)
:draw()
:free()
CLASS DEng.RotoLines
Code: Select all
:new(params)
:draw()
CLASS DEng.Hyperspace
Code: Select all
:new(params)
:draw()
:free()
CLASS Deng.Waves
Code: Select all
:new(params)
:draw()
CLASS Deng.C64Raster
Code: Select all
:new()
:draw()
:free()
CLASS DEng.Checkers
Code: Select all
:new(params)
:draw()
CLASS DEng.DotScroller
Code: Select all
:new(params)
:draw()
CLASS DEng.MCircles
Code: Select all
:new(params)
:draw()
:free()
So if you are interested let me know!
----------------------------
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
[Allanon] Fabio Falcucci | GitHub for recent works | Support me on Patreon for Hollywood libraries | ☆★ All my links ★☆
- airsoftsoftwair
- Posts: 5443
- Joined: Fri Feb 12, 2010 2:33 pm
- Location: Germany
- Contact:
Re: My new documentation site and about where I'm heading :)
That's very cool, the return of the demo maker! I think this product could be marketed as the first demo maker on the Amiga that is RTG-compliant and doesn't bang the hardware