oosyrag's Forum Posts

  • != means not equal to

    Is the blank space always at the front/back? Are you sure your array is default width 0?

  • Ok I get what you are trying to do I think.

    In your case, if you don't need a specific route name, you can just use the x index as your "route number", starting with 0 (If you do, you can use the indexof() expression).

    Your conditions would include:

    Array for each XY

    System Compare two values Array.CurY = routeNumber

    Array Compare Current Value !=0 (because you don't have the same number of monsters per route, some cells will be empty, or 0 - you don't want those)

    The action would be:

    randomizerArray - Push back Array.CurValue

    (You only need one action because you are only pushing one value to the new array. The randomizer array should start out as 0 width, 1 height, 1 depth)

    Then use floor(random(randomizerArray.Width)) to pick a random index from the randomizerArray, and reset the array by setting it back to 0 width.

  • Oh I was replying to gearworkdragon actually.

    But basically you do a for each x/y on an array, which will run through each cell, and you can add conditions to specify which row or what content you are looking for.

  • I'm not sure I understand what you are going for... could you clarify? Here is an example of the method I described in my post.

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

  • I thought DT already took time scale into account.

  • Thought you meant just automatically.

    In that case, the simplest way is a set of actions. You'll want to set your angle via your controls. Then, every tick, set your player to the planet's x and y, and then use the move forward at angle action together to place it in the right place. The distance is how high you want your orbit, and the angle would be angle(planet.x,planet.y,touch.x,touch.y) (or mouse.x and y if you're using mouse). If you're using keyboard arrows, you'll want an angle variable that gets modified by your arrow keys.

  • You can use a combination of a horizontal and vertical sine movement to create an orbit.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Updated capx, with comments, same link.

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

  • New approach for perpendicular tracking of mouse as requested. Simpler too.

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

  • See if this helps. https://www.dropbox.com/s/dkqrwnwdz75qh ... .capx?dl=0

    Basically use a global variable to keep track of where you came from, and have multiple spawn locations based on that variable.

  • That's up to your own style or workflow. If you need to randomize your enemies or generate then dynamically, I would create them via events.

    Or if you like/need to place them in the layout editor for level design purposes, then just set the variables manually then copy and paste.

    You can also just set a single instance variable "monster type" when placing on the layout editor, and adjust all the other variables based on that by event on start of layout similar to how i described with a function. This will make it easier to make changes and adjustments later.

    Really is up to your own preference and what is most suitable for your game.

  • For an even chance of spawning all monsters within the specified level range, I would use a second array. The first array would contain all monsters, the second array would be generated to contain monsters eligible to spawn.

    You would use a for each x, and check the level at curx,1 to see if it qualifies, then push it to three second array if it does. After all qualified entries have been added to the second array, you can use floor (random (array2.Width)) to pick a random index from the second array.

    For a brute force method, you can pick a random index from your main array, check of the level is within your criteria, and repick if it is not. But this method can be inefficient.

  • That looks about right. Although there is a bound to layout behavior that seems more suitable for what you described.

    I'm not certain about the effects of the layout scale, but that should be easy to compensate for either way, as there is a layoutscale expression you can use as a multiplier if necessary.

  • [deleted]

    EDIT: Never mind what I said previously! Different approach has been found as per your requirement.