DiegoM's Forum Posts

  • I see, at the moment you can only use a timeline to control the position, size and opacity of a video instance. There is still no way to preview the contents of the video in the editor, using timelines or otherwise.

    We will consider this feature for the future.

  • That feature does not exist.

    Do you mean something like the audio tracks, but for video instead?

  • Please file an issue in our tracker, following the guidelines.

    github.com/Scirra/Construct-bugs/issues

    In this case the most important thing would be attaching an example project demonstrating the problem. I tried doing what you described myself in a new project, and it looks like it works as expected, so I am thinking there is something particular about your project which is not obvious.

    If you can't reproduce the problem in a minimal project and don't mind sharing your project, including it in your issue is the next best thing.

    If for some reason you can't share it on our public tracker, then you can send your project to me at diegopoq@construct.net and I will take a look.

  • Sounds like something C3 could handle no problem.

    A 50 x 50 pixels image at 32 bit depth should be around 10 Kilobytes (just tried it by creating one in Windows), which isn't a lot. 500 images of 10 kilobytes would be 5000 kilobytes, which is 5 megabytes, which is still a very small amount of memory.

    The total amount of memory taken shouldn't be a problem at all, as for the rendering...

    If you create an animation with 500 different frames, C3 ends up packing everything together into as few textures as possible.

    Just tried out doing that in the editor to see what would be generated, I created an animation with 500 frames, then right clicked on the project folder in the Project bar and selected Tool > View sprite sheets. C3 ends up creating 8 textures of 2048 x 2048 which will take up 32 megabytes in RAM, which isn't a lot.

    Since all the instances will be of the same object type, it means they will all use the same textures for rendering, so no memory overhead there. All the instances will use the same 32 megabytes of loaded image memory.

    Finally, 75 instances will not be a problem at all.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • In the next beta cycle, a globe icon similar to this 🌍︎ will be used to denote global layers and overridden ones, instead of text.

    There will also be a new context menu option added in the Layers Bar to open the layout which holds an original global layer by right clicking on an overridden one.

  • Make sure you have given C3 permission to use the system clipboard

    support.google.com/chrome/answer/114662

    Under construct.net look for editor.construct.net and in there for the value of Clipboard

  • pikawilliam11

    I too thought that this might be related to Opera GX, so I tried it out... and didn't see any crash. So it might be something very specific to your setup.

    Also, when you take into account that Opera GX is built on Chromium, the open source project which also powers Chrome... it's even less likely that there could be a bug that happens in Opera GX but not in Chrome, because they are essentially the same browser with a different coat of paint.

    None of this is particularly helpful, but I thought to point it out.

  • I have heard from people that the ability to play audio from a timeline is reasonably in sync, but I don't know exactly how the feature is being used.

    Truth is that relying on the timeline play head and the audio that is playing to be in sync is not adviced, if you are looking for high accuracy that is. This is because the timeline basically just acts as a trigger to start playing a sound, after that the audio and the timeline continue doing their own thing separately and parity is not guaranteed.

    The audio tracks serve more as a visual aid to better control when audio will be triggered and as a general guidance on to how long the audio will be playing for, relative to the total timeline time.

    Having said that, you can run your own small tests with the feature and see if it will work for you.

  • The start page received a significant overhaul at the start of 2022.

    All of the example projects can now be found in the example browser which you can find by either clicking on the Browse Examples button in the Start page or through the main menu Menu -> View -> Example Browser

  • This isn't possible, you can however, define your properties in the constructor and initialize them to default values and then define an initialization method that receives your custom data.

    Something like this:

    	class Projectile extends ISpriteInstance {
    		constructor()
    		{
    			super();
    
    			this._foobar = null;
    		}
    
    		Initialize(foobar)
    		{
    			this._foobar = foobar;
    		}
    	}
    

    Then you can do this

    	let projectile = runtime.objects.projectile.createInstance("main",playerObj.x,playerObj.y, true)
    
    	projectile.Initialize(/*your custom data goes here*/);
    
  • Ah ok, I was asking because that fix wasn't specifically related to your issue, so the problem you were having might still persist.

  • Have you tried it out to see if it solved your problem?

  • dop2000

    If I recall correctly I didn't do it the first time around just to get something out.

    In the mean time, it is now possible to copy and paste animations between object types. You can copy them using the context menu options of the animations panel or keyboard shortcuts (make sure focus is on the animations panel by clicking on it), close the Animations editor, open it again for a different object type and paste in the animations panel.

    You can copy individual animations or sub folders.

  • Not really sure exactly how you plan to save and load all the data, but as far as creating inheritances in Javascript, just go with classes.

    Prototype inheritance (and everything surrounding it) is legacy at this point. Classes will do the same (and a few extra things) and are much easier on the eye.

    One thing to note is that, even though prototypes are legacy, they are fully supported, so you can use them if the opportunity arises. If you are still figuring things out though, just go with classes they will likely cover 99% of the cases.

    Depending on your needs you might be able to get away with something easier though.

    If your data objects don't have nested properties (properties which are objects or arrays with more data in them), you can rather easily use Object.assing to create a new object with the properties from a list objects.

    Object.assign(
    // the new empty object were all the properties will be applied
    {}, 
    // The first source object to copy properties from
    {
    	x: 0,
    	y: 1,
    	name: "foo"
    },
    // The second source object to copy properties from
    {
    	name: "bar"
    	damage: 5
    }
    // As many source objects as needed can be added
    );
    

    Something like that, will create a new object that looks like this:

    {
    	x: 0,
    	y: 1,
    	name: "bar",
    	damage: 5
    }
    

    The properties of the first source object are copied into the target (first empty object), then the properties of the second source objects are applied onto it, any existing properties are overwritten and new ones are added.

    Using this approach you can allow the player to select a base item, then a specific one, merge them and the result becomes the new item.