oosyrag's Forum Posts

  • I would use the Pick Nth instance system condition. It is basically picking by IID.

    Keep track of the "current" instance in a variable, and you can increase and decrease that by 1 through input, and pick the proper enemy sprite based on that, from 0 to enemySprite.count.

    If you need some other sort of order, you could add an instance variable to the enemy sprite and pick by comparing that for more control.

  • Project files won't work, but external files could.

    Ajax can post and get files from web sources and nwjs can do so for local files.

  • The sprite in question isn't exactly large by todays standards, relatively speaking. The size of your viewport doesn't really matter as far as the device is concerned. However it might cause memory issues if you have a lot of animation frames (it also might not, it really depends on how many frames it contains). Your idea of splitting up the boss into multiple pieces is a good idea and a fairly common technique to optimize memory usage in other games. If there are significant areas that do not need animation, it can make a huge difference in memory use, especially as your frame count increases.

    Running out of vram can cause your game to either fail to load, crash, or otherwise run at extremely low fps.

  • Since there is no expression to get the pin distance, you'll want to keep track of it manually in a variable.

    Set sprite.pinDistance to max(0,sprite.pinDistance-retractionAmount) (or use a tween here for control of the amount over time)

    Sprite - Pin - Set Pin Distance to sprite.pinDistance

  • Nothing I've tried myself, but I imagine using some sort of xml/json project file to describe the objects and offsets for each piece of your ship rather than a visual editor. The exact method and format would be up to you. An additional advanced step would be to create your own editor app dedicated to positioning pieces, then exporting to your preferred format as data.

    At least that's how Barotrauma and other games with objects that consist of multiple pieces usually do it AFAIK.

  • You need to position your 0 parallax layer elements in the top left of your layout, where the dotted line shows the viewport.

  • I believe the effect he is going for is for the magnifying glass to be positioned at the actual angle the character is from the center of the viewport, but constrained to the border area of the screen.

  • Put event 3 and 4 in subevents under a For each condition. Also since period is a measure in seconds it doesn't make sense to have it be a negative number... although it seems to work I would change it back to a positive number and use the following

    + System: For each Grump

    ----+ System: Grump.Sine.CyclePosition > 0.25

    -----> Grump: Set Mirrored

    ----+ System: Grump.Sine.CyclePosition > 0.75

    -----> Grump: Set Not mirrored

  • Ray casting finishes within a single frame and the event sheet runs from top to bottom. Separate the ray casting events and ray intersected events to check each ray after they are cast.

  • I haven't tried it myself yet, but I imagine if you used an intermediate data structure like an array to store your base tile upon generating a chunk (instead of setting the tile directly), then setting all the tiles in one go with the bitwise auto tiling function based on that array (compare array values instead of tile values), it should work fine.

  • Being able to click and drag to toggle/lock multiple layers at a time as is common in CAD software would be a nice usability improvement.

  • You do not have permission to view this post

  • Here's an example, I tried to simplify it as much as possible. Sorry the previous reference I linked wasn't in Construct terms - in Construct the "return" parts are handled by conditions, basically if the conditions are not met, then do nothing. dropbox.com/s/6eduutskd8lif24/floodfillexample.c3p

    On clicked object - mark the object for deletion, and check the four adjacent positions to see if it is the same type of object and not already marked, then repeat for each. If it is not the same type or if it is already marked, then nothing happens.

    Afterwards, pick all marked objects. If the total picked is more than two, delete them. Otherwise, clear the marked status.

  • A parabolic arc would consist of a constant horizontal speed, and a vertical acceleration downward (gravity). The exact trajectory will depend on the initial speed and angle as well as the amount of gravity. The platformer behavior has gravity built in, as does the bullet behavior which may also be useful.

    In general though, if you're making a physics game, use physics for all movement. If you aren't, don't use the physics behavior at all, and make your own.

  • Adjacent as in all cardinal directions? Or only in a line, like a match 3(+).

    If it's in all directions, you're going to want a simple flood fill. freecodecamp.org/news/flood-fill-algorithm-explained

    Instead of colors, you're going to set an instance variable, as you have done, to mark for deletion. At the end, you can compare the pickedcount for any objects with matching=true to see if its greater than 2, then delete them. Else, reset all matching to false.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads