Keyboard events inside a for loop causes error

Bugs will be moved here once resolved.

Post » Tue Oct 28, 2014 3:26 am

Problem Description
____ Any time I put a keyboard event inside a for loop it creates a error and no longer functions, I get a stack trace error.____

Attach a Capx
https://drive.google.com/file/d/0B3nfY4x9Y0kueHZjcEsxV2toMEU/view?usp=sharing
Description of Capx
This Capx demonstraights the problem I am having as the capx I was working with and discovered this problem with isn't as simple but the problem boils down to this simple demonstration.

In the project I discovered this I am going into a for loop because I am accessing and storing key code values and gamepad indexs into a 3d array. x = device type(has different events for each device type, this is where the step 3 would be in recreation), y = buttonid/keycode, and z = player/gamepadindex. It saves those values and loads them correctly too. In a seperate event sheet it loads the saved values into the array again, then tests if the button codes are pressed and shoots out functions, again with a for loop, with keyboard events. I was making this as a custom controls template to save time on doing it. But ran into this problem while trying to simplify the project down to as few events as possible. Logically it should work, and does with the gamepad, just not the keyboard.

I didn't feel it was necessary to upload a 60 event capx if the issue is so small, but breaking literally everything I had planed, this is not flawed logic in retrospect as the issue works perfectly fine with a gamepad, and prior to me having it simplified as such. (it was at 104 events prior to setting up for loops)

Steps to Reproduce Bug
  • Step 1 insert a for loop, have the index start at 0, name the index something. Keep end 10 if want
  • Step 2 insert a global varible have it be any number between 0 & 10 but not 0 or 10
  • Step 3 Create a event that compares the global varible to the loopindex("name"), make sure this is inside the for loop.
  • Step 4 insert the keyboard object into the project, and insert a On Key Pressed, set it to any key such as A, make sure the event inside of the step3's event
  • Step 5 insert a text object on to the scene
  • Step 6 insert a action inside of step 4's On Key Pressed that changes step 5's text object's text

Observed Result
____ What happens? ____
A stack error occurs, and the events and actions are ignored.

Expected Result
____ What do you expect to happen? ____

I expect it to not go into a stack error and allow the action of text to change.

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

Operating System and Service Pack
____ Your operating system and service pack ____
Windows 8.1 Pro 64bit

Construct 2 Version ID
____ Exact version ID of Construct 2 you're using ____
Release 184(64bit)
built at : 15:42:21 October 9 2014
Last edited by undeadbobop on Tue Oct 28, 2014 3:37 am, edited 2 times in total.
Need custom controls, video & sound options, and a PC like menu system with screenshot manager?
Image
B
20
S
4
G
2
Posts: 36
Reputation: 2,440

Post » Tue Oct 28, 2014 3:35 am

Read the error: "Trigger found as subevent to a loop - this is not allowed, IDE will prevent this setup in future"

I don't know if it works in your context, but using a non-trigger keyboard, such as "key is down" will work.
B
86
S
43
G
71
Posts: 601
Reputation: 43,619

Post » Tue Oct 28, 2014 3:41 am

spacedoubt wrote:Read the error: "Trigger found as subevent to a loop - this is not allowed, IDE will prevent this setup in future"

I don't know if it works in your context, but using a non-trigger keyboard, such as "key is down" will work.

Hmmm.... why is that? It is so odd....
It also works with gamepad object on button index pressed....
So it isn't like it is a genuine issue with "On" events.
In my context I have it register both On pressed and Is down, because I have it shoot out 2 separate functions for different uses.
Might just have to make a work around system, just thinking how now lol.
It will have to be massive because no "Is any key down" event.

EDIT NOTE:
Found a work around
created 2 global variables, if any key is pressed it changes a value from 0 to 1 for both, when any key released changes that 1 to 0 for one of them and the other gets updated every tick to 0. This would only work with the use I am trying to do more than likely.
Also using a loop to call a function in a separate loop doesn't work out well either lol.
Need custom controls, video & sound options, and a PC like menu system with screenshot manager?
Image
B
20
S
4
G
2
Posts: 36
Reputation: 2,440

Post » Wed Oct 29, 2014 4:33 pm

Closing as won't fix. I have no idea what you expect a trigger in a loop to do. Triggers don't run whenever you ask them to, even if you ask them over and over in a loop. Instead they fire when an event happens. They usually fire outside of normal event sheet running (especially for input events), so it's impossible it could fire during the loop. Putting them under a loop basically makes no sense at all with this. I guess the editor should prevent you doing it in the first place, and the error message suggests that, but hey, we have more interesting things to be working on...
Scirra Founder
B
395
S
232
G
88
Posts: 24,371
Reputation: 193,762


Return to Closed bugs

Who is online

Users browsing this forum: No registered users and 2 guests