mriale / PyDPainter

A usable pixel art paint program written in Python
GNU General Public License v3.0
544 stars 27 forks source link

Hidden functions of DPaint III not implemented #139

Closed Sleuthgame closed 1 month ago

Sleuthgame commented 3 months ago

By digging into the Dpaint III documentation, I found various advanced "hidden" functions (often with a key) that seem very useful. They're not well known, so I don't think anyone has thought to point them out or reproduce them.

FILL TOOL Holding down the Alt key when you click with the Fill cursor, fills outward to the background color. In other words, the fill spreads outward until it reaches areas of the current background color. This works well in combination with the Tint fill setting to change the color of a gradient. (that's a banger !) 💯

FILLED FREEHAND SHAPE TOOL Holding down the Alt key as you click on the Filled Freehand Shape tool causes the tool to paint shapes that are filled and then outlined with the current brush using the settings of the Spacing requester. If you use a custom brush as your current brush, it is possible to paint shapes that are filled with one color and outlined with another. The outline is painted by tracing the shape with the current brush. Note that the shape is traced by the brush handle; if the handle is offset from the brush, the outline will be offset from your filled shape. (Waouh ! Never heard of that)

CURVE TOOL Holding down the Ctrl key as you paint a curve, causes the curve to leave "traces" as you paint. Ellipse and polygons also had this option, although I wonder at what point, given the way they were drawn. We'd have to check on the real DPaint program.

BRUSH SELECTOR Holding down the Shift key while selecting a brush with the rectangular Brush Selector will constrain the brush to be a square. This means that it will be the same number of pixels high as it is wide. Because the pixels of the Amiga display are not square, your brush may not appear square. If you want the brush to appear square, tum on the Be Square option in the Prefs menu before you select the brush. This is a very useful function for sprite sheets in games. I remember it very well and it's the same for rectangles.

mriale commented 3 months ago

This is a great collection of stuff I forgot about or didn't get to. Thanks for including these for the sake of completion.

I did just add the Curve Ctrl key traces in d2f5e2f16dcebfb7b6f58374d6d52d592234c02c.

Sleuthgame commented 3 months ago

I know we have a selective memory, but these functions triggered by ALT are either totally unknown to me or I've forgotten them.

Thanks for the Curve trace. I'll check out.

Sleuthgame commented 1 month ago

It's good for the last two and it's documented.

MetinSeven commented 1 month ago

Good points. I remember a few of these from my DPaint days. 💚

Sleuthgame commented 1 month ago

Hi ! I'm a big fan of CTRL key drags. I'm very happy to have them in PYDPTR. On the other hand, I must have missed the ALT key, probably because I didn't read the documentation properly. But it's not re-implemented yet.

mriale commented 1 month ago

ALT-fill is working now. I don't think I ever used back in the day. Now if only I had the tint fill mode working!

Sleuthgame commented 1 month ago

It works great! Super useful.

Sleuthgame commented 1 month ago

Doc is updated.

mriale commented 1 month ago

Added an outline when ALT-clicking on the Filled Freehand tool. Looks interesting: image

I had misread the description the first few times. I was pressing ALT while drawing and not seeing any effect in DPaint III. Later I re-read the description and saw that it it said to ALT-click on Filled Freehand tool. I duplicated this functionality in PyDPainter. I also added it to the tool tip.

Sleuthgame commented 1 month ago

I was also surprised to see that ALT changes the behavior of a tool when you select it. I don't think that's very DPaint-like behavior. I'd also have preferred ALT when drawing.

It's like ALT on FILL, it's more coherent.

Sleuthgame commented 1 month ago

Does it also include the current brush and stroke attributes, or is it too complex? A little more and you've got Illustrator for pixel. ;-)

mriale commented 1 month ago

The current brush/stroke attributes are maintained: image

However, color cycling or every nth dot don't look that great since it draws a line for each point in the polygon, and modern systems are so fast that the points are very close to each other. You have to draw really fast for it to to make an interesting border. But that's the way it is on DPaint III on an emulated A4000 as well.

mriale commented 1 month ago

Also added CTRL traces for the ellipse tool.

Sleuthgame commented 1 month ago

Watch this ! I found a way of using it.

image

Sleuthgame commented 1 month ago

Also added CTRL traces for the ellipse tool.

OMG ! Thanks you ! image

Sleuthgame commented 1 month ago

I'm updating the tollobox.md file with illustrations.

image