Capping a value?
Moik
Member, PRO Posts: 257
TL;DR - How to make x=x+1 cap at 10?
I mis-expected what the "max" function would do, and when looking for alternatives the ceil seems to be about rounding and Constrain seems to be more of a post-process than the pre-process I'm looking for. Does one of the Functions take a value and insure a variable does not go past that boundary? Do I need to make "if x > 10 then x = 10" type clean-up commands at the end of my loops, or is there a single clean function which already does that?
Comments
Just place this condition in the rule that changes X to X+1:
When X is < 10
@Socks Elegant, thank you.
x=min(10,x+1)
Contact me for custom work - Expert GS developer with 15 years of GS experience - Skype: armelline.support
@Armelline That could be more suitable. There's a lot going on with the actor. I'm probably doing the constraints Socks suggested wrong.
@Socks Can constraints be broken out within a Rule, like a nested if/then/else? I only see the "When all are true" at the start. The button I'm attaching these behaviours to is the defacto "Go" button. If I add the X < 10 to the Whens at the beginning the button won't fire in some cases where it should. Not sure if my laptop is being finicky about not letting me drag and drop the Condition into the Do section, or if I should be able to.
I've not suggested using a Constrain behaviour (if that's what you mean) ?
I don't know what 'broken out within a Rule' means, sorry.
What ! Drag a condition !? Lol, sorry, my brain is overheating from a very hot night in London . . . you can't drag conditions ! Conditions are what you place in a Rule, to decide when the rule is triggered.
Examples of conditions would be . . . .
When touch is pressed . . or
When X=600 . . or
When Game.Time > 100 . . or
When A collides with B . . . and so on
. . . . when the conditions are met then the rule can trigger, so if you only want to add 1 to X when X is less than 10, your Rule would look like this . . . .
Rule: When X < 10
--Then do some stuff !
So, let's imagine the process by which 1 is added to X is when the hero collides with an enemy, the Rule would look like this . . .
Rule: When [all] Actor Collides or Overlaps with Enemy and When X < 10
--Then do some stuff !
Hope that make sense.
@Socks
re: constraints. I'm using it in the more common usage sense than the Behaviour sense. The "When X is < 10" part of your suggestion looked like a constraint to me; one of the things in the first section of a Rule.
re: broken out within a rule. I guess "ELSEIF" is what I should be saying. Like, within my knowledge of GS, It goes 1) "check a thing is happening" -> 2) "do option A if A is true" -> 3) do option B if A is false". Like, if GS Rules follow the usual programming logic of IF, THEN, ELSE. I was wondering if it's possible, in the middle of the Do or Else section of a rule, start another set of "When X is happening" style setups.
re: dragging conditions: The version of GS I'm on has stuff like Attribute, AutoRotation, Collision, Hibernate under a "Conditions" heading within the Behaviours tab list, which I drag from the Behaviours list into the Prototype of an actor to fill out the conditions used in their trigger. Dragging in the development sense rather than the gameplay sense.
I see, I was confusing constraint with constrain. Yes, the 'When X < 10' would be one of the rule's conditions/constraints.
I'm not quite sure what you are saying, but if you are asking can other rules with other conditions be placed within the Do/Else sections, then the answer is yes.
I've never seen any of that ! I never got passed version 12.10, I'll assume that stuff was added after 12.10 ?
@Moik are you using GameSalad Creator in OS X or Windows? It sounds like you may be using the Windows version (this subforum is for Mac). What version are you using?
New to GameSalad? (FAQs) | Tutorials | Templates | Greenleaf Games | Educator & Certified GameSalad User
@tatiang Don't tell anybody, but I'm actually using the Windows version
I ask my questions on the Mac because it gets faster responses and there's rarely a significant difference between the platforms.
@Moik, sneaky...
http://jamie-cross.net/posts/ ✮ Udemy: Introduction to Mobile Games Development ✮ Learn Mobile Game Development in One Day Using Gamesalad ✮ My Patreon Page
Lol! Well, the only problem -- as you can see -- is that in this case the question you are asking and the correct answer are platform dependent.
New to GameSalad? (FAQs) | Tutorials | Templates | Greenleaf Games | Educator & Certified GameSalad User