Texture Page Builder for GameMaker.
Sprites used are by both kenney's pixel vehicle pack and z11z11 from opengameart.org
Join the GameMaker Kitchen for help!
Texture Page Builder for GameMaker
License: MIT License
Texture Page Builder for GameMaker.
Sprites used are by both kenney's pixel vehicle pack and z11z11 from opengameart.org
Join the GameMaker Kitchen for help!
Currently there's no way for GameMaker to create external tilesets. With a shader and a custom vertex buffer, I could implement a custom tileset system that feels almost as native as GameMakers...
Collage was designed with the whole purpose of being able to save and load contents from a buffer. Intended as a sort of cache.
The arguments are inconsistent between what's being called and what's being processed. _uvX and _uvY are correct, but _uvW and _uvH point to _right and _bottomt inside method.
var _uvs = new __CollageImageUVsClass(_texPage, owner.__texPageCount, _uvX, _uvY, _uvW, _uvH, _drawX, _drawY, _ogW, _ogH, _xOffset, _yOffset);
This seems to have fixed it:
function __CollageImageUVsClass(_texPageStruct, _texPageNum, _left, _top, _width, _height, _trimLeft = 0, _trimTop = 0, _ogW = 0, _ogH = 0, /*_cropRotate = 0,*/ _xOffset = 0, _yOffset = 0) constructor { left = _left; right = _left + _width; top = _top; bottom = _top + _height; trimLeft = _trimLeft; trimTop = _trimTop; //trimRight = _trimRight; //trimBottom = _trimBottom; //rotate = _cropRotate; normLeft = (_left / _texPageStruct.__width); normRight = ((_left + _width) / _texPageStruct.__width); normTop = (_top / _texPageStruct.__height); normBottom = ((_top + _height) / _texPageStruct.__height); normWidth = normLeft+normRight; normHeight = normTop+normBottom; originalWidth = _ogW; originalHeight = _ogH; xPos = _xOffset-_trimLeft; yPos = _yOffset-_trimTop; texturePageNum = _texPageNum; texturePageStruct = _texPageStruct; }
This will fetch a list of images that was recently added (from .Add*
)
Mimic Premultiply Alpha in the Sprite settings, to allow premultiplying images before being drawn onto Collage.
Saving extra space in texture pages by rotating images to best fit them onto the texture page.
Collage only supports synchronous building. Which is plenty fast as is, but still would be great for Collage to be able to spread its load across several of frames.
This is particularly important for HTML5 and any images that are loaded from the web. Right now Collage does not work with sprites that were loaded on the web.
Self explanatory. Right now Collage bakes the x
and y
into width
and height
, amongst other things that GameMaker does not do. Additionally, I'd like to fetch the results from an array instead of only a struct.
You mentioned needing proper getters and setters here and that there are likely other locations where this might occur.
GameMaker allows sprites to be put onto their own texture page. While Collage can easily add support for this, I just haven't added the entire implementation for it as of yet. (It's currently half done.)
Currently live-reloading is in (aka image replacement). However, images cannot be removed without removing all of the texture pages first.
This'll add in a mode for Collage instances to be frozen, when there's no more images needed to be added to it. This will perform a possible number of things.
-Stores the image data in a more linear fashion (as opposed to passing and accessing struct data for specific UV info/texture pages, as scoping into other structs is slow, but for Collage it's super easy to work with for dynamic texture pages)
-Converts the surface + buffer into a sprite to let GameMaker handle it (no needing to check the surface)
-Disallow saving/loading, packing images, and anything else that involves surfaces + buffers (technically some aspects of this is still possible, but I'm disallowing it mainly due to concerns on conversion to and from surfaces/sprites.)
Allows specifying that a sprite and its sub images remain on the same texture page no matter what. (Ensuring that they get thrown onto another texture page for convience sake). If they cannot fit on even a completely blank texture page, they'll get discarded.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.