Wrong Hovering Behavior Using Families

Bugs will be moved here once resolved.

Post » Thu Nov 24, 2016 4:34 pm

Problem Description
Using the mouse plugin condition Cursor is over... with a family selected as the object.
There is a noticeable strange behavior where sometimes multiple sprites from the family get picked,
even though none of them are currently hovered over. (Screenshot | The pink marker is my mouse pointer)

Attach a Capx
Download the capx there.

Description of Capx
Includes both, the "expected behavior" where all conditions are split up and
the "bugged behavior" where the detection using a family is acting weird.

Steps to Reproduce Bug
  • Open the capx and enter the preview with any browser
  • Slowly hover from left to right and stop over a sprite (might take some tries :P )
  • Notice that multiple sprites are picked

Observed Result
Multiple sprites are registered even though the mouse is currently not hovering over those.

Expected Result
Using the "Cursor is over..." condition with a family should pick the correct sprites just
like the "expected behavior" method does.

Affected Browsers
  • All Browsers are affected
Operating System and Service Pack
Windows 7 with latest updates and up to date drivers.

Construct 2 Version ID
Newest release r240 Steam release. [Personal Edition]
ImageImageImage
B
63
S
23
G
78
Posts: 661
Reputation: 44,935

Post » Wed Dec 21, 2016 1:15 pm

Closing as not a bug: you're expecting 'else' to pick instances, but it does not. 'Else' simply means 'the previous event did not run'. It's possible to move the mouse over multiple different instances (since the mouse actually moves in steps, rather than smoothly, it can cross the gap easily) without the event ever being false. In this case the else event never runs even though the cursor is over a new object. The else event does not run until the mouse is not over any instances at all.
Scirra Founder
B
398
S
236
G
88
Posts: 24,441
Reputation: 194,681

Post » Wed Dec 21, 2016 1:33 pm

Ashley wrote:Closing as not a bug: you're expecting 'else' to pick instances, but it does not. 'Else' simply means 'the previous event did not run'. It's possible to move the mouse over multiple different instances (since the mouse actually moves in steps, rather than smoothly, it can cross the gap easily) without the event ever being false. In this case the else event never runs even though the cursor is over a new object. The else event does not run until the mouse is not over any instances at all.

Alrighty, do you perhaps know a way to simplify this whole process?
I don't think that having 50+ "Cursor is over" (+false) conditions are efficient and it's obviously a little tedious to set them all up as well.
ImageImageImage
B
63
S
23
G
78
Posts: 661
Reputation: 44,935

Post » Wed Dec 21, 2016 1:48 pm

Just use an inverted "cursor is over" event to put them back. That's effectively a picking 'else' condition.
Scirra Founder
B
398
S
236
G
88
Posts: 24,441
Reputation: 194,681


Return to Closed bugs

Who is online

Users browsing this forum: No registered users and 5 guests