-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|518|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
SoCoder -> Blogs Home -> Blogs

Created : 25 April 2016
Edited : 25 April 2016
System : Linux

Pixel editor

New features

I spend some time thinking what I could create to go with the pixel editor. I thought of one thing that is easy to create.

I want to create a small checkbox next to a color in the color section that will make the colors of that color indestructible. This would mean that if you draw ontop of it, it wil not get replaced. Right click on the checkbox disables all the others and enables the selected one.

I also have been thinking of creating a line memory feature. What would happen is that every line you draw gets stored in memory. But I need to spend more time thinking this through. Would they store the previous tile underneath the line to? And what if there is another line below it? Or would they just be on another layer?

ALso I have been thinking of creating isometric editing features. But I do not know if I wil just create a new editor project specific for isometric art. (IsoPixelEdit)

I also need to think through what I will do with the sheet width and height. Will I need to create a zoom in/out feature and scrollbars?

Also, the more features the editor gets, the more need there is to create certain buttons in stead of text and keyboard shortcuts.

It might also be wise to improve the current code base so it can be easily be put together and taken apart. I still need to spend more time thinking about that.

I also am thinking of making a message system (textline on the screen) that shows useage tips/shortcuts and faq and solutions and info on enabled features.

For now I can work on the indestructible color thing. I want to make a barebone version where I create it and test it. Then I can insert it into the larger project(s)

I also just got the idea to create a feature where you can load/display a photo on the editor. You would then be able to turn photo's into pixel art by putting the pixels based on the color of the photo. You would draw ontop of the photo, where the pixels then would be colored rectangles.

I am working from my github account (pakz001)



Monday, 25 April 2016, 14:34
Doing a GUI based thing can be tricky when using Blitz, but that doesn't mean it'll be impossible.
Just be sure that everything rescales as the user switches resolutions or changes the window's size.
Keep the GUI icons the same size, and scale everything else to fit.

File loading and saving dialogues can be done using BMax's RequestFile dialogue boxes, so that's easy enough, but you'll probably have to create some kind of text input gui-box for any kind of text dialogues. (Best to do this, now, and then it's ready when you need it.)
Also numerical boxes that you can click+drag to define sprite sizes and whatnot.

Also, be sure to make use of Pixmaps/Images so you don't end up having to draw hundreds of pixels, and instead can buffer what's been drawn.

Adding layers, too, would be useful. My Daily Playdude Pixelarts are usually on at least three layers.. The topmost holds the Pixelarf Scrawl, which doesn't ever change. Under that is the main art, and below that is the background layer.
By switching between the layers, I don't need to lock certain colours, I can simply draw under/over other parts of the image.
Monday, 25 April 2016, 16:28
Is that a merge down something? Drawing the top layer last?

I have not really researched layers yet. I think I will spend some time watching how layers are used in tutorials on youtube.

It's programmed in Blitz Plus by the way. No pixmaps.
Monday, 25 April 2016, 23:40
I imagine it's simply a 3D array, with X/Y being your usual grid of pixels, and then Z being the layer.
Cycle through all the layers.. Redraw with the bottom layer first, and the top layer last. It's a pretty simple way of doing it, really, and you can additionally shift the layers up and down afterwards.

(You'll probably also want to also store different image buffers for each layer)