oosyrag's Forum Posts

  • You should learn how to use expressions or you won't get very far in anything. The ones I used are

    Enemy.Pathfinding.NodeXAt(0)

    Enemy.Pathfinding.NodeYAt(0)

    These mean the X and Y coordinates of the first/next pathfinding node. The number is which node because there can be multiple.

    Angle (x1, y1, x2, y2) will get you the angle between two sets of coordinates.

    And loopindex is simply the number of times the loop has repeated. The first time it will be 0, then 1, then 2, ect. This is how I spawn every node with one loop.

    Pathfinding is useful so you have a way to avoid obstacles and go the right direction.

  • Here's a pretty straightforward solution, for one step at a time at least.

    dropbox.com/s/pzqv9zb9q2mxh8w/Enemy_AI_Test_2%20%281%29.c3p

  • I don't have any examples, as I'm not an Apple developer. You'll need to set up your app per developer.apple.com/library/archive/documentation/LanguagesUtilities/Conceptual/iTunesConnectGameCenter_Guide/Introduction/Introduction.html

    Then in your game after authenticating with the game center plugin, you'll have access to the relevant conditions actions and expressions.

    Edit: Alternatively, the facebook plugin also supports leaderboards cross platform.

  • The Game Center plugin should have everything you need. You won't need your own server.

    Google Play Services are depreciated and no longer supported on IOS.

  • Make sure your shadow light light radius is 0.

    Make sure your shadow light height is greater than your shadow caster height.

  • The name does have a lot to do with it. Construct is a very generic term. One annoyance for me after the rebrand is that it got harder to search construct related information via google, using construct instead of Scirra. That might not have anything to do with adoption though... Maybe "Construct Games" would be more obvious? Probably silly to rebrand again right now though.

  • loopindex only works for system loops like repeats and for loops.

    The loopindex parameter lets you specify the name of a for loop.

    loopindex does not work for Array "For each xy" and Dictionary "For each key". Each object has its own way of getting the current index by expression.

    It worked this way in Construct 2 as well.

    For your use case, an array seems more suitable.

  • Some quick general tips, I don't know how you have your existing system set up exactly...

    You can use the pathfinder behavior to find the path, together with the tile movement to do the actual movement.

    Grid systems are in essence rounding to the nearest x/y on the grid, a translated coordinate system.

    Set the pathfinding behavior with a cell size similar to your grid. You can then access the pathfinding node coordinates, and round/translate them to fit in your own grid system.

    With the nodes in hand, you'll need to handle the movement steps manually - don't use pathfinding's move along path action. I don't believe the pathfinding can give you a node per cell, you'll have to interpolate those yourselves. Basically you need to figure out a way to describe each step between two nodes. For example, you start at 1,5 and need to go to 3,9. There's a few ways to go on a grid system. You can go right first then down, down first then right, or a mix of both by figuring out the slope.

    It might be simpler for you though since it sounds like you're only taking one step at a time, so you only have to get the next step. If you have your destination node, you know if its above or below, left or right of your current position. Pick one up/down or left/right, test if there is an obstacle with tile movement's can move to position, then move. Repeat with a new pathfinding step for the next move.

  • A series on how to develop plugins and behaviors with JavaScript may be more relevant. There are many excellent resources already out there that allow a person to learn JavaScript in general, easily found for those who are interested. Logic skills learned from Construct are pretty much innately transferable in most cases without a need to specifically reference them.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • It should be possible to create your own authentication/database server with the multiplayer plugin, but decidedly not recommended as it wasn't intended for that sort of use.

  • I didn't find anything out of the ordinary.

    Minamal project - received messages are logged to an array you can see in debug.

    dropbox.com/scl/fi/wx8vzxo049ozbidm03mhk/mp-localpreview-debug.c3p

    How many peers? When does it occur? If it is right at the beginning, it is possible your peer hasn't joined the room yet due to not running in the background.

  • I don't think you need parallax if you're using z-elevation.

    But I think the problem is that what you are describing (blurring the upper layers more than the lower objects) just isn't going to look good, or at least what I'm imagining.

    My suggestion would be to not worry about blur at all (You've got an xy problem here). If you want to focus on the lower levels you can simply desaturate (or darken/lighten) the edge highlights as you go up in z-elevation. You can try opacity too, although I think that won't work very well either with stacked objects.

  • What you describe should work, with certain caveats. It would require peers to disconnect from the room and connect to another room per layout, which is manageable. One major disadvantage would be that your hosts would not be able to communicate with each other. You would have to rely on trusting your peers with the data they carry as they switch layouts/signallingrooms/hosts. The "latest" information state for each peer would only be known by the last host they were with and the peer itself, so you might run into persistence issues.

    Magistross's suggested method is how I would attempt it, but you won't be able to take advantage of the built in sync object feature, and messages are not as bandwidth friendly.

    Much of it depends on your specific project's requirements and scope especially in terms of number of peers, persistence, and host authority.

    Note that if your hosts have a method of communicating with a central database, there potentially be huge advantages to using the method you are asking about.

  • You can Force Own Texture in layer properties. This makes it so that effects on that layer are isolated from others.

  • The example project looks fine to me. How did you get this to happen?