WackyToaster's Forum Posts

  • What are you trying to display inside the iframe?

  • I've been tinkering a bit more with the feature, but since I wanna do more stuff in javascript I was bit limited since there's no API for the flowchart (yet). But the point is I just couldn't resist finding some ways to circumvent the restrictions with the power of javascript. Thought I'd share.

    The ~ denotes an option with an expression inside and I use eval() to then execute the logic inside the value. If the result is an empty string, the option is not added.

    	async function addOption(optionName, optionValue) {
    
    	var evalOption = /^~/i;
    	
    	if(evalOption.test(optionName)) {
    		optionValue = eval(optionValue);
    		if(optionValue === "") return;
    		await globalThis.UImain.insertContent(`<div class="option" id="${optionName}">${optionValue}</div>`, "html", true, ".options");
    	}
    	
    }
    

    It's moderatly elegant I'd argue unless you're scared of eval() lol.

  • The drag & drop behavior already only drags a "specific" sprite (the top-most sprite based on z index), at least when I tried it.

    It's a bit unclear what exactly you're trying to do. Do you want to drag a different sprite than the one that was clicked?

  • Yeah, got bricked by this change in the recent beta to also save flowcharts. The error actually changes slightly if you add a flowchart to the project.

    Flowcharts: save and restore state with savegames

  • The issue with tokenat is that you don't know how long the room name is. You can use the "right" expression to get the last character of any string.

  • Just a round of exposing more ACE from existing plugins and behaviors would improve C3 so much already.

    I agree. As much as I like shiny new things, it's important to make sure everything else is as robust and versatile as it possibly can be. I do think the recent updates actually have been doing quite well in that regard (HTML Layers, Dynamic layers, access to the collision engine in js are all improvements to already existing things) but of course there's still some stuff I'd like to see (e.g. ability to manually set/get(pick) the "floor" object of the platformer behavior)

  • I gave it a vote although it's not the best timing because I suspect this suggestion platform will be closed in favor of a new one in 2-3 weeks anyway. (As per yearly tradition)

    I think this would be a great update for tilemaps that would open up quite some interesting possibilities. Of course the shiny new thing often wins the votes, but sometimes an update to an "old" thing is just as important.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Whatever the project it needs to be something you'll passionately work on for twice as long as you think it will take. That last 20% is dangerous territory!

    Yes, the final strech is extremely daunting. For some reason it haunts you with doubts and it feels like there's no light ahead. I'm there currently but I think I handle it quite well for now. But it's a grind regardless.

    releasing the game for platforms I don't personally have access to since I don't have a good way to troubleshoot the problems.

    You can set up a virtual box with a linux and a mac install. It's fairly straightforward with a tutorial, just finding a mac iso is not that easy. Doesn't help with steamdeck though.

    IMHO this should be the most important thing in your roadmap, but it is just my opinion it's up to you.

    From what I gathered a very important part is apparently translation. So covering the big languages English, French, Italian, German, Spanish followed by Simplified Chinese, Japanese, Korean followed by Brazilian-Portugese, Russian and Turkish. I'd argue most linux users are savvy enough to run wine anyway, and doesn't the steam deck do that too anyway?

  • When I try to download it just says "invalid game" in a popup.

    Most likely issue is you might be using the wrong color expressions. There is one that takes values from 0-100 and one that is taking the classic rgb values from 0-255. So if you think you are using the 0-255 but the expression is using 0-100, the resulting colors will be brighter than you'd expect.

    rgbex uses 0-100, rgbex255() uses 0-255. rgb() is deprecated afaik.

    construct.net/en/forum/construct-3/general-discussion-7/rgbex-misleading-155134

  • You have a typo for this line. Should be 135 but you have 130.

    22.5° within 135 = down left

    If that doesn't fix it... not sure. Hard to tell from just the screenshots.

  • I think you have the right idea, you just need to add the 4 extra animations for the diagonals. So instead of within 45° you'd do within 22.5°

    22.5° within 0 = right

    22.5° within 45 = down right

    22.5° within 90 = down

    22.5° within 135 = down left

    22.5° within 180 = left

    22.5° within 225 = left up

    22.5° within 270 = up

    22.5° within 315 = up right

  • I don't think there's a build-in way to do this, you can however do this

    const sprites = runtime.objects.Sprite.getAllInstances(); // array of all "Sprite" instances
    const filtered = sprites.filter((e) => e.layer.name === "Layer 0"); // array of instances on "Layer 0"

    If you need all types of objects/sprites/9-patches from the layer, you can use concat to merge the arrays into one.

    developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/concat

  • Providing the Audio object property Enable multiple tags is enabled (it is on by default), then the tag string can include multiple space-separated tags, such as "player weapon" and "enemy weapon"

    So in your case it would be "jetPackSound ExtraTag"

  • Alright so I had some time to tinker a little bit more with it.

    - For my usecase which would probably be some kind of text adventure, this seems actually pretty ok to use. I don't know how unwieldy it gets if there's a ton of nodes.

    - On node enter does a lot of heavy lifting since most logic has to happen there. This would also include all the checks for "player health < 5...."

    - Branching is also possible with this by just adding a node that executes the branching logic on node enter and sends to the according next node

    - Some way to switch from flowchart node to associated triggers and back wouldn't be the worst idea

    One thing that I still think would be huge (this has been suggested already) are some kind of instance variables. 1. For the nodes themselves and 2. for each individual option. The current way to put extra data in is to add more outputs, even though the data is not an output. Imo this adds at the very least a bunch of visual clutter. It also has no way to associate the datapoints with the options. Something like "Option 1 has value 5 and Option 2 has value 10". I think this would fit in the properties bar just as it does for sprites. On the node, it could be hidden in some kind of dropdown, especially if you have many variables there.

    And I think it fits perfectly in line with the idea of flowcharts just being a type of data object. With the classic variable options to set/add/toggle/ + expressions

    FlowchartController.currentNode.variablename
    FlowchartController.currentNode.option("foobar").variablename
    

    Some other things I noted:

    - Reset flowchart does not trigger "on (any) node enter" though this might be by design (?)

    - I'd like to be able to resize nodes diagonally too. Right now it only allows horizontal or vertical.

    - Is there a way to access data from a specific node from anywhere? I don't see a way with something like a UID. Basically like a tag except tags can be non-unique so that might be an issue.

  • You can just use set text and reference the variable in the action. For example: