pandabear7413's Forum Posts

  • Edit: After 6 months of using a 16x10 aspect ratio (1680x1050), I decided to move to 16x9 (1920x1080). With the former there were always bars on the right and left sides of the screen, and it seems like every Windows machine I've encountered uses a 16x9 display setting. My game is Windows-only, so ymmv...

    Original post:

    I'm building a desktop platformer that will support full-screen mode. My layouts will consist of a set of "floors". These are single platforms that run the length of the layout, with several platforms per layout (stacked on top of each other if that helps to visualize), and doors that transport the player to the other floors (platforms) on the layout. The player should only see the backgrounds/objects of the floor they are currently on.

    I'm trying to determine the best viewport size and grid size to support this. From my research:

    - 1680x1050 and 1920x1080 are both good vp sizes, but 1680 seems to be better supported

    - binary grid sizes (e.g., 32/32) seem to be preferred, but that doesn't align with the viewport heights. I.e., 1050/32 = 16.4

    - It seems pretty important to have my tileMap (platforms), tiledBackground (backgrounds), and viewportSize all align. That way I can 'stack' my floors in the layout and not worry about part of another floor showing in the viewport. I can also achieve this with some padding above/below the 'floors', but I feel like I should avoid this.

    Any best practices for what I'm looking to do, and what sizes I should be targeting?

    Thanks

  • In your case, I think you will find using zip files useful.

    Thanks for the clarification! For what it's worth, the .zip approach doesn't help in my situation, since I would need to zip up the separate animations into their own zip files before import. It's less work to just import the folders (that have just one animation each) and move the animations manually to the parent folder after import. It's not a huge pain, but I still think it would be helpful to have a flag in the setting .json where you can turn off creating a folder at that level and lower levels.

    And again, great work DiegoM with this import feature!

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You can import all animations first, and then crop edges for all animations with a single click.

    Thanks dop2000 for making me look twice! For some reason I remember there not being an 'apply to all animations' option. Maybe I was thinking of an 'apply to all animations IN FOLDER' option, which would have been helpful with my old workflow. But this new import feature makes that a thing of the past.

  • I used this importing feature at length for the first time today, and it's cut my sprite import workflow by 80% at least! My game is very animation-heavy, so this equates to a huge time savings. Great job Diego and team for this!

    A couple thoughts:

    - What's the reason to have a folder created for each animation? This leads to a lot of folders with just one animation each. I can then manually move the animations individually to another folder, but would have to repeat that process whenever I re-imported the animations. It would be great if multiple animations could be created in a single folder. Perhaps this can be a flag in the settings .json?

    - One step I perform for every animation after import is 'crop transparent edges'. Can this be another flag in the settings .json?

    Happy to submit a feature request for these, but would like to understand if they're feasible before I go through that process.

    Thanks

  • I guess I'm not understanding how digital signatures all involved, and what I need to do there. Can you please help me understand how they're related to what I'm looking to do? I searched in the forums but the only posts I found re: digital signatures had to do with problems installing the C3 editor. Thanks, sorry for being such a noob.

  • Now the options like a digital signature would obviously add some tracking...

    Thanks for the feedback, makes me feel better. Just to make sure I'm understanding you, are digital signatures only relevant if the game is hosted?

  • Instead of hosting my game, I'm planning to export my game to desktop (Windows and Mac using the WebView options) and make it available for download. Out of an abundance of security, I want to eliminate any personal information in the files - my computer's IP, my name and address, gps locations, system info, etc. I don't have any of this information in my C3 code, but I know that some files (e.g., .jpg files from a digital camera) contain additional metadata that may include this personal info. I admit I don't know if/how Windows stores such info.

    Is there anything I should be doing to make sure the files I publish (the C3 export) don't include any personal information?

    Thanks

  • In my platformer, I'm building a grenade mechanic where the explosion blows enemies into the air. I gave the enemies Bullet behavior, and on collision with the tilemap platform (i.e., when the fall to the ground) I divide the bullet speed by 2 to keep them bouncing much. However, the bullet speed never gets down to zero, it seems to hover around 20 or so, so the enemies end up slowly gliding across the platform after they stop bouncing.

    Looks like this is just how Bullet works per https://drive.google.com/file/d/1nV4sF-U3gTBHhNZLvg83SfD1d7I-JSEb/view?usp=sharing. Is there a way to get the enemies to just stop moving after a while? I thought about disabling the bullet behavior when bullet speed gets below 100 or so, but that seems like a kludgy fix.

  • It dawned on me that I can just check to see if the range is already set to LayoutWidth, and if so ignore.

    I must be tired...

  • In my platformer, my enemies will not 'see' the player from far away. But when the player gets close enough they will see the player. And once they do, I want them to follow the player until they are killed.

    I was hoping to use the following code. I want to use 'trigger once' to keep this code from running every tick for each enemy once they have the increase LOS range. But 'trigger once' makes it so that this code only runs for the first enemy that sees the player. I know I can use an enemy instance variable like 'seesPlayer' and set it / check for it, but I'm all about keeping IVs to a minimum (I have so many already).

    Is there a way to write this code so that it runs only once for each enemy object?

    Thanks

  • Ok I think I figured this out:

    pick enemies

    for each enemy

    pick enemyBox by comparison (enemyBox.uniqueID = enemy.uniqueID)

  • (moved this from the general discussion forum)

    I have an enemy object type and an enemyBox object type. Each enemy object has an associated enemyBox object, and they both have a uniqueID instance variable that ties them together. In other words, an enemy and an enemyBox are related if enemy.uniqueID = enemyBox.uniqueID.

    Here's what I'm trying to do. I start off with a subset of enemyBoxes, for example: pick all enemies on a given platform. From that subset, I want to pick all of their related enemyBoxes. In other words, pick all enemyBoxes that have a uniqueID matching a uniqueID from the previously picked enemies.

    How would I code that in C3? It's the bold part that's throwing me off.

  • You do not have permission to view this post

  • Yeah I get what you're saying. But I do have lots of logic that makes decisions based on animation state (when the collapse animation ends, when frame 2 of an animation is played, etc), so even if I moved all the data over to the enemyBox object, they'll still be plenty of instances where I'll need to get data from the associated enemy object.

    I have 1 year's worth of code where enemy was the only object, and I recently determined I need to have an enemyBox object for positioning. Live and learn. Thanks for the help!

  • Not really understanding the problem here? If you want to create a specific enemy then you have to pick that enemy anyway, nothing to do with families. If the animation object is in a container with the enemy then great.

    Here's one scenario: When an enemyBox is hit by bullet, stop enemyBox's motion (using platform behavior) and reduce enemy's health

    Let's assume the enemy object has the relevant enemy data in instance variables (health, speed, power, etc), and the enemyBox object has positioning info, collision polygon, and Platform behavior. And the enemy and enemyBox are in a container.

    If I was able to use enemies and enemyBoxes families and put them into containers together, I can write the above with a single condition and 2 actions and it will apply to all enemy types. But because I can't use families with containers, I need to write this code block specifically for every enemy type.

    There are tons of places in my code where I leverage families for actions to apply to all enemy types, so I foresee the issue above being replicated many times.