oosyrag's Forum Posts

  • dropbox.com/scl/fi/mje2da0yl061gkadpnt4a/heirarchyvisibilityexample.c3p

    It works. Why yours does not work nobody knows but you, and no one can find out without you sharing what you did.

  • To answer the question, no layouts do not run when switching between them.

    You can:

    1. Not use layouts. Just use layers and visibility, or different positions on the same layout. This may have memory issues, as the one of the main point of layouts is to unload unused resources between layouts. It might not though, depending on the scope of your game.

    2. Add "catch up" code to the start of your layout. You can check how much time has passed since you left the layout, and simulate/fast forward the progress that should have passed while you were not on the layout.

  • Try leaving a control area. Don't fill the entire viewport with the video.

    Try using an interactive layer on top of the iframe.

    Try using a timer or otherwise automatically triggered event to close the iframe.

  • The problem is more built in behaviors running every tick, smoothly, which doesn't match up with his animations running at 8fps.

    You can recreate any behavior with events or JavaScript, then run them at 8 frames per second with the condition every .125 seconds or. It's just gonna be a lot of work.

  • This issue has been around for a while.

    Use a combination of larger sizes and higher speeds to mitigate the issue.

    You can also use the los behavior raycast action to get the angle of reflection, to make your own physics with the bullet behavior instead. Depending on your game, the physics behavior is very often not the ideal behavior to utilize.

  • Use a set of helper sprites that can check your requirement/condition with overlap.

    Move them to each tile in your tilemap, check conditions, and if true place ledge sprite.

    Alternatively you can check these ledge grabbing conditions whenever your character collides with ANY tile while airborne, instead of just your ledge sprite...

    You should make a bug report on github with what you have regardless, this is not a good place to make a report if you hope to eventually have action taken.

  • Lower memory footprint by having a smaller pixel size of the source texture. Looks better when "scaled".

    Honestly pretty negligible relatively speaking, but it definitely has merits as a "best practice".

  • Have an instance variable for your bullet called "ownerUID".

    on fire ->

    player spawn bullet

    set bullet variable ownerUID to player.UID

    bullet on collide with player

    if player.uid not equal to bullet.ownerUID ->

    deal damage

  • You can use an invisible, thicker wall if aesthetics is a concern, and show a visible thinner wall over it.

    Depending on which behavior you're using, there may also be a "stepping mode" you can enable to bypass this problem at the cost of CPU performance.

  • construct.net/en/forum/construct-3/how-do-i-8/best-help-tips-forum-139528

    First make 3d fps game. Then add blood.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • construct.net/en/make-games/manuals/construct-3/plugin-reference/audio

    Is tag playing

    True if any audio with a given tag is currently playing.

  • Other method I remembered for having everything in one layout, besides using layers, is to use different, separated positions on the same layout (teleport/scroll to another screen or area)

    As mentioned, beware of memory issues. Layouts are useful for memory management - to separate what textures are loaded in memory at a time. Again it depends on your game. Some games push the limits of memory usage, some don't.

  • I recommend using an invisible "target" helper sprite , and having your mask object move to the target's location.

    If you use a helper object, you have many options, like spawning it in a container with the base object, pinning it, or using the move at angle action to position it.

    By math, the formula to get a point from a set distance and angle from another point is:

    Target.X = Origin.X + (distance/cos(angle))

    Target.Y = Origin.Y + (distance/sin(angle))

    Although you have to make sure not to divide by 0, and sin and cos can definitely end up as 0 so I'm probably missing something there...

    Edit: Brain no worky in the middle of night.

    Target.X = cos(angle)*distance+Origin.X

    Target.Y = sin(angle)*distance+Origin.Y

  • Yes, events no longer process on layouts that are not active, effectively "stopping time" for that layout.

    As others have mentioned, you'll need to add events for the time to "catch up" to current time, by using the expression to find out how much time has passed since you left the layout.

    Another option is to not use layouts in the first place, if possible for your game. You can use layers instead, and hide visibility (and remember to account for controls or input so they do not work on invisible layers). This way, all your "scenes" are actually on the same layout and running, just hidden.