oosyrag's Recent Forum Activity

  • The most straightforward way would be to add a condition that checks if mouse/touch is overlapping a checkmark before doing the place action.

    How are you displaying the checkmarks? You can use the exact same logic to see if it is a valid location to place a cannon.

  • If you don't have obstacles, you don't need pathfinding. You can try tween, moveto, or bullet instead.

    If you do need pathfinding for some reason, then more information about your game would be needed to help troubleshoot.

    For starters, use as large a cell size as you can that still works. And make sure you're not finding a path every tick, it should only be done once until needed again.

  • Also note that many commercial RTS games with pathfinding do actually allow overlapping. Broadly speaking, they either use a system of de-collision at given intervals or at the final destination, or they use a steering/flocking algorithm that applies forces to avoid collision.

    Of course preventing overlapping completely is a thing that exists and possible as well, but it often causes issues with pathfinding when traffic happens. There are examples of developers getting this to "work", and then abandoning it later after realizing it causes more problems than otherwise.

  • You do not have permission to view this post

  • dropbox.com/scl/fi/4v2sedjay6c4tcwm278fb/dissolveandburnexample.c3p

    Now with burn layer.

    Pretty happy how the effect itself turned out - you can change the look and feel significantly by adjusting the tween duration and ease, octave setting for the noise, burn texture, timing between the dissolve and burn, noise type, adding some motion/rotation/animation to the burn texture ect.

    Pretty not happy with how many layers it takes and the redundant base sprite and burn/dissolve masks, along with all the associated events. I'm 99% certain it can be refactored but my brain is not cooperating at the moment. I've never been particularly comfortable layering blend modes in Construct but I'm sure there's a more compact way to do this somehow... aiming for a single base sprite with the flame texture and one mask (maybe 2 are needed for this approach).

    Also the burn texture can probably be drawn with some simple noise on the drawing canvas too, instead of using a sprite.

  • construct.net/en/make-games/manuals/construct-3/plugin-reference/nw-js

    See the section in the manual regarding using file paths correctly on the NW.js page.

    It recommends writing to NWjs.UserFolder & "myfile.txt", however I would additionally recommend putting it in a directory unique to your game, as well as saving the file as .json if you'll be saving data in json format. Alternatively, use an obfuscated/unique/encrypted format you are familiar with.

    You want to use the NW.js Write text file action, with your array.asJSON as the content to write. Or whatever else type/format of data you're saving. Dictionary.asJSON works well as well, and is more similar to LocalStorage in terms of keys and values. Save to your dictionary as you normally would have to LocalStorage, with the additional step of writing the dictionary to disk as a file through NW.js when desired.

    To load, you can use the ReadFile() expression (into your load dictionary or load array action). You can get information about the file location with the NW.js action List files along with the UserFolder, ListCount, and ListAt() expressions to confirm and validate the existence of save files.

  • Oh I see. I don't think you can run another executable from your project. That sounds like it would be a huge security issue.

  • Export to NW.js or Windows (WebView2).

    Consider reading the fabulous manual.

    construct.net/en/make-games/manuals/construct-3/overview/publishing-projects

  • Do not mix physics with other movement behaviors.

    If you're using physics, use physics actions to move objects.

  • You can insert the racer's time and id into an array and sort the array.

    Although you wouldn't need to sort at all since it would be in order already if you push to the array (back) as they finish, since they would presumably be finishing in order...

    The position number would simply be the array index + 1

  • Separate out the decimal portion and integer portion. Use zeropad() to add zeros for the decimal portion.

    For any number "n" - set text to int(n) & "." & zeropad(round((n-int(n))*100),2)

    To zeropad to "d" digits instead of 2, it would be int(n) & "." & zeropad(round((n-int(n))*10^d),d)

    int(n) - the whole number portion of n

    n-int(n) - the decimal portion of n

    round((n-int(n))*10^d) - multiplying the decimal portion of n to get a whole number up to d digits, and rounding to get rid of the remaining decimals

    zeropad(n,d) - pad number (n) out to a certain number of digits (d) by adding zeroes in front of the number

  • You do not have permission to view this post

oosyrag's avatar

oosyrag

Member since 20 Feb, 2013

Twitter
oosyrag has 38 followers

Trophy Case

  • 11-Year Club
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • Enduring Visitor Visited Construct.net 90 days in a row
  • Unrelenting Visitor Visited Construct.net 180 days in a row
  • Continuous Visitor Visited Construct.net 365 days in a row
  • RTFM Read the fabulous manual
  • Email Verified

Progress

21/44
How to earn trophies