lionz's Forum Posts

  • Think I answered this one already, for each (ordered) by rank : move to top/bottom of layer

  • Of course it depends on the exact design of the game and how it works but for example on start of turn you can predetermine the enemy actions then have the player do theirs and add each action to a row as such :

    1. enemy1 > block > target=enemy1

    2. player1 > magic > target=enemy1

    then you run the actions in turn, popping the top of the array each time so you are always running row 0.

    1. run block function on family instance enemy1(updates variable that they are blocking)

    2. run magic function on family instance enemy1(apply damage to enemy1, show magic related UI etc)

  • See above I forgot to mention that you don't need to import from an outside source. You can create an array file in Construct then load it into the array and use the logic I mentioned where the row is the wave number. It's on the project bar at the bottom create array file and then load it into an array on start of layout.

  • I should've mentioned you don't even need to import it, you can create the array file in Construct and load it into the array if you want a table of stats.

  • This looks fine. You could add all the stats to CSV or JSON and import into an array and use the wave number as the array row number to make the event smaller (i.e. set TimeMin to array.at(CurrentWave,1), set TimeMax to array.at(Currentwave,2) but there is no downside really to applying the actions like you have them at the moment.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • As you mentioned in the post, this way of making it will get overblown when you add detail and many things happening at once with many instances. You need more control over the gameplay and since it's JRPG I would create a turn system in an array. For each action you can add the person's turn to a new row and then run each row in order and pop off the top row when it's done. This also provides visibility of what's happening. Within the row you can include things like the target UID, even the damage calculated so you can see it before it's acted out.

  • Storing in the array as you described seems like the way. If the focus is on operators then I would keep it simple, have a sum of two numbers and the child chooses the operator in the middle. Or alternatively have the operator and then child taps 2 numbers that will go before and after. I don't think giving so many options to make 10 is fun or educational.

  • I would anticipate some logic such as when you open the inventory, spawn the icon that is array.at(0) in slot 1 and array.at(1) in slot 2 etc. That way it is always matching what is in the array. You need to create logic to keep the visual inventory matching what's stored in the array.

  • When calling the function with the variable it looks fine but when you set up the table I think that's wrong as you will only have a shuffled 1-7 when you need 1-300. The length should be 300 (or qcount) and offset 1.

    To pick only 7 questions you do it at the function call level with the incrementing variable. You can view the permutation table in debug view, it should be a shuffled output of 300 values, the first 7 of which become the questions using the function call and variable.

  • You need to use the sprite object in the sub event and then compare sprite.animationframe = localstorage.key then apply the action sprite destroy

  • Assuming you are talking about the Mask object, and that the Mask is not in a container already with Collision object, the Mask doesn't relate to the Collision object. In your mind it does because you pinned it but for Construct logic you are not picking a Mask.

    You can put them in a 'Container', Mask and Collision, which means when you create Collision a Mask will be automatically created and also then that Mask relates to that Collision in events, which I think is what you want here.

    Once in a container you can remove all the sub event logic which isn't necessary such as the for each and the pick nearest instance to self. For example, collision var=null : set Mask animation to idle is all you would need.

    Also careful responding to your own post as it removes it from 'Unanswered Topics' and people sometimes miss it thinking someone responded.

  • Take a look at the 'Advanced Random' object, you can create a Permutation table which can generate a shuffled output of numbers from 1-300.

    So if the Permutation output is 97,3,155,9,88.... for example, you can access the values with AR.Permutation(0) which would be 97 and AR.Permutation(1) which would be 3.

  • Then localstorage.key

  • You can get the localstorage item then say if sprite.animationframe = localstorage.itemvalue

  • I made something similar and I set their go to point to something within a range like x=random(mouse.x-30,mouse.x+30), y=random(mouse.y-30,mouse.y+30), this gave the effect of gathering in a spot but not overlapping.

    If it needs to be really specific then you can decide where the positions are for the squad and assign each one an ID which is a specific position when you click, so the leader appears at mouse click, and the rest arrive at one of the other chosen positions based on their ID.