DiegoM's Forum Posts

  • Thanks for filing the issue.

  • Just recently I realised the problem you are having with the total time marker and with dragging keyframes, I was surprised that neither of those things were doing what I thought they should be doing!

    What OS and Browser are you using? Normally we develop in Windows Desktop running Chrome, so the scrollbars are pretty chunky.

    I don't think there is an easy workaround for small objects, you can select the instance in the layout by clicking on it's corresponding track in the Timeline Bar, but the changes need to be made on the instance itself, either by modifying it with the various handles or through the Properties bar, that's just how C3 works.

    Can you explain what you had in mind for the MoveTo behaviour + Timeline, I am imagining an expression, but please explain.

    I'll go look at our error tracking specifically for timeline errors, normally we pay attention to the big offenders and the small ones slip through the cracks.

  • More often than not there is no right answers on how to implement a certain feature. The templates are meant to give a hint for beginners as to how a certain type of game might be implemented, but they are not the only way to go about it.

  • Originally we wanted to make sure that the transformation properties were handled properly, because they are the most important. Having said that, visibility opacity and color sound like reasonable additions.

    There has been a suggestion/expectation that changes to the z index of an instance should affect all children in a hierarchy, which sounds like a reasonable option to have as well, so I think that at some point all of those things will be added. Not to sure when though.

  • Not too sure if there is an easier way of doing this, but you could do it with a relatively simple script

    try
    {
    	// Get the url for the font in the project files
    	const fontUrl = await runtime.assets.getProjectFileUrl("project-font-name-goes-here.woff2");
    	
    	// Create a FontFace object. Make sure to use the correct font format, in this example it's "woff2"
    	const fontFace = new FontFace("ExampleFont", `url(${fontUrl}) format("woff2")`);
    	
    	// Load the font
    	const font = await fontFace.load();
    	
    	// Add the font to the document
    	document.fonts.add(font);
    	
    	// Apply the fontFamily style to your input element
    	document.querySelector("#myInput").style.fontFamily = "ExampleFont";
    }
    catch (e)
    {
    	console.log("something went wrong");
    }
    

    Instead of applying the style directly after loading the font, you could create a stylesheet in Project -> Files and then load it using the Load stylesheet action of the Browser Plugin.

    The stylesheet would look something like this

    	#myInput{
    		font-family: "ExampleFont";
    	}
    

    After the font is loaded, the style will take effect.

    Here is an example project doing all of that. https://www.dropbox.com/s/gzy5zdkghp7w5yu/FontLoading.c3p?dl=0

  • This is a bug. Thanks for bringing it up. A fix for it will come in the next beta release.

  • This feature is available in the latest beta. Eventually it will make it's way to a stable release.

    You can check it out in https://editor.construct.net/beta

  • Hello and thanks for the feedback!

    1) Keyframe manipulation could use a little bit of extra work.

    You can select multiple keyframes at the same time and move them all together. You can either pick them one by one, using Ctrl + Click or Hold Alt to use the keyframe selection tool to select all the keyframes in a rectangular area (is this what you mean by selection range?). If you then drag a selected keyframe it will drag all the selected ones as well.

    The feedback is the same as moving one keyframe though (marker and relative and absolute time tags) and it can be quite cumbersome to select an amount of keyframes that do not fit on the screen, because the zoom level does not go below 1x (which is a very doable feature)

    2) Keyframes are set for all selected instances that have received changes. So if you make changes in multiple instances they all need to be selected before setting the keyframes. That is how it works... but looking at it, it doesn't seems like the best workflow :P Keyframes should be set on instances that have received changes, regardless of being selected.

    I think that covers everything. We are always looking for this kind of fine grained feedback, so thanks again!

  • There is still no easy way of doing this.

    As an experiment you could try saving the JSON information of the root instance, and use that as a template to clone the whole hierarchy. Each instance holds a list of all the UID's which are it's children.

    So, you could:

    1) Clone the parent

    2) Look up all the UID's of it's children (get the JSON from the AsJSON expressions)

    3) Make clones of the children, add them to the cloned parent (using the existing runtime actions)

    4) Repeat steps 2) and 3) for each child until the whole tree has been cloned.

    I am not going to go into the specifics of the JSON format C3 uses, because all of this is not a great idea to begin with :P

    There could be hidden issues I am not foreseeing. I can already see that before setting the JSON for each clone you would need to NOT pass any hierarchy information, because it would be for the old one.

    I guess it can be an interesting thing to try out, but I wouldn't recommend it.

    I am thinking the runtime action that is going to end up doing all of this work will do pretty much what I just described.

  • Have you tried it in the latest beta? https://editor.construct.net/beta. The fix is not available in the stable channel.

    When you visit https://editor.construct.net you get the latest stable version, in this case r218 which doesn't have the patch that fixes the problem.

    We have just started a new beta cycle, so this fix will take a while to make it to a stable version.

    A word of advice if you decide to use the beta version. Make sure to have backups of your project saved in r218, once a project is saved in the latest beta version it is not possible to open it again in previous stable versions.

  • Yes, if all the tiles in the same template position have 100% probability, there is an equal chance for all of them to show up.

    As for the issue, can you open a bug in out tracker? I might have found and fixed a very similar issue but not quite exactly the one you are experiencing.

    Please make sure to provide all the steps that reproduce the issue, that is the fastest way to get it sorted.

    Thanks!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • This was missing. Has been added to the next beta.

  • There is a post by Ashley explaining what is going on in this thread

    https://www.construct.net/en/forum/construct-3/general-discussion-7/local-file-folder-saves-chrome-147071/page-5

    Please note: the feature will become unavailable in Chrome 85 after Wednesday September 30th. It will be available again in Chrome 86+, due for release next week.

    The underlying feature in Chrome for file system access was previously in an experimental state, and the experiment is ending on September 30th, making the feature unavailable in Chrome 85. The reason the experiment is ending is because it is now enabled by default and available to all websites in Chrome 86+, which is scheduled for release on October 6th. This means there's an approximately one week gap in between where the feature will be disabled in the latest Chrome release.

    The one-week gap is actually an intentional part of the way Chrome handles experimental features. It is designed to ensure websites using the feature rely on detecting the availability of the feature rather than a specific browser, since relying on browser detection has been a long-standing compatibility problem for the web. (Construct of course already relies on feature detection, which it uses to decide whether or not to show the save options - which is why you may see them disappear.)

    As I've previously noted, experimental features are subject to change at any time. (I've also updated the editor for future releases to more clearly state that experimental features are subject to change at any time). If you need to use the feature during the intervening week I would advise to use Chrome Beta, which is already on version 86 and therefore has the feature enabled. Alternatively you can temporarily go back to using the other save options like Cloud Save. Once everyone is on Chrome 86+ in a few weeks, the feature will have fully graduated to a widespread stable release, so there should be no further such interruptions to the availability of local file/folder save options in future.

  • It didn't work?

    I tried it out in preview mode, and when the preview window has focus the shortcut does not work. It does work if the preview window doesn't have focus.

    Here is the test project https://www.dropbox.com/s/6scfsvwism7tmwk/PreventKeyboardShortcut.c3p?dl=0

    Mind you, this won't prevent the default behavior on the editor itself, only on the window the project is running on, be it the preview window or where ever the exported game ends up running.

  • Currently there is nothing built in Construct to prevent the default behaviour of the browser, but you can use a small script to do it. At the start of your event sheet add this script.

    // Listen for the document's "keydown" event
    document.addEventListener("keydown", (event) =>
    {
    	// If ctrl + H is pressed...
    	if (event.ctrlKey && event.code === "KeyD")
    	{
    		// then prevent the browser's default behaviour
    		event.preventDefault();
    	}
    }, true);
    

    That should do the trick.

    Here is a list of the names for keys if you want to add other shortcuts you would like to disable

    https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code/code_values

    An additional note, if you end up using this, you have to make sure that the script is only executed once. Otherwise each time the event sheet that has this script will add a new event listener.