Problem setting instance variable

Bugs will be moved here once resolved.

Post » Fri Mar 14, 2014 11:57 am

Problem Description
It's simple, setting a value to an instance varaible does not work. When I create a Sprite, on its On Create I call function with its UID. With this UID I want to change a value of a variable, but it seems that it doesn't work. I putted another action to that sprite to check if it was not being picked, but with Destroy action(for example) it works. Also i save the X coordane and Y to a global variable and that works well.
The Spire is called "PuntuacionObtenida".

Attach a Capx
dropbox.com/s/qw8z63p0nkx399a/Bug.capx

Description of Capx
I took a flappy bird template, you control a bat and insects come continuously from right to left. When a insect collides with the bat a number is spawed.

Steps to Reproduce Bug
    Just ensure the bat eats an insect (but also take into account not to eat more than one, because changing the instance variable must only be done for the first number that appears). The variable bOriginalFusion remains 0 (despite setting it to true).
    You can disable the toggle in the destroy action and you can check that the number does not appear or see that the X and Y global variable have the sprite X and Y values.

Observed Result
The variable bOriginalFusion remains 0

Expected Result
The variable bOriginalFusion must be 1

Affected Browsers
  • Chrome: (YES)
  • FireFox: (YES)
  • Internet Explorer: (YES)

Operating System and Service Pack
Windows 7 Ultimate Service Pack 1 64 bits

Construct 2 Version ID
163
You do not have the required permissions to view the files attached to this post.
B
8
S
2
Posts: 42
Reputation: 649

Post » Fri Mar 14, 2014 12:26 pm

When I run your project in debug mode it appears there is no PuntuacionObtenida. Looking at your code, right after you set bOriginalFusion to true you destroy PuntuacionObtenida.
B
17
S
4
G
3
Posts: 172
Reputation: 1,933

Post » Fri Mar 14, 2014 12:38 pm

shirokuma wrote:When I run your project in debug mode it appears there is no PuntuacionObtenida. Looking at your code, right after you set bOriginalFusion to true you destroy PuntuacionObtenida.


Yes, PuntuacionObtenida is spawed when an insect collides with the bat, previously it doesn't exist. The destroy action I putted to check if that action was done, just toggle it or delete to see that the bOriginialFusion value remains 0.

Thanks,

Sergio
B
8
S
2
Posts: 42
Reputation: 649

Post » Fri Mar 14, 2014 2:43 pm

I found a solution, I putted a wait 0.2 before calling the function. It seems that the object had no time to set its instance values, because a simple bollean=true didn't picked me the object, but if I put a wait before calling it it seems to work fine.

Sorry if it's my fault for not knowing how it works, you can close this post.

Thanks all,

Sergio
B
8
S
2
Posts: 42
Reputation: 649

Post » Fri Mar 14, 2014 3:04 pm

It looks like you are only entering that loop twice. Once immediately as you start the layout, and once on first bug collision. I created a global variable called myWatch and set it to 0. Just after you set bOriginalFusion to true in your code I increment myWatch by 1. So when hit the play button it goes to 1, and when I collide with the first bug it goes to 2. (I change the font size and color inside the loop as another indicator.) Just after the first bug collision if you look at PuntuacionObtenida #0 it has bOriginalFusion set to true. If I play for a while longer hitting more bugs myWatch no longer increments.

I had to toggle off a PuntuacionObtenida outside of the loop to see the one with bOriginalFusion set to true.

I think I would need to spend some time digging through your code to try and understand the logic better in order to do more. I just can't do that right now since I'm at work. :oops:
You do not have the required permissions to view the files attached to this post.
B
17
S
4
G
3
Posts: 172
Reputation: 1,933

Post » Fri Mar 14, 2014 6:29 pm

Scirra Founder
B
387
S
230
G
87
Posts: 24,249
Reputation: 192,240


Return to Closed bugs

Who is online

Users browsing this forum: Yahoo [Bot] and 1 guest