dop2000's Forum Posts

  • The easiest way is to put all variables into a dictionary. Then write Dictionary.AsJSON to a text file.

    To load: read the text file and use 'Dictionary Load from FileSystem.FileText'. Then extract all variable values from the dictionary.

  • That depends. If you're running your game as an Android app on Google TV, the remote will likely function as a standard gamepad.

    If you want to use an IR remote on a PC, you'll need an IR receiver, a driver for it, and possibly a Construct addon.

  • "Is visible" condition should be above "Pick random". You want to first pick all visible instances, and then pick a random among them.

  • The problem is that objects are not destroyed instantly. So the loop can still pick the spawner instance which has been destroyed. A simple solution is to check another condition, say make destroyed spawners invisible and pick only among visible instances.

    +Repeat NumberToGenerate times
    ++Spawner Is Visible
    ++Pick a Random Spawner Instance
     Spawner: Spawn EnemyBase
     Spawner: Set invisible
     Spawner: Destroy 
    
  • Definitely use the hierarchy feature, remove all containers. You can create the entire menu on a different (unused) layout, add all objects to a hierarchy. Tick "create hierarchy" checkbox in "Create object" action. This will create the entire menu!

  • I'm not sure I understand. Do you want to re-color portions of the sprite in runtime?

    We use ReplaceColor effect in our game and it works quite well.

  • Because you are not picking an enemy instance. If you have multiple enemies, without picking, the distance() expression will only check one of them.

    I suggest using Line Of Sight behavior instead - add it to Enemy sprite, set distance to 150px.

    Enemy has LineOfSight to Player : Player subtract 1 HP
    

    Also, if you have multiple enemies, disabling their event groups is not a good idea. It will obviously disable all enemies, not just one.

  • You can access the file in plain text using this link:

    https://drive.google.com/uc?export=download&id=FILE_ID
    

    However, you probably won't be able to request it with AJAX because of cross-domain restrictions. Ask ChatGPT about how to do this with Google Apps script instead, it's pretty good at that stuff.

  • Yeah, you can simply use a second sprite for shadow. Or paste the plane and other objects on a drawing canvas. And apply some effects to it - 0% brightness, blur etc.

  • Why is it not a good idea ? Im using js and html objects for things like drop down menus etc, ofc might impact performance if there is alot of html elements but i havent noticed yet.

    I have a bias against using HTML objects since the days of Construct 2 - there were tons of issues with them back then. But I admit that almost all of those problems have been fixed now. Still, I remain a bit skeptical :)

  • CSS means using HTML object instead of Text, which is not a good choice in many games.

    fanusgames Here is a demo:

    dropbox.com/scl/fi/qne4sezq4tnml8vb2pbrw/TextAutoSize.c3p

    Make sure the height of the text box is big enough to fit two lines of text at max size, otherwise TextHeight expression won't work.

  • It's a known issue, fonts are rendered differently on different devices.

    Make sure the font is imported in the project.

    Try different Vertical Alignment options.

    Try a different font

    If nothing else helps, use a SpriteFont.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • When I assign a '-' value to Y, the character dies when it touches the underside of the platform.

    Then add another condition, checking that the character is above the platform. Character.Y<Platform.BBoxTop

    You can also place an invisible sprite with a smaller polygon size inside the platform and use it for collision checks.

  • Use "Overlapping at offset" condition. X:0, Y:-2

    I also suggest changing your events like this: