Construct 3 suggestions & ideas

Suggest and vote on ideas for Construct 3! Please note this is only one aspect of planning. We do not guarantee any features here will be implemented, even if they are top-voted ideas. The aim is just to collect feedback. Remember to search for existing submissions before adding an idea, describe your ideas as comprehensively as possible, and vote for plausible ideas that are well thought out. Please see our full guidelines on suggesting features.

5 VOTE

Add Skew action to Sprites, Text, Drawing Canvas

Skewing Sprites and Text is a very useful feature that would be a nice addition to the Action system:

i.e.
- Skew Top -> +/- 10 Degrees

- Skew Bottom -> +/- 10 Degrees

 

That example is defined as an action to skew either the top or bottom of the object (Text, Sprite, DrawingCanvas) by the input degrees.  Access to the vertices of the objects quad could accomplish this as well but that is not friendly to the action system.

 

This effect is very useful when trying to skew text for an isometric view which is currently very difficult to accomplish.

 

I have created a system with the Drawing Canvas to skew text by:

1- Pasting text to the canvas and create snapshot

2- Write each pixel of the snapshot to an array and clear the snapshot pixels

3- Write each pixels from the array to the snapshot but SKEW the x position by adding a skew value to it (simulates degrees of skew)
4- Copy snapshot back to the canvas

 

I had to use the array intermediate step as moving pixels on the snapshot conflicting with future iterations of the pixels in that snapshot.  
Also, once the skewed text was written to the canvas, I could not ROTATE the canvas to align the text with an isometric grid.

 

In the end, the effect I could not easily create is:
1- Skew Text
2- Rotate Text to align to isometric view

  • Scott
  • Sep 3 2019
  • No status
  • Attach files
  • NetOne commented
    18 Sep 09:21

    I would say dont limit it to skew.   Just keep it to an option to distort sprites in any direction (in editor , and at runtime)  by manipulating bounding box corners.  Its probably one of the best suggestions on here.