lionz's Forum Posts

  • Not sure if helpful but I have a medium sized game now and hardly use function in function, I prefer to call the function then wait for a signal from that function and run the next one, in this way you have all of the function calls in an action block and can easily see the flow. If I must use function within function then inside that function will be waiting for a signal from the embedded one.

  • Sometimes the order of picking matters so on event 4 the 'not full' condition needs to be first rather than just pick the lowest slot first, so swap those two conditions. The other issue is with the create action, you need to bring that down to even 4 so it creates it on the picked inventory slot.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • main problem is you are clicking on a fruit then creating the same object. I would use a separate inventory icon object to create so you can see what's going on. Most problems should go away after this because you will now pick the fruit you clicked on to grab the animation name and create the inventory icon instead.

  • Nice! Yes I get what you mean, it is easy to think that it would just pick one condition but it actually runs lower down conditions if they become true before it gets there (in the same tick) so Else is important if you want an if/else type logic.

  • I'm saying for example when you collide and the shell is not moving you set it to moving, which makes the condition directly below true 'not not moving', whereas with an Else above each condition it would only run one of them.

    1. why is the player set to bounce when the shell is moving, that's what you intended? or is that a typo? Or if the player is not bouncing as you say, when is he meant to bounce?

    2. not sure on the direction as this is only set in one place and looks ok but maybe the else can tidy it up, or maybe it is a bug like when the shell goes to move state and moves past the player then it triggers the collision event again so this is why I say adding logging is good too!

  • without going too deep into it until we make some tweaks I think the main thing you are missing is an 'Else'. When you jump on the shell I think you want to do a one time check of what the state is at that point but based on your events if something else makes the status change as it is running that event you can end up with running more than one condition, so for the 4 state conditions under 'on collision with shell hitbox' you should add an Else at the top of the conditions that are meant to be an if/else type of logic so it only runs the one condition.

    When that is done, you can start to tidy up any other logic that interferes from the other events. Also adding Browser Log I find useful for debugging to check what is being run and in what order.

  • - for the family you just add 'card' to a family on its own. Because you won't be able to use 'card overlaps with card' or something like this, you can use one card as 'card' in the comparison, and use the other card as 'family' in the comparison, this allows you to distinguish card A and card B separately for whatever you need.

    - if you are having trouble with the picking it would be better to see something visual for how the game works, if something like 'on card clicked' is not enough to pick out the card.

    - for the final part you mentioned, it should be resolved by using the above card vs family - if card.variable=family.variable, where card is card A and family is card B.

  • I still can't get it to work. I thought I could change the direction platform behavior objects fell and that would make lining up/setting the cards easier, but I couldn't find how.

    Using instance variables didn't really make it work. I tried using frame tags too. I am not sure how R0J0hound recommended. The problem right now is that I can't figuere out how to make it so that cards that have the same variable/frametag/are-in-same-animation-and-frame to interact the way I need them to without interacting with every version of that object.

    In general it is to do with picking, you narrow the picked instances with a condition such as 'on object clicked' or 'variable=n', otherwise it picks all instances. In terms of merging, because it is difficult to pick card vs card that's why the suggestion comes above from Rojo about using card vs family to specify object A against object B.

  • why would you change colour of the text on an object you are immediately destroying? how do you know it destroys it 'at the end of the loop' if it is running every tick, it would just look the same no?

  • You should set up some instance variables on those cards so you have more control over what's happening particularly the level of the card. I don't know your upgrade mechanic and how outcomes are created but if for example you want to combine 2 cards you could only allow if a lvl 1 is selected to click on another lvl 1 card, then combine into a lvl 2 so destroy both then create a new lvl 2 card and pick the frame at random 3 or 4.

  • Nice! good luck!

  • put the backpack on the HUD layer

  • The globals can remain in one sheet so it must be a different problem. The events that modify the globals need to be on an event sheet linked(included) to the layout you are on.

  • You could give the dummy two variables one to say what it is assigned to, unit or building, and another to track if it meets the condition of being close to a unit. Then if the dummy is of type 'building' and var unitNear=true then don't target it by a condition on the main target event.

  • Not sure what went wrong here but you definitely can set the string in general. Are you trying to use 'current.layoutname' specifically because you just need 'layoutname'. Is the variable of type string? If it's number it would produced NaN as a result you can see this in debug view.

    Or possibly it is to do with how your event sheets are linked, it may not be reading the event at all or running it (though if you say a number worked then maybe it is running it). You can also share the file if you need further help.