oosyrag's Forum Posts

  • You can use floor(unixtime/86400) to get the day number.

    Then use local storage to keep track if the user has received the reward for the day or not.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Quick google search: johnwordsworth.com/projects/sprite-font-builder

    I have no idea if it is suitable for your use. Hope it works!

  • Change

    -> System: Create object Raindrop on layer 0 at (random(WindowWidth+100), 0)
    

    To

    -> System: Create object Raindrop on layer 0 at (random(WindowWidth×2)+ViewportLeft(0), 0)
    

    Or put the rain on a separate layer with its own parallax separate from the background.

  • In the following event (you should make them both subevents of the button trigger), you can make an Else event. The Else event will only run if the previous event did NOT run (meet conditions). So if none of the spots checked in the first loop were valid, stop loop would never have run, and the following event will run. If the first loop did execute, then the else event would not.

    But again, you have to define clearly in what order you want to check available positions. For example, why would it go to D4 and not C5? Would it go to F2 if there was a spot there when you pressed left?

    Don't worry too much about checking X amount of columns, loops can do wonders :)

    Edit: Also where would it go if there was a spot at F5 and F7?

  • In the event that the Construct signaling server is no longer provided, you can always set up and host your own.

    The signaling process is part of the WebRTC standard, and not proprietary to Construct.

  • It's really not that complex...

    + Keyboard: On ↑ pressed
    + System: Repeat 4 times
    + select: Is overlapping grid at offset (0, -128×(LoopIndex+1))
    + grid: Is filled
    -> select: Set position to grid (image point 0)
    -> System: Stop loop
    

    This is all you need to skip empty spaces.

    If you want to hop over a row, you change the offset amount by -128 or +128 and repeat the same thing.

    dropbox.com/s/tff81dp49h8chuw/grid_UI.c3p

  • Lots of checks are relative, as the loop would be a single event. And you can add additional loops for neighboring columns or rows.

    Either way you'll need to clearly define the order of priority about where your selection would go. And if its actually random left or right you'll need to define that as well. Then you can put it together.

  • I'd normally use an array to set this up, as it has tools to make this sort of thing easier, but let's go with what you've got.

    First you'll need to identify if a grid spot is valid. You've already set up an instance boolean "filled" for your grid object, so that's good.

    Now when you press a direction, you want to see if the next spot in that direction is "filled" or not. You can easily do that with a compare instance variable condition.

    If it isn't filled, check the next position over in the same direction and repeat until one is filled.

    This can be done in a loop. Repeat x times (where x is the width of your grid, or maximum number of spaces you can move), and multiply the offset by loopindex for your positional check. If you run into a filled grid object, stop loop and move the selection to that object. Otherwise, if no valid spots were encountered, nothing happens.

  • You could start by making a multiplayer game. The tutorials are a great place to get started. construct.net/en/tutorials/multiplayer-tutorial-1-concepts-579

    You can limit the number of players per room in the Join Room action.

    If you have any additional specific questions, ask again. See tips for asking for help. construct.net/en/forum/construct-2/how-do-i-18/tips-posting-quothow-iquot-40390

  • Well local input prediction is the solution. If you set it up properly you will avoid the rubber banding movement as well. I'm guessing you didn't sync up your movement with the client input ready condition, but have no way of knowing without seeing your events.

  • Do you have local input prediction set up?

  • You do not have permission to view this post

  • A. Use an invisible helper object. Pin it above your player and scroll to that instead of your player.

    B. Make sure unbounded scrolling is not checked in your project properties. Set your layout size properly so there is no extra space below your level.

  • You want to add the condition where player is overlapping enemy (and also a trigger once while true), because you only want this event to happen when you actually hit the enemy, rather than any time your y is greater that his.

    Alternatively, use a invisible helper "target" sprite that is pinned just above the enemy to trigger an event when landing from above.

  • I'm not seeing why you wouldn't have control of the size of the object. Anyways if you try to mix your rendering methods you will run into issues, as you have found. So if you position and display your key the same way you would display a wall, which is working properly, the key should also display properly. If you didn't make the effect yourself maybe you can ask the original creator how to adapt it for smaller objects.