Ashley's Forum Posts

  • The error indicates that the remote server is not responding. This is nothing to do with Construct's AJAX plugin, it's a problem with the network connection to the server.

  • It fails to load because the Spikes object animation frame 3 is a corrupt image. If you edit the frame to restore a valid image it works again. I'm afraid there's nothing else we can do unless you can provide the steps to reproduce how the image got corrupt in the first place.

  • This is a really difficult problem to solve. You're essentially wedging a solid object inside a movement object, which causes the behavior to think it's stuck inside a solid and look for a way out. I'm not sure there's a good way we can solve this in general. It's a similar problem to dropping a solid down on top of the object. It's supposed to never be inside a solid, but you placed one overlapping it anyway, with no clear way to escape it. What should it do?

  • Closing, please see the bug report guidelines. We can't debug videos.

  • There's no point listing two options in intellisense because they both do the same thing. It would also imply that you're only triggering one of the two "on function" events, but it doesn't work like that, it'll always trigger both.

  • This is currently by design. The function events are based on triggers. You can have multiple triggers such as more than one "On start of layout" trigger, and so you can have multiple "On function" events, it's pretty much as simple as that. I agree it would be better to redesign functions to only allow one function event, but this would be a major change and would not happen for C2. At some point we'll redesign the way functions work in C3 and think about it then, along with other ideas like named & typed parameters.

    Additionally it's very difficult to change anything like this so late on. Functions have been around for years, and there are likely many projects that depend on having multiple function events, tutorials that describe using them that way, etc. If we change it and break all these projects, the breakage is far worse than any improvement for fixing a quirk of functions, so it's not worth it. If we change it but allow existing projects to keep working the same, we've not really fixed anything, and it's an additional source of confusion ("why can't I make a new project the same as my old one" etc).

    So closing as by design / won't fix.

  • Read the tutorial delta-time and framerate independence.

    FYI the per-frame FPS is actually 1 / dt, so dt * fps is the same as dt / dt which is always equal to 1. Construct measures FPS over a period of 1 second though so it won't be exactly that, but basically using that formula makes no sense.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Only Webview+ is officially supported. Canvas+ is missing many features and is not officially supported, so if you run in to any issues you're on your own.

  • Browsers generally try to make it deliberately difficult to get a unique ID for a computer, because it could be used to track users across the web, which has privacy implications. Also the original idea is flawed in that if you have savegames tied to a specific unique system ID based on the hardware setup or something, then you can end up locking yourself out of your own savegames by changing your system setup. So, basically, don't try to do this. User accounts are a better way.

  • iOS 10 doesn't support Remote Preview. It relies on WebRTC Datachannels, which were only added in Safari 11 (iOS 11).

    Chrome on iOS is just a skin for Safari because Apple have banned other browser engines. So Chrome on iOS has identical features to Safari.

  • Here's an optimised version: https://www.dropbox.com/s/ps1bfsng4fvl8vt/test007-opt.c3p?dl=0

    This only supports middle click to spawn and then A & D to rotate (it's quite a big project and I don't have time to go through it all). The key is:

    • use family instead of a container, with family variables for the base position and "sliceframe"
    • pick using IIDs upon creation to make sure the family variables have the right base position set (this is a little awkward especially since it has to use a next-top-level-event after creation, but it only needs to be done once in this demo)
    • save unchanging parts of the expression in to local variables

    Then updating the position can be reduced to a single 'Set position' on the family with:

    X: Self.FBaseX + (Self.FSliceFrame + zmultiplied) * cosLayoutAngle

    Y: Self.FBaseY + (Self.FSliceFrame * zmultiplied) * sinLayoutAngle

    Testing with 3000 car objects - which is a total of 36,000 objects to update - my results are:

    Original project:

    C2 runtime: 17 FPS

    C3 runtime: 34 FPS

    Optimised project:

    C2 runtime: 23 FPS

    C3 runtime: 60 FPS

    So despite there being tens of thousands of objects to update, the optimised project + C3 runtime can hit 60 FPS (on my system, at least).

  • Thanks, filed an issue for that.

  • Using effects involves the effect compositor which is very complicated and has no one answer. It depends entirely on the particular effects used and where they are used.

  • If you're using r101+, it's probably this.

  • If reducing the window size improves performance, it's probably bottlenecked on GPU fillrate. Scaling the layout won't help, because there are still the same number of pixels to fill. 'Low quality' fullscreen mode should help, since it renders at a lower resolution (fewer pixels to fill) and then scales the result up at the end.