How do I use math?

Get help using Construct 2

Post » Thu Feb 11, 2016 7:04 pm

Hi!

I need to now how to use a specific calculation.

I want to do an action each 1,4,7,10th step etc.

Now i found out the formula for that would be "3n-2".

Thing is, i have no clue how to use that in Construct 2.

Is this possible to do?

Thanks!
B
10
S
4
G
3
Posts: 169
Reputation: 2,519

Post » Thu Feb 11, 2016 7:18 pm

Hi,
you need a variable for your n.
So its 3*"variablename"-2
Then everytime the event runs add+1 to this variable.
(in fact thats exacly what you do in your mind with the sequences 3n-2 you add +1 to n on every run.)
B
7
S
2
Posts: 56
Reputation: 583

Post » Thu Feb 11, 2016 8:38 pm

I see, i never really had math and i kind of know nothing about it.

I see now that if you calculate 3*1-2 = 1, so indeed 3*2-2 = 4. These are indeed the numbers i am looking for!

I'm still a little bit stuck though.

When it comes to math all i get are brainfreezes. I just can't figure it out :(.

What i did now:
IF > commentCheck = 3*commentPage-2 > Do action
IF > commentCheck = 3*commentPage-1 > Do action, Do Action
IF > commentCheck = 3*commentPage > Do action, Do Action, Do Action

commentCheck = The number of comments
commentPage = The comment page

I think i'm stuck at the pages.
If i got 1,2 or 3 comments everything works perfect as mentioned above. Now the problem starts having a 4th comment.
If i have 4 comments the formulas above don't work anymore if the commentPage is still 1. This makes sense but i am not sure how to switch over.

Even if commentCheck = 4 but i am still on comment page 1 it should show the first 3 comment.
The information is always right in my php script no matter the page because i use limit 0,3 if the comment page is 1, i use limit 3,6 if the comment page is 2 and so on.
So my information is always correct in my script.

So if i have 4 comments but commentPage = 1 it should read it as 3 comments. Once a user hits the "More comments" button commentPage will be 2.

My conclusion: commentCheck = commentCheck(4) - commentPage(1). So if i have 4 comments, and i'm on page 1, it will be counted as 3 and it will create 3 comment blocks.
If i go a page up, the new calculation will be commentCheck = commentCheck(4) - commentPage (2) which results in 2. This is incorrect. Because it should be 1.

I am really not getting the clue here :(.

My code so far:
Image
B
10
S
4
G
3
Posts: 169
Reputation: 2,519

Post » Thu Feb 11, 2016 9:04 pm

Hi,
i really dont understand what your trying to do...so many comments :)

What i did now:
IF > commentCheck = 3*commentPage-2 > Do action
IF > commentCheck = 3*commentPage-1 > Do action, Do Action
IF > commentCheck = 3*commentPage > Do action, Do Action, Do Action

your changing the formula here not the variable.
The formula should stay the same you just need to change the commentPage variable.

f(x)=3x-2 is a linear function you put a x in and get a f(x)=y out.
Thats it.
Never change the parameters (3 and -2) or you will get another function or even a cluster of function if the parameter is a variable itself.

However.

So maybe you should do something like that:

on setComments:
set commentCheck to 3*commentPage-2
...........if commentCheck=1--->do something
...........if commentCheck=4--->do something
...........and so on

But as i said i dont get what your trying to do with this.

It sounds like you just want to switch to a new comment page every 3 comments?
B
7
S
2
Posts: 56
Reputation: 583

Post » Thu Feb 11, 2016 11:00 pm

Yes, i indeed really have trouble explaining my question since i don't understand it myself :).

I indeed want to switch to a new comment page each 3 comments. That's why i have 3 different formula's. I think this is needed because first it will show comment 1,2 and 3. Switching pages should show 4,5,6.

