oosyrag's Forum Posts

  • + System: distance(player.X,player.Y,enemy.X,enemy.Y) < sprintdistance

    -> enemy: MoveTo: Move to (player.X, player.Y) (Direct)

  • There's a few issues here. Your pathfinding grid wasn't lined up with your tilemap solids, and they were different sizes. For exact tiles, you'll want to use a -1 cell border size. Set the pathfinding cell size to 64, the same as your tilemap cell size. Make sure your tilemap origin is at 0,0, to align with the pathfinding grid.

    For moving to waypoints without cutting corners, you want to use the MoveTo behavior's 'Move along Pathfinding path' action, instead of the Pathfinder behavior's 'Move along Path' action. The pathfinder behavior will start turning right when it reaches the edge of the waypoint cell, while the moveto behavior will move to each waypoint location. The example project has a turning radius that takes exactly half a cell to turn 90 degrees at the speed it's going, which is why it works.

    There is no need to update the path for each object regularly as you had in event 2, this can also contribute to cutting corners.

    See updated example here - dropbox.com/s/e5601def28z8zeb/ballons.c3p

    Edit - It's unfortunate no one helped you for so long, these forums are usually pretty responsive. Personally I usually look for posts that don't have replies to reply to, so I might have missed it when you replied to yourself, thinking you already got an answer.

  • Generally speaking, the logic for a jump through platform is to disable the solid (immovable, for physics) behavior for the platform when the player sprite's y position is below the platform's y position, and enable when on top.

  • Just a shot in the dark, but would an event based toggle for visibility based on distance be applicable?

    On the horizontal plane at least. Vertical shouldn't be too difficult either.

  • Similarly, you can also use an invisible helper object as a "start point" and move your persisted object to that on start of layout. This night be more flexible if your start point isn't always exactly the same spot.

  • + System: On load complete

    -> System: Add 1 to Variable

  • The thing with procedural generation is that it's 90% defined for the specific application it is going to be used for. There's no way to tell you how to do it a certain way to make it turn out like how you want it to turn out, without you describing in detail how you want it to turn out.

    Have you looked the advanced random tutorial?

    construct.net/en/tutorials/getting-started-advanced-30

    See the pictures of noise? Procedural generation is taking those, and defining what you want the black and white parts to be. The difference between the first picture which is pure randomness/noise, and the second perlin noise (what is normally used as a basis for many procedural algorithms), is that each location in a perlin noise map takes into account it's neighbors, sot that it will not jump from 0 (white) to 1 (black) abruptly. Different types of noise will give you different patterns

    For example, you could take perlin noise, and decide that any x/y coordinate that has a value of >0.6 is water. So all the dark splotches are now water. You then layer other noise definitions on top of that. For example, after you decide what is water and land, you could say that if any location is land, check the same location on a random noise map and if it is 1, then that's a tree.

    The other key about procedural generation is that the "random" values will be the same every time with any given input (usually x/y coordinate values, for a top down map), as long as you keep the same seed. But the values will change if you change the seed. So you could use perlin noise for terrain elevation, and then use another perlin noise with a different seed to stack different features, like resources, weather, trees, ect.

    The very basic principle is that the advanced random noise function will give you a value from 0-1 for every x and y (possibly z as well, if you want) value input, and nearby values will not differ too much from each other. It is up to you to decide what that 0-1 value means in any given situation.

  • Got any parallax layers?

    Describe the scrolling. Is it offset by a set amount, small, large? Does it move when you move the character? At the same rate, or different?

    Any other objects with the scroll to behavior enabled?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Not sure what's going on, but you usually don't want to mix physics with other movement behaviors, including platform and solid. Either make your whole project with physics (use immovable physics objects instead of solid objects), or not at all.

  • Have you tried opening in an earlier version?

    Consider not running beta builds for production.

  • Use a variable or array to keep track of previous answers. On answer, set variable to a or b.

    When displaying question 2, if variable is a, show question 2a. If variable is b, show question 2b. A similar idea can be applied to different answer choices as well.

  • Hi everyone,

    For those who know a bit Construct 3, I was wondering what you think about using it for a bullet hell game (with tons of sprites on the screen, and collision management) regarding the performance.

    I'm using Construct for more than a decade so I know very well (I think) the software.

    Since C3 automatically do a ton of basic things, I'm thinking (and I may be wrong) that it's using average optimisation for components so it can be useable for many different purposes. So that C3 is not the most optimized engine you can have for a specific kind of game.

    I was surprised to read that Vampire Survivors was made with Phaser, the game doesn't lag for me and I've never seen that much sprites exploding on screen in a game. So I figured that now JS/HTML5 and nowadays computers can manage this kind of sprite explosion hell game.

    But would C3 do ? Back in the days I did some test on C2 and it wasn't very good, even with me trying to optimize (disabling collisions and stuff like that). But these were old computers, old browsers and things may have changed. Also C2 is not C3.

    Is there a reason to think that today Construct 3 wouldn't be as optimised than a hand coded thing ? Or at least that kind of game is more difficult to optimize with C3 ? Should a pro better go Phaser instead ?

    Personnaly, I think I've made my choice and will use C3 for my game (I'm not a profesionnal), but I'm quite curious about the answer to that question.

    Thanks for any info about that.

    Vampire survivors doesn't lag? You must have a great machine. My fps drops to 5 in the last minute before the reapers.

  • I wouldn't normally recommend simulating a mouse with a gamepad, it is very clunky for the user. A more common gamepad system will snap to points of interest, like menu buttons or interactable objects.

    Otherwise if you insist, you'll just want to have an intermediate variable store the position of the simulated pointer. If using mouse/keyboard, set those variables to mouse.x, mouse.y, and set the pointer position to the variables. If using a gamepad, adjust the variable accordingly depending on the input.

  • What Everade said, there is definitely physics included, or you can create events to achieve the desired movement.

    Alternatively, use the bullet behavior with gravity on and bounce off solids enabled (recommend fade behavaior as well). Spawn these "bullets" with a random angle and speed within a range you define.

    I'd definitely recommend doing it this way instead of the physics behavior. I don't think the physics behavior is necessary for what you're trying to achieve, it is also much harder to use.