mOOnpunk's Recent Forum Activity

  • Ashley

    Do you intend to add 3d shader support to construct at some point?

    It would be neat to do things like water.

  • I'm testing the plugin with a free ui kit i found on itch.io.

    https://ci.itch.io/cartoon-ui-pack

    It has highlighted some issues, so i've been going over each element and adding missing features, like scale properties for high res graphics, to make it as easy as possible.

    I've also added headers, which you use with actions Begin header, elements, End header. It allows to ignore clipping and offset its xy position so you can create banners and irregular shapes, all while respecting the easy layout system.

    Menus can now also be dragged, unless its set to not draggable, or the menu is locked.

  • Great video. Can't wait to see how it progresses.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Too many projects lol.

    The weakest link for me has always been ui.

    Its predominately for myself, but I'll release it for anyone else who might find it useful.

    I'm open to suggestions or feature requests.

  • You can now add "juice" to menu objects.

    Since objects like buttons are made up of components, you select them first by the element name, then an index, so index 0 is usually the background, or trackbar, index 1 might be the thumb, and index 2 might be the text etc, depending on the element.

    Simply set the scale or x/y offset on the hover or pressed state, tween type and duration.

    -> eui: Set element "tab1" component 1 juice (Hover: 1.2x, 0x/0y | Press: 1.2x, 0x/0y | Dur: 0.15s, Back Out)
    -> eui: Set element "tab1" component 3 juice (Hover: 1.0x, 0x/10y | Press: 1.0x, 0x/10y | Dur: 0.15s, Back Out)
    -> eui: Set element "tab1" component 4 juice (Hover: 1.0x, 0x/10y | Press: 1.0x, 0x/10y | Dur: 0.15s, Back Out)
    -> eui: Set element "tab1" component 5 juice (Hover: 1.0x, 0x/10y | Press: 1.0x, 0x/10y | Dur: 0.15s, Back Out)

    I also added menu transitions, those are optimal effects when a menu opens or closes. For now just fade. I set it slow to make it more apparent in the video.

    -> eui: Set menu "Menu2" transition to Fade over 0.5s
  • Added tab areas as an optional addition to tab slider buttons (which can be used without it as regular buttons).

    simply add Begin tab area action, then Begin tab page (specifying the button option id), use all the existing actions for adding text, images, buttons, rows etc, then End page, End tab area, and the content appears in its own clipped area.

    You can either specify the area hight by the tallest content page, or set a max height, and use a scroll bar.

    -> eui: Add Tabs "tab1" '"tab 1,tab two,tab three"' (Start: 0, Dur: 0.2s) using Track:track, Thumb:thumb, Text:menu_text, Overlay:track2 (Use: True) [Grow: True, Margin: 20] (Text Gap: 40, Gap: 30, L: 20, R: 40)
    -> eui: Begin Tab Area linked to "tab1" using track (Mode: Fixed with Scrollbar, Height: 300px) (Scrollbar Track:track Thumb:thumbButton W:40 Anims: "default"/"hover"/"pressed") (Padding: T:0 B:0 L:20 R:40, Gap Above: 20)
    -> eui: Begin Tab Page for "tab 1"
    -> eui: Add text "Text inside tab 1." & newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here." (Gap: 20, Left: 60, Right: 40) using menu_text
    -> eui: End Tab Page
    -> eui: Begin Tab Page for "tab two"
    -> eui: Add text "Text inside tab two." & newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here."& newline & "Some more text goes here." (Gap: 20, Left: 60, Right: 40) using menu_text
    -> eui: End Tab Page
    -> eui: End Tab Area (Gap Below: 20)
  • Added Begin column and End column actions to complete the layout system. These allow you to continue adding ui elements under each other when in a row.

    Example

    Begin Row, add text, Begin column, add text, add text (would place the 2 text in a column), End column, End row.

    -> eui: Begin horizontal row with columns: "1,1"
    -> eui: Add text "Text for first in row." & newline & "Some more text goes here." (Gap: 50, Left: 60, Right: 40) using menu_text
    -> eui: Begin column (Gap L: 0, R: 30)
    -> eui: Add text "text for second in row" (Gap: 50, Left: 20, Right: 30) using menu_text
    -> eui: Add text "This text goes below the second text in the row, they share a column." (Gap: 50, Left: 20, Right: 30) using menu_text
    -> eui: End column
    -> eui: End horizontal row

    Also added a Dial button, which allows you to click and cycle through a series of options, each with their own default, hover and press animations.

    -> eui: Add Dial "dialbtn1" using dial_button and menu_text (Text: '"dial button text test."&newline', Pos: Left of Dial, Show Val: True) (Options: '"dial1,dial2,dial3"', Start: 0) (Suffixes: Hover '"_hover"', Press '"_pressed"') (Gap: 50, L: 50, R: 70)

    Also added a Slider Tab button, allowing you to create a series of button options like "menu1 Menu2 Menu3" and have an image slide to the selected text option.

    -> eui: Add Tabs "tab1" '"tab 1, tab two, tab three"' (Start: 0, Dur: 0.2s) using Track:track, Thumb:thumb, Text:menu_text, Overlay:track2 (Use: True) [Grow: True, Margin: 20] (Text Gap: 40, Gap: 30, L: 20, R: 40)

    Lastly i did a lot of changes to the framework, making it a single global object, so i could handle multiple menus easily.

    There are actions to lock menus, and focus them.

  • You've made some great plugins for 3d so far, and for free, its a shame you don't get more appreciation from the community for your hard work. I thought your Box3d plugin in particular would have gotten more interest.

    Anyway thanks.

  • Thanks.

    Honestly i dont think a tool is needed, its so simple to use. You just run the game and see the results.

    One of my main aims is to move away from having to design the ui in a visual way like in the layout, and have it done procedurally. I guess it wont suit everyone.

  • I've added a toggle button.

    Use an object for the button track, and another for the slide button, complete with animation for on/off and hover states.

    -> eui: Add Toggle "slider1" using track, thumb, and menu_text (Text: '"slider test of the text test"' Right of Toggle Gap: 50px, On: False, W/H: 150x30) (Track: "default"/"hover") (Thumb: "default"/"hover"/"pressed"/"hover") (Dur: 0.2s) (Gap: 50, L: 50, R: 50)

    I've also added a progress bar.

    It uses an object for the track, another for the bar, and another for a optional overlay. It then tweens to the target value.

    -> eui: Add Progress Bar "progress1" '"Progress bar"' (Val: 20->50"%", Min/Max: 0/100, Dec: 0) (Pos: Center Overlay, W: 60, Text Gap: 20, H: 50) (Dur: 1.0s) using Track:track, Bar:progress_TB, Overlay:track2 (Use: True), Text:menu_text (Gap: 50, L: 50, R: 60)
  • Added checkboxs.

    You have optional left or right sided text, or none at all.

    -> eui: Add Checkbox "cbox1" using menu_checkbox and menu_text (Group: '""', Text: '"check box"' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 50, L: 50, R: 50)

    You can then turn them into radio buttons (where you can only check one option in a group), by simply adding them to a group name.

    	-> eui: Add Checkbox "cbox1" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio one."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 50, L: 50, R: 50)
    -> eui: Add Checkbox "cbox2" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio two."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 30, L: 50, R: 50)
    -> eui: Add Checkbox "cbox3" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio three."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 30, L: 50, R: 50)
    

    I also added panels. Panels work similar to the "Set next element background", except rather than putting the background over a single item or row, they wrap multiple elements. Simply add a begin panel action and an end panel action.

    -> eui: Begin panel using track (Padding: T:0 B:40 L:30 R:50, Gap Above: 50)
    -> eui: Add Checkbox "cbox1" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio one."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 50, L: 50, R: 50)
    -> eui: Add Checkbox "cbox2" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio two."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 30, L: 50, R: 50)
    -> eui: Add Checkbox "cbox3" using menu_checkbox and menu_text (Group: '"test"', Text: '"radio three."' Left of Box, Checked: False) (Anims: "default"/"default"/"pressed"/"pressed") (Gap: 30, L: 50, R: 50)
    -> eui: End panel (Gap Below: 0)

    Does anyone know of a good free ui graphics pack i can use to test the plugin?

  • I'm working on a new type of ui system.

    In the past i've experimented with polygon based plugins, and css based plugins, each have their pros and cons.

    Polygons are great for flat graphics, but text must be rendered as a texture causing large memory size. Css needs its own layer type and is finicky. Both are a pain when it comes to rending image graphics. Both allow for custom clipping.

    When i made the EasyMask plugin a few months ago i thought i could expand on it and make a ui system that uses Construct's own objects like sprites, 9 patch and text objects.

    There are already plugins most noticeably proUI that do this, however it requires lots of individual behaviours and a controller plugin, and you still have to link all the objects and set them up in the editor.

    My new plugin uses just one plugin, and the ui is created with events. It's super simple to use.

    Create the menu window.

    -> eui: Create menu at (200, 10) width 500 using menu_back
    
    -> eui: Add title "THIS IS A TEST TITLE" (Gap: 20, Underline: True) using menu_title_text

    Here it is using a 9 patch instance for the menu image. All clipping is set up automatically.

    The other action simply sets some title text.

    The menu is constructed row by row as you add new actions.

    Add some text.

    -> eui: Add text "This is a test of some text to go in our menu." (Gap: 50, Left: 30, Right: 50) using menu_text

    Again selecting a text object.

    Since the menu is constructed action by action, what happens if you want to add objects side by side?

    Simply make a dedicated row.

    -> eui: Begin horizontal row with columns: "1,1"
    -> eui: Add text "Text for first in row." & newline & "Some more text goes here." (Gap: 50, Left: 60, Right: 40) using menu_text
    -> eui: Add text "text for second in row" (Gap: 50, Left: 20, Right: 30) using menu_text
    -> eui: End horizontal row

    The begin row action breaks the width of the menu up into areas based on percent, or in this case ratios. "1,1" making 2 areas, each 50% of the menu width. Here we add text which are now arranged side by side. The end row action means the next object will be arranged below the row again.

    Objects or entire rows can be given a background of their own with the Set next element background action.

    -> eui: Set next element background to menu_back (Padding - T:40, B:40, L:40, R:50)

    The plugin supports labels that make it easy to display values including currency formatting.

    -> eui: Add label "Cost ""=" (Spaces: 20) "£"50000.23"." (Currency: True) (Gap: 50, L: 30, R: 20) using menu_text

    You can make a variety of buttons too. Here the checkbox style button uses a sprite instance. Each button state is an animation.

    -> eui: Add side-button "menuB" '"A test of a checkbox style button."' using menu_checkbox/menu_text (Anims: "default"/"hover"/"pressed") (Gap: 50, L: 30, R: 50)

    And i have also added sliders with a number of options. Again made up of 9 patch and sprite for the slider thumb.

    -> eui: Add slider "slider1" '"slider"' (Val: 0, Min/Max: 0/100, Step: 0, Decimals: 0, Show: True '"%"' Width: 100) using track/thumb/menu_text (Anims: "default"/"hover"/"pressed") (Gap: 50, L: 50, R: 100)

    Regular buttons are also supported. Here row is used again to easily align them side by side.

    -> eui: Begin horizontal row with columns: "1,1"
    -> eui: Add regular button "btn1" labeled "Open" (Anims: "default"/"hover"/"pressed") (Gap: 30, L: 50, R: 30) using regButton and menu_title_text
    -> eui: Add regular button "btn2" labeled "Close" (Anims: "default"/"hover"/"pressed") (Gap: 30, L: 50, R: 30) using regButton and menu_title_text
    -> eui: End horizontal row

    Finally you can get menu clicks with a simple condition.

    + eui: On menu transition to "menuB"

    Still lots to add.

mOOnpunk's avatar

mOOnpunk

Early Adopter

Member since 29 Mar, 2017

Twitter
mOOnpunk has 8 followers

Trophy Case

  • 9-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • RTFM Read the fabulous manual
  • Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

18/44
How to earn trophies