The reason i think this is the only way is because it's possible to have like 4 or 5 comments. If for example the case is 4 comments it should not trigger the second and third formula after switching to the second page. Because that would create a object for comment 5 and 6, which obviously do not exist if there are only 4 comments. That's why i need to know how to get do a action each 1,4,7 etc.

Some images:
This is the result for one comment
Image
This is how my php script shows how many comments there are
Image
In the database ( no clue why i shot this screenshot )
Image
The comment background object is created because of this
Image
When i added another comment
Image
Because my php script showed there were 2 comments
Image

As you can see in the screenshots everything works as planned.

If i add a third comment the third comment will show up.

Once i add the 4th comment none will be created. This is where it goes wrong.

So, if i got 4 comments my php script will result a 4. Just like the 1 and 2 shown above.
The fact is that i first want to run the formulas for 1,2,3. After clicking the red arrow at the bottom of the screen i want to show comment 4.
So in fact comment 4 would be on page 2.

So if i take this image:
Image
What it should do, if we take 4 comments, is running all 3 actions. Once i click the "next page" button it only has to run action 1 again since that will add up to 4, aka the amount of comments. So if we take 5 comments for example. It again, has to run all 3 actions. After clicking the next page button it will only have to run action 1 and 2.

P.s. Don't mind all the other info at the php script. This i can assign to each comment block once my issue is solved.
B
10
S
4
G
3
Posts: 169
Reputation: 2,519

Post » Thu Feb 11, 2016 11:57 pm

I thought about a nice system but its a bit complicated.

But i just got an easier idea.
Every comment is a block in your script?
So just count the blocks. Give them a variable called commentNUmber.
And a global variable TotalComments

on comment made add+1 to TotalComments and set the instanze commentNUmber to TotalComments.

then make a new block at (x=360,y=859+(commentNUmber-1)*133)

so every comment will create a block 133 pixel under the last block

then if you klick the downarrow just shift all blocks up(-) 133 pixels.
on uparrow shift them down(+) 133.

So you can just "scroll" through them. No need for Pages.

p.S:

Its getting late my english is getting worse i am sorry :)
B
7
S
2
Posts: 56
Reputation: 583

Post » Fri Feb 12, 2016 12:11 am

I've been thinking that way but the thing is that these comments are getting fetched from a database.

I know i might have high hopes but if this app really works out it could be possible that 1000's of comments will be added.

There is no way i can pre-load 5000 comments creating 5000 objects. Somewhere i have to cut it off anyways.

It's also getting late for me i will re-think this trough tomorrow.

The combo semi-knowledge of Construct 2 and almost no knowledge of math formulas kills it for me :(.
B
10
S
4
G
3
Posts: 169
Reputation: 2,519

Post » Fri Feb 12, 2016 12:14 am

Ok then you need to stick to the three blocks and just load the comments into them from an array(database).
Thats totally possible with some math magic. :)
B
7
S
2
Posts: 56
Reputation: 583

Post » Fri Feb 12, 2016 11:15 am

Alright! Massive facepalm time :)!

I actually created the system before with some bugs. Thought to throw it all around and re-create it ending up in this mess.

Finally figured it out how to do it. Thing is, i had it almost completely right the first time.

Anyways this is how.

Instead of checking how many comments there are for creating the comment blocks i simply check if the comment is empty or not ( duh! ).

So if comment 1 and 2 are there, it will create 2 blocks. As comment 3 is empty, aka does not exist, it will stop right there.

Now for the 3 comment limit, that's why i put up a limit in my php script in the first place. This is also how i check if my comments are empty.

So all there was left was the "next page" button.

This i've done by:
ceil(commentCheck/3) =< commentPage > Delete button
ceil(commentCheck/3) > commentPage > Create button

Problem solved :).

Thanks for the brainstorming with me :).

This is what it looks like:
Image
Image
variable l1 and l2 are the limits i send to my php script, so it will only show 3 comments.
B
10
S
4
G
3
Posts: 169
Reputation: 2,519


Return to How do I....?

Who is online

Users browsing this forum: Cubeeo and 10 guests