oosyrag's Forum Posts

  • Here is my implementation of flick scrolling - dropbox.com/s/t5y5mwucvy8zpqt/flickscrollexample.c3p

    Note that this is partially incomplete, as it does not account for "stacking" of flicks to reach faster scroll speeds. To compensate, I've used a deceleration value of 0.97, instead of the standard which I believe to be 0.95.

    It should be compatible with the 8 direction behavior with some minor modification, but I haven't tried that.

  • I updated it, it should work for overlapping objects now. Basically anything "in front" of the player sprite should get sent to the layer above, which has the "force own texture" property applied on it and allows for the silhouette object to use the "source in" blending mode, which means it will only appear when overlapping another opaque object below it on that layer.

    Event 2 basically z-sorts everything by y position.

    Event 3 handles moving objects that are below the player to layer 1 and back to layer 0 when they are above the player

    Edit: Recommend utilizing the drawing canvas method below by dop, it is cleaner and less likely to run into unforeseen issues compared to moving objects between layers.

  • This is a bit of an advanced trick, involving some z-order, blend modes, and layer shenanigans.

    Here's a quick example I put together. It definitely doesn't cover all cases and breaks when you have more than two objects to deal with at the same time, but I don't have a solution off the top of my head for that. Someone else who has dealt with this before could probably offer a more elegant way to approach it.

    dropbox.com/s/4bmy75nep4hpv02/zsilhouetteexample.c3p

  • The easy way would be to pin a second invisible helper object as your collider, and just make the entire object smaller while using the bounding box.

    Otherwise, manual entry, for each image point...

  • When setting collision points, you can right click and set to bounding box.

  • You can change viewport size in the project properties.

  • Try making your I frame and viewport wider and scaling down.

  • Are you in control of the contents?

    Format with css, rearrange elements, remove unnecessary text, resize images, ect.

  • I don't believe you'll find any tutorials. There are literally no other games like Baba is You as far as I know.

    I can imagine how you might get started though.

    For example, "Something" "Is You" would toggle enabled tile movement default controls on "Something".

    "Is Wall" would be a toggle the solid behavior.

    And "Death" could be a condition to check when overlapping something that has "Is You" enabled.

    Naturally this will get more complicated with more conditions and combinations to check, but Baba is You is not a simple game.

    You'll want to start out with a grid, tile objects, and "Word" objects associated to these tile objects. The state and neighbors of the word tiles, which you can check with the overlapping at offset condition, will determine the behaviors of your normal tile objects.

  • Generally speaking, you need to either have your iframe large enough to fit the contents, or you need to format the contents so they fit within the width of your iframe.

  • You can tag your audio files upon playing and use the condition

    Is tag playing

    True if any audio with a given tag is currently playing.

  • Unknown, it could be an oversight. The tween feature was added much after the multiplayer.

    Logically I agree the tween destroy shouldn't be different than a direct destroy, but I don't know what happens under the hood.

    If you create a minimal project showcasing both methods and the difference between them, you could file a big report on GitHub and get an answer pretty quickly, either as a bug or unexpected behavior.

  • Depends on what ad api you're using. I imagine there are hooks/triggers for when an ad is served or failed to load.

    If you're using the built in mobile advert option, try checking the manual entry on it. Other plugins will have documentation too.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • If an ad fails to load, display "Thank you for playing my game! that I poured my heart and soul into and the ad revenue I rely on to feed my 4 kids, put them through school, and support my mother in the hospital." instead.

    Edit: Option 2 - "If you enjoyed playing this, check out my other games! - link"

    If you can't fill the space up with monetized ad, might as well advertise something else.

  • - If I’ve got an attack that puts out multiple hitboxes, I’d probably need something that would prevent an enemy getting hit multiple times if it’s meant to be a single-hit attack. I have no clue how I would go about this. Do you have any ideas?

    I didn't think about this much, but here's what I would try.

    You could use a simple flag on the receiving object, isHit, true or false. When you check overlap with hitbox, this must be false, and it would be set to true so that following hit events no longer run until you set isHit to false again. Could be until the end of a tick, could be longer. Also can be used for invincibility frames, although I think the traditional way to do that would just be to remove the hurtbox entirely. Edit: Pick nth instance is probably the way to go.

    For the overlap check, you could also add a pick Nth instance (first). If there is just one overlapping, no problem. If there are multiple, it would only run on the first one. You'd have to work out some sort of priority system if there are hits of different types/damages that could trigger together.

    Otherwise just sticking with single hitboxes is perfectly valid too.

    I haven't tried this and there are probably kinks to work out, but I'm sure it can be done.

    - Say if player one and player two swing a ground attack at slightly different times. Player 1’s attack ends first and the function that called for the Hitbox to be created calls for the Hitbox to be destroyed. Would this not prematurely destroy Player 2’s Hitbox? I’m also not sure how I could prevent this. Do you have any ideas?

    You would associate each hitbox with it's owner sprite. Most straightforward way is by instance variable. Upon creating a hitbox for a player, set the hitbox instance variable "source" to player.uid. You can then pick by this "source" instance variable, if you only wanted to remove boxes for a certain player.

    I think you can do something with hierarchies as well? I haven't explored that at all.

    - When you say the hitboxes don’t have to be perfect rectangles, are you saying I can make an irregularly shaped area by overlapping multiple rectangles, or are you saying there’s some way to turn an instance of the universal hitbox sprite into a circle or oval during runtime?

    I was thinking irregularly shaped area with overlapping rectangles. But that was just an idea since you seemed interested in more accurate hitboxes.

    There's also nothing keeping you from having both a circle/oval hitbox along with your rectangle hitbox, besides a little more complexity. You could also make it the same way with a function and resize as needed. Those two basic shapes should get you quite far with possible shapes with minimal effort, especially compared with having to make a unique collision bounds for every frame of every animation you plan to have in the game.

    You can put the two shape hitbox objects either as different animation frames of the same object (which means you add one more parameter to your function to pick which kind to make/animation frame to set), or you can use two separate objects and put them in a family to treat them the same.