brushfe's Forum Posts

  • As lionz said, you're checking whether your enemy is either left or right of a very specific coordinate (the player's X). Your enemy will still move even when they're overlapping, because you've told them to keep moving at all times, either left or right

    If you want enemies to do nothing when they're overlapping, you have to change when you tell them to stop moving.

    Try using the edges of the player's sprite instead of X. You can use the BBox property (bounding box) instead. And add an else statement to make it a little neater.

    If Enemy.X is greater than Char.BBoxRight

    ...Enemy simulate moving left

    Else

    If Enemy.X is less than Char.BBoxLeft

    ...Enemy simulate moving right

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • You can also combine these into one condition:

    • For each Sprite

    • Sprite -> On Frame Changed

    • Sprite -> Frame = 2

    • Sprite -> Is "Shooting" playing

    This will create one bullet whenever any Sprite object playing "Shoot" animation changes to frame 2.

  • Personally I think the indicator of whether a layer is global or not should just always be a little globe icon in the editor. In that way nobody gets confused between global/overridden and it doesn't affect the naming in anyway.

    Or even simpler, just change the text colour of global layers in the layers window. Globals=green, Normal Layers=grey

    I really like the little icon idea! It would leave a lot more room for layer names in the menu, and is very a clear answer to the debate above. Colours can get tricky with visual impairment, so I'd certainly vote for that!

  • A "Has Animation" condition for Sprites would be so useful!

  • I wasn't sure if this was intended, unintended but still cool, or a bug — but you can save while editing a parameter. In other words, after double-clicking on any action with a parameter (system -> compare two values), you can press cmd/ctrl-S to save the project.

    Just in case that could cause any trouble. Or if it's not a useful report, delete this!

    I'll add my +1 for an improved simulate jump action, for all the reasons above and one other - Construct's biggest advantage is making games without coding.

    Getting into vectors is when Construct moves into code, and for something as fundamental as jumping, in a behaviour as fundamental as platform, this all feels like a no-brainer. It's clearer for beginners, cleaner for advanced users, and right for Construct's approach to game design.

  • Right, I see that; it can go either way - and probably cause confusion no matter which way you go (as the OP pointed out). Global does seem to fit because its the setting the user engages with in the UI (Global -> Yes), but as fedca pointed out, if you don't equate "global" with "overridden", it's nice to see that.

    I do agree with your point about the internal distinction; that seems ideal. But hey, the best time to plant a tree was 20 years ago, and the second best time is right now! :)

  • It's technically true, but wouldn't it be clearer/more practical to tell users that it's a global layer being shown?

    I get that Overridden is more precise, but then the question is overridden how/by what? (the global layer). And I think it'd be easier for new users to think of layers as either global or local.

  • It's a great feature! I know i've been a stickler for words lately, but I think the word "Global" next to the layer name instead of "Overridden" would be more helpful and more clear (and shorter).

  • I'd like to reuse the same Probability Table for AI decision making.

    For example, the table "DiscardDecision" would be empty, then each card in the player's hand added and weighted according to its importance.

    I can use the AsJSON to see that there are entries in the table, but I can't figure out how to clear those entries from it.

    Does anyone know if this is possible?

    Thanks!

    EDIT: It looks like recreating the table with the same name resets the content. Problem solved!

  • There's tons of examples to follow in the Examples on the Start Page, including one about Speech Synthesis. They work as great practical companions to the manual. Have you tried those?

  • I love the reasoning behind it, especially regarding all the educational benefits you've built into C3. If the option to hide them is a bridge too far, I'd vote for visual consistency to keep event sheets tidy. After reading your reply, the "→ Number" style is a great structure, so I'd try to keep them all like that. Using "+ Picked" is one way at it; it follows the syntax and the "plus" suggests it adds the objects to the functions.

    Thanks for the discussion on this!

  • It's a good point, and how much customization to add will always be a question for something with such a wide skill level of users.

    Chances are this won't go anywhere, but at the very least I hope a bit of visual consistency would give it some polish. For example, switching "(copy picked)" to "+ Picked" would match the formatting of "-> Number".

  • > Wait, I'm confused. Can't you do that with a boolean?

    > If true: do X, if not true: stop doing Y.

    > Am I missing something? I'm guessing I'm missing something.

    Yes but i was talking about the timer behavior where you have to stop each timer from an instance individually

    If you mean turning all of the actions in this screenshot into one "stop all timers" action, I would definitely vote for that!

  • I think what you (fairly) identified was that the problem of building a product for multiple audiences. Is Animate being designed for animators, or game designers? Some may say both. But the real issue with this is the question of choice.

    Every product asks to be chosen instead of the other options available to each audience. And when those audiences want and expect different things, with different (even competing) workflows, priorities, and language, the product either has to focus on one audience, or what they all have in common (which is usually very difficult).

    If clarity of purpose is the first step, the second step is superiority — offering something the other options don't, or don't offer well enough. We've seen that here: so much of the feedback has been to get Animate up to the basic standards of other animation software. Useful, but that only makes Animate just like all those other options. It doesn't give it anything above those expectations - a reason to choose it instead of what already exists. And there are some incredible options out there.

    It's not clear yet, to me, who Animate is designed for and what it has over their other options. But figuring out those two points is the first thing that should be sorted, before technical research and engineering begin. That vision is what defines the biggest features (are effects included or not?) and the smallest details (is it frames or steps?). I hope it's sorted, and just not been communicated.

    Personally, I don't think you need to be more patient - I think you're exactly the kind of user that would benefit from those points being answered. You've had given lots of amazing feedback, and more clarity would make that feedback even more useful.