Kyatric's Forum Posts

  • If you mean in the editor, perhaps indeed you missed on "Selection wrapping" as indicated in the Layout View manual article.

    Otherwise, if you mean dynamically "in game", I would have my objects pinned to a sprite used as "background" for the object set. And that is only this object I would move around and dimension according to the set it contains.

    Does it make sense with what you are trying to achieve ?

  • Your expectation is in contradiction with how events work.

    Remember they are read top to bottom.

    This means that there is no interest for you to "nest" the way you want to do in your second example, since the several conditions/events are at the same level and will be read/checked/executed over many ticks. By having same level sub-events of a parent event, you are already nesting logically the execution.

    Due to the fact the action will happen over many ticks (and not in just one or a few) you can't expect a "wait for signal" or "On done" to happen.

    All you can do is have the best condition possible that will allow you to define several states.

    Expect to have to check for ranges to go from a state to another.

    Your code would become something like

    1 Sprite Boolean ToModify is True
    2 - Sprite Angle < 180 ... Sprite Rotate angle + 180 * dt 
    3 - - Sprite Angle >= 180 ... Sprite set Angle = 180
    4 - Sprite Angle = 180 & Sprite Size < OriginalSize * 2 ... Sprite - Set size * 2 * dt
    5 - - Sprite.Size >= Sprite.OriginalSize *2 ... Sprite.Size = Sprite.OriginalSize * 2
    6 - Sprite.Size = Sprite.OriginalSize*2 & Sprite.Opacity > 0 ... Sprite - Set opacity to Opacity - 100 * dt
    7 - - Sprite.Opacity <= 0 & TriggerOnce ... Spawn Particle; Set Boolean ToModify to False;  (or) Destroy Sprite 
    [/code:tk2og5yt]
    
    Notice how 3, 5 and 7 are sub-events to a sub-events, checking for the state/range allowing then to ignore the conditions/execution of their to level event yet allowing for the execution of the next.
    
    You could very well "externalise" some execution using the Function object.
    But you won't prevent having to use conditions to check the state of your current object, whether you use a state variable, or use some direct property check.
  • You are required to monitor the amount you earned yourself and, still as per the licensing terms you really should read at this point, update to the license in the 14 days that follow the moment you reach the income limit.

    Scirra still has a monitoring eye on things as well, but this is indeed not publicly discussed.

    And moreover business laws also ask of companies and money-making individuals to use valid softwares in compliance with the terms of the company which publishes them.

    So consider the authorities of your country as another monitoring eye.

  • Using the Browser action "Request full screen" does make all devices go full screen as indicated on Page 2 of the tutorial.

    Certain devices might require the action to be triggered by a user action (clicking a button object on iOS for example).

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • No. You need your own license issued to your name.

    Licenses cannot be shared, lended or transfered.

    Licensing terms

  • Tutorial about supporting multiple screen sizes.

    You could have found about this tutorial directly in the manual or simply using the search function.

  • Your Autoplay value is "Preload", once loaded, the video plays.

    Moreover, you used the "Can play through" condition to execute the play action.

    So very quickly, the video plays, as intended.

    With video, in the start of layout, you want to set the source for your video, and possibly make it so that a user action is requested.

    Using a button and setting Autoplay to No, this gives :

    By default the button is outside of the layout, when loading of the video is complete, it appears under the video and clicking it allows to play the video.

    On my computer the video does not lag at all.

    If it does on yours, consider profiling your program with the debugger and checking for errors in your browser as well, make sure you are using a up to date browser with up to date graphic card drivers and make sure your computer is powerful enough to be able to decode video and audio on the fly.

  • Change the autoplay property value. It won't start automatically.

    Makes sure you are not using the "Play" action in a "On start of layout" event.

    Do read the manual and learn what tools you have at your disposal.

  • Use the system expression int() or round() or ceil() or floor() according to what you exactly want your result to look like and place your formula within the parenthesis.

  • Several ways to implement, depending on your exact project.

    Check the different implementations available in the How do I FAQ section Scrolling / Camera.

  • Open up the provided example with Construct 2 named "Audio analyser.capx" which is commented.

    You should get all the code and explanation you need (also using the manual article for Advanced Audio.

  • The solution provided sounds correct and it is called a buffering input.

    Although you should actually reset your variable to 0 in the "On release" no matter what, using a blank event for example.

    Key is pressed => Add dt to variable (Delta Time)

    Key on release

    ... Variable < 0.5 => Do dash

    ... Variable => 0.5 => Do Slow time

    ... (blank) => Reset Variable

    This way your variable will only build up when you are pressing the key.

    And the time there are akin to pressing the key for half a second. Using dt, you are getting an exact value of 1 added each second the key is down in a consistent manner over all computers.

  • I'm afraid the best way to provide a fluid video is to reduce its overall quality, that is to say provide it in 480 p (a resolution of 720×480 pixels).

    This will reduce the download size of your video and will make it easier to be read across all computers/browsers.

    Once you have such a video, allowing only the user to play it once you have downloaded enough of the video to play it should also help out, as previously hinted.

    With videos, preload does not work the same as with audio or layouts.

    You have to "delay" the playing of your video until your reach

    On playback event

    "Can play": triggered when enough data is available to play at least a couple of frames, but there may not be enough data to play through to the end.

    or

    "Can play through": triggered when the browser determines that the load progress and transfer rate are sufficient for playback through to the end without stalling for buffering. However this is not a guarantee, since the transfer rate could drop or be cut off completely.

    Using "Can play through" will make sure you have loaded the whole video.

    But it requires to hold on on playing the video.

    Once this event triggers, you may then want to provide your user with a play button of sorts allowing them to launch the video and experience it comfortably.

    The user action is also required on certain devices, and some devices (like iPhone) WILL show the controls for the video anyway (because Apple).

  • Well, your code does exactly what it is supposed to do.

    It takes a X as target and will move your object until it reached that destination.

    What you are wanting is far simpler.

    You want, on click, to change the direction of the object.

    So by default have it going in a direction.

    On touch, change the value of the direction.

    The object is now moving the other direction.

    It gives :

    When dir is = 0, move the object to the right.

    When dir is = 1, move the object to the left.

    On touch, modify the value of dir so that it is either 0 or 1.

  • In that case what blackhornet hinted at wasn't even actual UIDs, but to create instances of your main object type (in your case array).

    The object type would contain an instance variable and each instances of the array would have a different value in this instance variable.

    This way it would be possible to pick a specific instance of the array according to the value of the instance variable.

    But in the end UID allow for the same picking efficiency.