99Instances2Go's Recent Forum Activity

  • I think that you are using 'Set layout scale'

    Got to use 'Set layer scale'

    https://www.dropbox.com/s/wcrtfrxcs83ve ... .capx?dl=0

    You can use 'Set layout scale', but then you have to fiddle with the Scale Rate property for the layers.

    https://www.dropbox.com/s/d10aahxeebq0j ... .capx?dl=0

  • ACur = analogue number at this moment / x axis of a controller at this moment

    I assume that you know how to read the controller.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • When it is in steps of 20 ...

    And you have 3 frames (zero index)

    Then ... AnimationFrame = Max ( floor(value/20) , 2 )

    When you want to spread a range over 3 frames ....

    AMax = Maximum allowed analogue number.

    AMin = Minimum analogue number.

    ACur = analogue number at this moment.

    AMax - AMin = Range .. Now lets normalise those with as rule that Amax should return the value 2 (zero based)

    Ratio = 3 / Range

    Norm = Ratio * Acur

    Norm = (3/Range) * (ACur)

    Norm = (3/ (AMax - AMin) ) * (ACur)

    This returns numbers with decimals, animation frame will not take numbers with decimals, so we have to round that number.

    So

    AnimationFrame = Floor(Norm)

    AnimationFrame = Floor((3/ (AMax - AMin) ) * (ACur))

  • faulknermano

    I used to picture arrays that way, but it got me into problems.

    Now i picture them as threes.

    Each X is another branch on the trunk.

    Each Y is another branch on the X.

    Each Z is another branch on the Y.

    Or.

    Each Z is a branch on a Y, that is itself a branch on the X, that is itself a branch on the trunk.

    Now i always know where my values are.

    Where = the index.

    Value = the stored value on that index.

  • Yet, it is very legit to set an array to size zero on the X-axis, and minimum 1 on the other two.

    The purpose is this.

    Add a new index (on X) based on a loop, so you end up with an array with a width = a loopindex. Not one less, not one index more.

    So .....

    Some group

    Some condition

    ____ Array > action > Set size ... (0,1,1)

    Some loop

    ____ Array > action > Push (front) < makes a new X-axis element on X = zero

    ____ Array > Set at XYZ ... <--- With X = ZERO to fill values on Y or Z .. example = at (0,1)

    or

    Some group

    Some condition

    ____ Array > action > Set size ... (0,1,1)

    Some loop

    ____ Array > action > Push (back) < makes a new X-axis element on the end of the X-axis

    ____ Array > Set at XYZ ... <--- With X = Array.width - 1 ... example = at (Array.width - 1,1)

  • ^^^^ When its about a 'choosing' random. I always do that too.

  • This should be your fix.

    https://www.dropbox.com/s/tbab6vf5mpdxo ... E.c3p?dl=0

    Set the bullet speed in event 34 very low to see that it works flawless. (flawless as far as i understand your system)

    I might have scaled the collector, i forgot (to debug easyer)

    So, do not start from my version, all (and only) changes you will find in the collection group + a boolean in the cookies.

    Problems ? The 'once while true' had no parent. Without parent it only happens once. Because there is no parent to be changed to untrue (to restart the cycle). The event that was supposed to restore 1 cookie to its default behavior when the sucking was interrupted, picked ALL cookies. I never use a logical 'OR' to filter the picklist, that is confusing and often dont work.

    Hope this fixed your problem. Not sure though, dont understand everything in the events, although the flow is NEAT.

  • Bring the separate dictionary's in a family.

    Now you can run trough them with For Each (family).

    I always have problems with picking dictionary instances, i gave up on that.

    Why not use 1 array ?

    Store At(x,y)

    x = 0 is first dictionary ... x=1 is second ... and so on

    y = 0 is first UID ... y=2 second UID ... and so on ...

    Meaning ... the value Array.at(4,6) represents the UID in the 5th dictionary and the 7th UID.

  • If they are instances of the same object, give them a instance Boolean 'Picked'.

    If they are different objects, add them all to a family, and assign the Boolean 'Picked' to the family.

    Some condition that captures when this can happen. <-- no idea, you did not explain this part.

    ___Empty condition.

    ________Set 'Picked' to false <-- set them all to the starting point

    ___For each dictionary key

    ___Pick object with UID = int(Dictionary.CurrentKey) (or CurrentValue, depends on how you filled it)

    ________Set 'Picked' to TRUE for the picked object

    ___Is boolean instance variable set (for object) < picks those we marked in previous loop

    ___Pick highest/lowest (instance var for object)

    ________At this point the object is picked and you can trow actions at it

  • In c3 you can have (a big messs of) SpriteFont objects with different properties and create them by name.

    I think.

  • ** Takes a look at his shoes **

    Did not know about the middle mouse button.

    (would have been the right tip for topic starter)

99Instances2Go's avatar

99Instances2Go

Member since 12 Feb, 2016

Twitter
99Instances2Go has 2 followers

Trophy Case

  • 8-Year Club
  • Email Verified

Progress

9/44
How to earn trophies