oosyrag's Forum Posts

  • Array.at(floor(random(array.width-1) will give you the value at a random position in the array.

    I recommend learning how to parse a text file to work with a large list of words. You can import the list as a project file, read it with AJAX, and parse out each word with tokenat and the newline expression as your token separator.

  • You can enable and disable the platform and 8-direction behaviors as needed with actions.

  • Firebase is SaaS, basically a hosted database for its simplest use.

    I'm not familiar with the other services you linked, but generally speaking you'll need a plugin for C2 that will let you authenticate/log in to those hosted services and manipulate the data.

    If you are putting up your own server, I'd say again that Parse was very popular, and there are tutorials online about how to build your own parse server. Then you can use the Parse plugins that exist on the Construct 2 side.

  • Try utilizing spritefont. Either have a system where the user can enter text into the spritefont directly (custom textbox) or create a spritefont with the textbox contents upon taking a snapshot.

  • System Pick Nth Instance of Family

    Use the expression floor(random(family.count)

  • Try using a "System-Wait" action in between 5 seperate spawn projectile actions. Don't use repeat.

    Remember the entire event sheet is run once per frame. Repeats will all be processed within the same frame.

  • You can use the timer behavior, or set up your own timer/counter variable.

    Instance Variables:

    Duration=1.5

    IsMoving=false

    (On Trigger, Object IsMoving=false)

    Start timer for Self.Duration seconds

    Set Object.IsMoving=true

    (Object IsMoving=true)

    Set Object Y position to lerp(270, 80, Self.Timer.CurrentTime/Self.Duration)

    (Object OnTimer)

    Set Object.IsMoving=false

    Set Object Y position to 80

    This does take 3 events though. Recommend also having start position and end position as instance variables, which you set upon triggering the first event

  • Should be able to.

    Although I think there were some platform specific issues a bit ago regarding precision timing for playing sounds, but I'm pretty sure that got patched out.

  • Without plugins: https://www.scirra.com/tutorials/940/ho ... -a-project

    Advanced: Convert each part of the date/time to an integer (total time in seconds). You can then store or compare this value upon startup or save.

    Dependent on system time, so can be cheated by adjusting date/time on system.

    There may be a way to get the current date/time from a time server, but I am not familiar with the method.

  • Parse was a popular method before it became discontinued as a service (you can still set up your own parse server), and I believe Firebase has the same basic functionality. You can get plugins for these platforms.

    I don't have much experience with them myself so maybe someone else can give you more info or other suggestions.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I generally store the associated peerid in an insurance variable for the object that can be owned. To disassociate, pick the object by comparing the correct peerid instance variable, and clear the variable.

    You don't necessarily NEED to do this, but it keeps things logically clean. It depends on how you set up your events. Usually peerid is the most used form of picking the correct insurance in multiplayer, so I'd say it would be good practice.

  • Conditions

    Compare two values ExpVariable > CertainAmount

    Run Once

    Actions

    Create PopupTextObject at x, y

    Set Text to "LEVEL UP"

    Optional - Add Fade Behavior to PopupTextObject

  • On all objects, add a "type" instance variable. On creation of any object, set the variable to object type. Now when you pick by UID, you can look up self.type by expression.

    ... maybe? Just an idea.

  • Although I am an huge fan, I do feel Scirra could put a little more effort in keeping tabs on community projects and their progress, and by extension keep their showcase updated.

    Or it could be the matter of relative difficulty exporting finished products which has been discussed often.

    I find it more likely that successful long time C2 developers are busy being successful, rather than promoting the engine they work on. I imagine for the developer making the blockbuster there is little incentive for them to promote the engine they created their product on. It falls back to Scirra to promote the success stories.

    On the other hand, Scirra may be making enough from licensing and the store to not even care about pulling in (and supporting) more users, and focus on C3 instead. It all comes down to economics and incentive/motivation.

    Edit: PS - There are actually many more reasons for people to want to NOT show the "Powered by Construct 2" splash screen, given that they are not REQUIRED to, unlike some other big name engines like Unreal ect.

  • Ah ok now I understand, thanks. For the other solution, object count was going insane, so I fixed it by adding on Start of Layout. I might go deeper into your solution after so I can have a better control ( and understanding) of it. I'm still trying to figure out why it worked with new sprites rather than old ones. had to adapt my events to it.

    *Actually is because I set in the sprite properties Collision to Disabled, then it spawns helpers on every one of them since it no longer detects overlapping. I was using a small sprite of 4x4 pixels that I scale up to use as collision since it reduces collisions.

    I'm going to try and adapt the same to this mask instead, or is there any better way to do this?

    Right sorry about that, normally I would put something like this in a function to call on start of layout, or to update during runtime by trigger in case your blocks can move and you need to reposition the corner helpers.