WackyToaster's Forum Posts

  • Reject heightmap, embrace pythagoras. :)

  • Meh, depends on the exact usecase. Tweens work perfectly fine and in the end also run on the same math essentially. It can be useful to understand the math behind, but not required.

  • Check out the Tweening addon & value tweens.

    construct.net/en/make-games/manuals/construct-3/behavior-reference/tween

  • You're in luck, I just recently tinkered around with this.

    wackytoaster.at/parachute/3dPlatformerSlopes.c3p

    The code currently only works for one direction, but should be able to be adapted to work for all directions.

    It boils down to setting the players Z value to

    clamp(abs(slopes.BBoxLeft - player.BBoxRight), 0, slopes.Width) * slopes.ZHeight/slopes.Width

    while overlapping, and you'll need to block off access from the sides of the wedge.

    It's just that this only works for a wedge going up towards the right. For the left you need to switch the bboxleft/right and for up and down bboxtop/bottom. Not sure about wedges with other rotations but you probably have to use some distance expression for that.

  • I'm pretty sure I've seen several bugs that happen when scaling something to exactly 0. My only guess is it's possibly a floating point error and the sprite actually ends up scaling to -0.00000000017 or something, flipping/mirroring it.

  • I just noticed that there are no options/expressions for getting effect parameters. Is there a reason for that? In general I feel like effects are handled so... detached from everything else. The way you access the parameters and everything. One can work around this limitation with javascript, though it's kinda inconvenient. (The process is similar for layers/layout effects)

    let sprite = runtime.objects.Sprite.getFirstInstance();
    
    let effect = getEffect(sprite.effects, "AdjustHSL");
    
    console.warn(effect[0].getParameter(2));
    
    function getEffect(object, name) {
     return object.filter(
     function(object){ return object.name == name }
     );
    }

    And yes, I could shuffle around with variables but it just seems even more inconvenient than with javascript. I think this should just simply be possible with events.

  • 1. According to this developers.google.com/identity/sign-in/web it seems to just need a few lines of code. Considering in C3 we have access to HTML/Iframes/Javascript I think it should be possible, but I haven't tried this way. I have made a login with firebase though. (See point 3)

    2. I'm not aware that anything major changed in that regard with C3. You still have stuff like the Anchor behavior that are supposed to be used for that. The new HTML plugin might be of great use I think, for displaying certain stuff like lists responsive.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/html-element

    3. I see two options: Offer a backup button that downloads the safe file to the device outside of local storage. Or have a database online that (also) stores the saves in case the device explodes (or something like that) You could look into google firebase for that which I think would mesh well with the google login. Or you can run your own server (either way will cost money)

    4. Short answer, yes: construct.net/en/make-games/manuals/construct-3/plugin-reference/mobile-iap But read through carefully since there's some caveats to this.

    5. If it supports javascript, I'd say most likely yes. I haven't tried though.

  • C3 works offline for about a week. I recommend trying it out by disabling your internet connection beforehand just to make sure everything is in order and working as expected.

    construct.net/en/make-games/faq

  • I've filed 96 issues so far. It really isn't a big deal to do usually, takes like 2 minutes. And it improves Construct for everyone.

  • Lmao yeah, understandable. But "Fart" is an acronym of "Find And Replace Text" so... I've gotten quite some use out of this little tool. :D

  • jobel

    wackytoaster.at/parachute/steamworksPrepare.zip

    All you have to do is drag&drop your exported zip on this .bat and it will automatically:

    1. unzip everything

    2. run icon updater (you'll have to press "ok", couldn't find a workaround)

    3. copy steam_api.dll and sdkencryptedappticket.dll into the package.nw

    4. add steam_appid.txt

    5. add --in-process-gpu

    6. package everything neatly up for upload to steam

    You may not need fart.exe if you add the args when you export it in construct.

    Feel free to adapt/bugfix it but pls also share it back! No warranties ¯\_(ツ)_/¯

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • The way I did it is to fade to a loading screen (global layer) on layout A, go to layout B, then fade the loading screen out again. It's not technically needed but the instant transition felt kinda jarring.

  • Put the bezel on its own layer and set the layer scale rate to 0. (In the layer properties)

  • I don't think lag would cause the audio to desync. How exactly are you checking the timestamps? Because the audio object offers you Audio.CurrentTime or Audio.PlaybackTime(Tag) which you can compare against your timestamps. Even if the audio lags these should be consistent with timings.

    I wouldn't go with the high pitched pings, that sounds terribly hacky.

  • I don't think there is such a thing. You can copy&paste stuff from the eventsheet into a texteditor and get something like this. but it's questionable how helpful that is. (Rightclick > Copy as text)

    + Keyboard: On R pressed -> System: Reset global variables to default -> System: Restart layout