calminthenight's Forum Posts

  • Hi MrRiker30

    Unfortunately positioned sound is broken in chromium. It isn't an issue with Construct. A couple of Construct users have logged bug reports with the Chromium team and I recently added a small project to that bug report using simple javascript to demonstrate the issue. Hopefully they can get it solved in one of the next few releases.

    As NWJS is based on Chromium, the issue is present there and unfortunately there are no workarounds.

    Your best course of action is to move to non-positioned audio and, if you want to, use the fade volume action with appropriate events to change volume based on distances.

    Sorry for the bad news.

    Links to construct and chromium bug reports:

    https://bugs.chromium.org/p/chromium/issues/detail?id=1041182

    https://bugs.chromium.org/p/chromium/issues/detail?id=1002093

    https://github.com/Scirra/Construct-3-bugs/issues/3578

  • I would use containers. And then there are many options to set the follow behaviour depending on what you are after.

    Here's a small example showing using containers and lerping position of follower to leader waypoints saved as instance variables every .2 secs.

    This works for any number of instances with no picking required, but you could handle the movement in any way you like

    https://1drv.ms/u/s!AkmrWgxeuxlKg_8Q_K0U4mR7vuid2Q?e=zZ9xpP

  • jobel I'm a career audio engineer so I think it affects us more than it would others :)

    Yes using your method there should be no problem, however if you were instead to play a file and then update the volume using 'set volume' every tick there are noticeable artifacts every tick. These aren't present if you use 'fade volume' instead.

    e.g.

    My point is that while this is definitely a chromium issue, I think the issue lies with how frame-rate(tick) dependent updates are made to audio. This would explain the positional panning artifacts and the set volume artifacts (panning is just volume adjustments anyway). Given that using 'fade volume' does not reproduce the issue, it's implementation in chromium may somehow be non-tick dependent. Hopefully this means that this method can be used for panning in the future.

    All just thoughts.

  • jobel

    I found a chromium bug report (maybe yours) and uploaded a small example using some JS from a guys site. The problem still exists and it looks as though it's a chromium issue. you can see the latest post with the example by me here: bugs.chromium.org/p/chromium/issues/detail

    Hopefully that smaller example can help them diagnose it.

    I just switched a fairly large project from positioned to non-positioned for the same reason. I encountered issues even with the non-positioned audio when using "set volume" every tick however, switching to "fade volume" with a time of 0.1s on every tick removed those issues.

    Have you encountered any issues with the non-positional audio?

  • Never mind. The issue is removed when you use the fade volume action instead of set volume.

  • Using the non-positional playback, and using events to update volume every tick. Unwanted noise is introduced depending on the speed and/or strength of the requested dB change.

    I am aware of the chromium issues with positional playback, but it appears that audio playback of any kind is unable to be rapidly modified without introducing errors.

    Does anyone have experience with this?

    Demo project attached https://1drv.ms/u/s!AkmrWgxeuxlKg_8PzR-QFhO_nbU7lw?e=r54c2o

    If you were making large stepped changes, it would be normal to hear each volume stage however, adjusting using fine amounts still introduces the same issues.

    Tagged:

  • jobel Hi there. Do you have any links to info on this chrome issue, or specifically with construct? I'm trying to research it. Also I up-voted your feature request.

    Thanks

  • Ah. No I haven't thanks Ashley I will.

  • Has anyone seen this recently? I was just working along and saving as usual and had done only moments ago and now I can't save to onedrive. Have restarted chrome checked my access to one drive etc. Will file bug report if not.

    log below

  • store.steampowered.com/app/1340980/PopIt_Or_Dont

    A casual, physics-based balloon-popping game that I originally started on in C2 and then moved it to C3 when I came back to developing.

    I was working on a larger project and thought I would release this on Steam to learn the process so it was easier next time.

    Tagged:

  • The link that I posted, post seems to have disappeared, but it is still in your reply will get you the pixel information. Manipulating it will be a bit of an adventure though.

    Good luck

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Looks like there is a plugin here that will convert an image into a base64 string, where you can then run comparisons. See this thread for info and the link. https://www.construct.net/en/forum/construct-3/how-do-i-8/drawing-canvas-base64-string-141689

  • Oh sorry I misunderstood what you were wanting. Are you doing a drawing game, where accuracy to the original is the goal?

    If so it might be possible to implement using js. Check this out: https://github.com/rsmbl/Resemble.js

  • You want to list on screen the 4 potential answers to each question as they are asked?

    Use an array and store your questions across one axis, then in each column beneath that store your 4 possible answers.

    You will need the array and ajax objects.

    here's a c3p file

    https://1drv.ms/u/s!AkmrWgxeuxlKg_5z3K3Nyn-aDiCqtw?e=kecH6f

    if you are using the paid version you can right click on the files folder in the editor and select new array. Then you can edit it in the array editor. If you are on the free version you just need to create the array in excel or similar, save it as a .JSON file and then add it to the files folder

  • To expand on what the others have said, you can use the pick by comparison condition if you have multiple instances of the same object that have different variables. Eg. You use a single card object and you have 52 instances. Each has an instance variable from 1 to 13 which tells you what number the card is.

    If you want to pick all the 9 cards, to make some sort of change you would:

    Pick cardobject by comparison where cardobject.variable = 9

    any actions that you now apply to card object within that event will only be applied to card objects with the variable 9.