oosyrag's Forum Posts

  • You'll want to use the pin behavior, as well as put the segment objects into a family, which will let you pin segments to each other in order. https://www.scirra.com/manual/99/pin

    Alternatively, you can simply give each segment the same set of movement actions/ai and have them offset by time.

  • > With two tiledbackgrounds you can make it look like it's animated, or at least moving forward.

    > https://www.dropbox.com/s/cm27xvzisnoxe ... .capx?dl=1

    >

    Hi how do I set laser length to Mouse.x mouse.y if not overlapping wall?

    I tried modifying but the result is no laser is shown

    Event 3: Change Set Width action to min(Self.Width+5,distance(cannon.X,cannon.Y,Mouse.X,Mouse.Y)), rather than Self.Width+5

  • You need to right click and edit the event group and uncheck start as active, rather than disable the events in the group.

    If your group is already starts as active and all the events within it are disabled, then activating the group will not do anything.

  • You'll need 3 parts to your laser, an origin sprite, a destination sprite, and a tiled background for the variable length of the laser. The origin and destination sprites should cover the "cut" ends of the tiled background.

    Unfortunately, tiled background cannot be animated, so you'll need to stack a separate tiled background object for each frame of your animation, and reveal/hide them in sequence.

  • Pathfinding and movement are separate systems.

    Rojos function gives you a path in the form of node uids in order. To use it for movement, you can save the list to a movement array, and have a sprite move to each node in sequence with your preferred method of movement. It may be better to write only the x and y position of the nodes to the array, as the start and end node objects may not be there for the duration of the movement.

  • I'm working on a visibility graph based pathfinding algorithm, no idea when I'll be done with it though. It trades off reduction of the number of nodes for an increase in the number of edges. In scenarios where fewer nodes are visible to each other the benefit will be more pronounced. It will not work well for large open spaces or long corridors. There is also additional work to be done putting image points at all "wall" sprite corners, since we don't have access to collision box expressions.

    ref: http://theory.stanford.edu/~amitp/GameP ... tions.html

    If you're interested in looking into it yourself rather than waiting for when I may or may not get it done.

    But definitely try the built in pathfinder first, you might be surprised. Remember, you don't actually have to run pathfinding every tick - you can update just the visual feedback for the user, which doesn't necessarily have to be instantly accurate. Basically there are methods to "hide the lag", like with netcode.

  • There is.

    You can't even add the multiplayer object to a project if you are a free user.

    If you are editing a multiplayer example, there is a big yellow banner on top telling you the project exceeds free edition limits.

  • I don't profess to know if it's a good idea or not, but here are some considerations, assuming you mean for the Steam version to be a paid game...

    Steam's advantage as a platform is that it has huge reach. Steam's disadvantage is that they take a large cut of your revenue. It would make more sense to me to have the free version on Steam to leverage the reach and the paid version outside to collect the cash.

    Developing two versions of a game is additional work and possible bugs/maintenance. Especially when it might not be necessary to have two different versions at all. Why not use the same business model for both?

    People can react extremely negatively to pay up front games that act like freemium games in disguise (SW: Battlefront 2). They can also react badly to freemium games that hit users with a huge wall to progress locked behind IAP, essentially becoming pay to win. It sounds to me like your approach is to do both. There can be a good balance in the middle somewhere, but then you would only need that one balanced system and not two separate versions.

    All my personal opinion - I have no experience publishing games.

  • Use a pin behavior onto your center object, and rotate the center object. You can use an invisible helper sprite as the center object if you want.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Here is a quick implementation of the first link I referenced above.

    https://www.dropbox.com/s/q4fcmtza4uqvyn8/prng.c3p?dl=0

    Each time the function is called it will return the next pseudo random integer between 1 to 2147483646 inclusive in series.

    To get a float between 0 and 1, use function.call("prng")-1/2147483646.

    To set a maximum value, modulo the result by whatever you want the maximum to be, OR multiply the float as above by the maximum.'

    Note that this is reliable across platforms as long as you stick with integers only. Once you use floats, rounding errors may occur.

    I tried to make a clean version in event 3 utilizing function.returnvalue, but it didn't work as expected. Can anyone else fix it? I ended up resorting to global variables to store the last returned value.

    With some minor modification, you should be able to pick out a specific number from the series by index by looping through the function x number of times from the seed value.

    The incrementing numbers represent the distribution of results.

  • [quote:1aqk1me5]When the enemy sprite gets hit by the player, set the enemy bullet speed and angle to the desired values.

    This is where you have the start timer actions. Set the bullet speed and angle. You want to leave the start timer as it is, but you can get rid of the tag if you want - all the timers can be the same.

    [quote:1aqk1me5]on timer complete set the enemy bullet speed back to 0.

    You only need one of these events. On Timer, set enemy bullet speed to 0.

  • It is not currently available. I made a suggestion here: https://construct3.ideas.aha.io/ideas/C3-I-351

    My workaround is to have a Global constant variable set to refer to, but it must be updated manually if the tilemap size changes.

    Although changing the tilemap size honestly pretty much never happens, since the image is set as well.

  • Select all, right click, wrap selection

    OR

    Select all, press Enter on keyboard

  • A figure 8 would be simple enough with 2 sine behaviors only, no events necessary.

    Unfortunately your link got truncated, so I can't check it out.

    While it isn't the simplest thing, I can imagine making a path editor with Construct by "drawing" with the mouse and recording the x/y values into an array, which can be saved as json and subsequently imported as a project file for future use. If it can be done with events, I'm sure a plugin is possible. Relative coordinates could be utilized so the resulting movement templates are more flexible and can be used in many situations.

    Another quick idea I can think of is to create a movement template object with a series of imagepoints detailing where you want a sprite to move, and have the sprite move towards each imagepoint in succession.

    Generally speaking though, invisible helper objects positioned strategically can allow for pretty much any complex movement you can think of.

  • https://www.dropbox.com/s/vf9ub4hq4r5cv ... .capx?dl=0

    I have an old example here, maybe not exactly what you need but see if it helps.