oosyrag's Forum Posts

  • If you're using the bullet behavior, there is an action to set the angle of motion. By default it is 0, which is right. So create a sub event (under your spawn projectile event) to check if your player object is moving left, and set the angle of motion of the projectile to 180.

  • Add the persist behavior.

    Edit: Sorry that was wrong, there's a "global" property that you can enable that does what you want.

  • It will spawn on the tiles you define, which I have noted as "n".

  • For part 1 - I'm going to assume your flood fill algorithm continues until it reaches a yellow tile.

    Similarly, you can add an event to stop the fill function and call the clear function if your flood fill algorithm reaches an edge or boundary, which you can define.

  • + System: For "x" from 0 to Tilemap.Width÷Tilemap.TileWidth
    + System: For "y" from 0 to Tilemap.Width÷Tilemap.TileHeight
    ----+ Tilemap: Tile (LoopIndex("x"), LoopIndex("y")) = n
    -----> System: Create object Sprite on layer 0 at (Tilemap.TileToPositionX(LoopIndex("x")), Tilemap.TileToPositionY(LoopIndex("y"))), create hierarchy: False
    
  • Looks like audio.duration is not available on the same frame it starts playing.

    This is likely due to music files being streamed.

    If you use preload, and play only after preload complete, then audio.duration is available on the same tick and your trigger once event should work as expected.

  • This seems like a good place to actually use the wait action.

    In the same event, you can start playing music, wait duration-5 seconds, fade music.

  • First up, avoid using gestures - they are kinda finicky and not very responsive. I'd recommend using the conditions under "touch" instead.

    You can't put else after a trigger, but you can after a normal condition like "is touching object" ('x' is the shortcut to create an else event). However, note that you won't want it as a subevent of event 2 the way you have it now. Since touching the sprite will set the animation to 1, event 2 will no longer be true and it's subevents won't run.

    Alternatively, since the entire event sheet will run every tick top to bottom, you can do something like 'every tick - set animation to 0', and after it, have your event that changes it to 1 when touching the sprite.

    What do you mean by fitting the scene on your screen?

    The viewport, within the dotted line, will be your visible screen when exported. You might need to zoom the layout editor out to see it (shortcut: ctrl-mousewheel), since you've set it to be about the same size as a normal monitor's resolution.

    As for general advice... read the manual.

    construct.net/en/make-games/manuals/construct-3

    It's actually not that long! At least read up through the tips and guides sections, the rest of it is just references and details for how all the behaviors and plugins work. I've found the documentation for Construct to be fantastic in that it's very clear, concise, and complete.

    For a more hands on introduction, follow the official beginners tutorials. There are two, and I'd recommend going through both of them.

    construct.net/en/tutorials/beginners-guide-to-construct-3-1

    construct.net/en/tutorials/platformer-game-2329

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I once had the idea it would be pretty nifty to have a "50 events or less" game jam. I recall Scirra had run some contests in the past with licenses as prizes.

    If you know what you're doing and make good use of behaviors and conditional expressions, I'd say pretty much any classic arcade game could be recreated in 50 events or less.

  • When you mirror a sprite, there is a possibility the collision box will shift, as is the case when the origin is not centered. This can potentially cause trigger once to reset as it is no longer colliding.

    The reason it happened in this situation is because the higher frame rate allowed for smaller steps, where your sprite just collided by a fraction of a pixel and it gets mirrored, thus exiting the collision state. Lower framerates would result in the collision being more than a pixel overlap, so even when mirroring it didn't matter as your origin was only off by a fraction of a pixel.

    Common practice for platformers is to use a rectangular invisible helper sprite as your base object for collision purposes, and pin the visible texture/sprite to it. This helps to minimize many potential collision issues.

  • Does it happen if you don't mirror the sprite?

  • Start with the beginner tutorials, read the manual.

    You can also check out the monk fight example built in to construct 3. A quick Google search also fonts up with a few video tutorials.

  • I'd say 500mb is pretty safe in recent devices within 5 years, outside the absolute bare bones lowest end budget devices.

  • Hmm that's a rough one to diagnose, as I don't really have a way to replicate it. Sorry!

  • I don't think there is a way to limit the refresh rate afaik.

    However, if you properly used dt everywhere you're supposed to it should not matter. If you're having situations where a high refresh rate is affecting your gameplay, low framerate on a low end device would presumably also result in problems.

    Triggers should still work properly. Collisions for fast moving objects normally have more issues with lower framerates when more pixels are skipped, but that should not be an issue with stepping enabled.

    Note that you don't want to use dt with behaviors. Behaviors (except physics) already use dt, so if you use dt expressions to control behaviors, you'll actually make them framerate dependent again.