calminthenight's Forum Posts

  • I believe positional audio works correctly in Firefox, at least it did last I checked. dBFS (decibel Full Scale) is the unit used to measure the volume of digital audio.

    In most circumstances, digital audio cannot exceed 0dBFS without causing the distortion you hear. When you play a sound in C3 the default playback volume is 0dB, which is the maximum. You can lower the volume of the sound by using a negative number between -99 and 0.

    dBFS is a logarithmic scale so keep in mind that -6dBFS represents approximately half the volume of 0dBFS.

  • AFAIK positional audio implementation in chromium has a number of issues that pretty much, but not entirely, break it. A year or so ago I was involved in a Chromium issue tracker and uploaded a simple javascript example showing the issues but to my knowledge nothing has been fixed.

    That said, if you are rapidly playing a bunch of sounds every 0.1 seconds, it is highly likely that you are hearing digital clipping. The sum of multiple sounds playing over the top of each other is exceeding 0dBFS and causing audio artifacts.

    You can try reducing the volume of your samples to make sure they are not near 0dB and making sure the length of each sample to be played rapidly is shorter than the period before the next sample will be played.

    Construct has no Master Limiter effect that you can run all sounds through to prevent clipping, so you need to manage your levels carefully

  • If the position of the spawn is the same each time you can create an image point on your sprite and then you can specify that image point in the spawn action so you wouldn't need the XandY actions below.

    Correct about the instance picking yes.

    If you need to spawn multiple text objects you can use a repeat loop like you mentioned.

    Just add a sub event under the on sprite created condition and add a repeat loop.

    If the number of repeats is not constant you could populate the repeat number by passing a variable from somewhere else.

    If you need to pass different values to each of the instances created in the loop then you would also need to pass those via some other function.

  • Does anyone know of any versions beyond v0.45.0 that support unprompted entry into fullscreen mode? Figured I'd ask before I downloaded them all to test.

    Additionally, assuming it is chromium that has blocked it, does anyone have a link to chromium dev pages with info on the change?

    Thanks

  • As Maverick said you can pass the UID of the "parent" object to an instance variable on the "child" object at the time of the child being spawned by adding the action directly under the spawn action.

    Parent - Spawn Child

    Child - Set var_parentUID to Parent.UID

    You could also use the hierarchy system, which allows you to add and remove children to/from parent objects and pick them all in various ways.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/common-features/common-actions (look at the hierarchy section)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • just right click on the layout and copy it and then paste it in the new project. As long as all objects are the same then it will work.

  • This is just outstanding rufson. I can't wait to see more updates.

  • you could also use a Boolean variable on the object that is colliding with the leaves. And set it to true on collision and then play the audio triggered once when the variable is true.

  • Yes if the all the frames of the player sprite had the same dimensions and collision polygon it will work.

  • All of your player animation frames are different sizes and have different collision polygons. This means when the frame changes the collision polygon does to and then you may go from being on a platform to below it etc.

    Create a single sprite that is the size of the collision polygon you want, and then add your movement behaviours etc to that.

    Then create another sprite for your character animations and pin it to the sprite you use for control and collisions.

  • use a boolean variable.

    on button press - set it to true

    then add a condition to check the variable is true in place of the the is button down condition

  • To get the distance on the XY planes first pick the object with the corresponding UID.

    Pick object where object.UID=turretobject.turret.targetUID

    then you can use the distance expression wherever you need to.

    distance(turretobject.x,turretobject.Y,object.x,object.y)

    This distance will remain the same though regardless of the objects Z-elevation as the objects XY position does not change.

  • I think it is possible to create an RPG with a limited scope in 50 events. You'd want to plan out your mechanics and game scope first though and then really iterate each implementation to get it to as few events as possible.

    Would be a good challenge

  • Replace your first comparison with a pick all condition and pick all family objects then pick by comparison to your variable.