Ashley's Recent Forum Activity

  • 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.

  • It looks like a crash in NW.js, but we can't reproduce it. I filed an issue with the NW.js developers already but there's not enough information to act on. If you can find any way to reliably reproduce the issue, that would probably be enough to fix it, but until then we're stuck.

  • You could use "letterbox integer scale" mode, which preserves per-pixel scaling by adding black borders if the canvas doesn't exactly scale.

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,830,580 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • 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
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x126
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x44
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs