John Cutter's Recent Forum Activity

  • Thanks for the excellent replies. I wanted to provide a quick update because I found a problem with my VBA export tool. (It was an issue with how JSON was handling quotation marks.)

    I fixed the problem by adding three slashes "\\\" in front of each quotation mark (in the JSON file).

  • I'm working on a game that has dialogue in it. I put the dialogue (and some other data I need) into an Excel sheet and export it to a JSON file.

    Then I import this file into Construct 3 and convert it to an array.

    Unfortunately, I ran into an issue with the quotation marks. I solved it -- for now -- by using single quotation marks "'" but this makes the dialogue harder to read.

    How do I store quotation marks in an array? With triple quotation marks? For example: """.

  • Right after I posted my question I thought, "Hmm. I wonder if chatGPT knows anything about Construct 3? Maybe I should ask the AI my question!"

    Here's the response from GPT 4.0:

    It sounds like you're having trouble locating the properties of a text box in your Construct 3 project. Here are a few suggestions to help you find and modify the text box properties:

    1. Make sure the text box is selected: In the Layout view, click on the txt_final_score text box to ensure it's selected. If it's not visible in the Layout view, double-check your layers and make sure the layer containing the text box is visible and unlocked.

    2. Check the Object Types: Go to the Project Bar (on the right side by default) and look for the "Object Types" folder. If you don't see the text object called "txt_final_score," it's possible that it was accidentally deleted or renamed. In this case, you'll need to recreate the text object and assign the correct properties.

    3. Verify the object type: Ensure that the txt_final_score object is a "Text" object and not a different type, such as "SpriteFont" or "TextBox." The properties you're looking for, like font color and size, are specific to Text objects. If your object is a different type, you'll need to replace it with a Text object.

    4. Inspect the Event Sheet: If you still can't locate the text box, it might be created dynamically through an event in the Event Sheet. Look for events that create or modify text objects, specifically targeting "txt_final_score." It's possible that the text box is being created on a specific condition or layer that's not currently active.

    5. Verify the active layout: Make sure you're working in the correct layout. Construct 3 projects can have multiple layouts, and it's possible that the txt_final_score object is in a different layout than the one you're currently viewing.

    If you've tried all these steps and still can't find the properties for your text box, consider posting your issue on the Construct 3 forum or reaching out to the Construct community for assistance. There might be a specific issue in your project that requires a closer look.

    Friggin' amazing! And sure enough, the very first point fixed my problem! (I had my text box on a layer that wasn't visible or unlocked. Forgot about that!)

  • I recently picked up an old game to finish it -- but I'm having trouble with one of my text boxes.

    After my game is over I add up the player's score in big numbers at the bottom of the screen. I wanted to change the size and color of the text, but when I clicked on the text box object most of the properties were missing.

    That puzzled me, but then I thought, "Oh, the text box must not exist in my layout. I apparently create it in code!"

    Here's the problem. I have searched ALL of my code and I am not creating that text box anywhere. What's going on? What am I missing? Been trying to figure this out since yesterday...

  • I've been reading about a PlayFab plugin. Has anyone used it?

  • I'm working on a word game and I'd like to include a global high score leaderboard. What services are people using these days?

    I found the awesome LootLocker tutorial for Construct 3, but I'm trying to create the next Wordle and at higher player counts their pricing starts to get out of my comfort zone.

    I've found dozens of other options, but many of the recommendations are several years old. What's the current best option for something like this?

  • Hmm. I had a thought about the subscription idea.

    What if I added an additional query string when I launch my C3 program? Right now I'm passing the filename. What if I also passed some kind of code based on the current date, or something?

    For example, if a user went to the link on my subscriber-protected Shopify page and clicked on it, the URL would include query strings for the name of the file AND the current date (which would be encrypted). My C3 program could then use the encrypted date to determine if the user actually came from the launch page.

  • Thank you for the reply!

    I'm not overly concerned about protecting my assets. If someone wants to share my files then there's probably not much I can (easily) do to stop them.

    I'm *more* concerned about providing users with a simple experience. Here's what worries me:

    - Users could download the files but then forget where they saved them

    - A user might separate the audio and data file (not realizing they need both)

    Also, I'm worried that a user might contact me because they don't know how to find their files. If they are using a Mac I would not be able to help them, as I don't own and have never used one.

    ______________________________________________________________________________

    I have also considered offering a subscription and then allowing subscribers to stream the files. Unfortunately, the subscription is through Shopify and I don't know of an easy way to get subscriber info from there to my program. (Shopify has an API for this, but it looks pretty complicated. Not sure if I could get that to work in Construct or not.)

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I have a C3 program that uses audio (.mp3) and data (.json) files to drive a Bluetooth-enabled device.

    I want to sell these files on my Shopify store. What is the best practice for something like that?

    Would this work?

    - I .zip the files together and change the extension to something uncommon (.daff?)

    - Allow users to download and save the files locally

    - My C3 program will then allow users to navigate to the appropriate folder(s)

    - It will display all .daff files in the current folder

    - When the user selects a .daff file my C3 program will unzip both files and play them

  • This isn't working:

    const myPlay = runtime.objects.btnPlay.getFirstInstance();
    myPlay.enabled = True;
    

    This doesn't work either:

    myPlay.setEnabled(True);
    

    Any suggestions?

    Second Question:

    I have Javascript in two different events. I have a function in the first event. Is there a way to make this global, so the Javascript in the other event can access it? Right now I have the same function in both events...

  • Thank you for the reply! I'm not sure what Worker does so I'll do some research on that. Yeah, it sounds like I might be able to use a Construct timer to run the script. I'll give that a try.

  • I am working on a Construct program that includes some open source Javascript code. (To communicate with a Bluetooth device.)

    Part of the open source Javascript code runs in a loop every 100ms. What would be the best way to do this using Construct?

    Should I create a loop in Construct that calls the Javascript code every 100ms? Would this be reliable, or would the timing get off?

    Alternately, is there a way to do the looping in Javascript while Construct is still running?

    Here is how the Javascript code is structured:

    const timer = window.setInterval(()=> {
    		
    	(code...)
    
     }, 100);