Bug? Touches are being remembered
Hello,
First of all I wanted to say that GS has been a pleasure to learn up to this point and it has been extremely easy compared to learning a programming language. This software is greatly appreciated on every level.
Now to the problem.
Touches being made in my game are being remembered and are causing a problem when I change an attribute later on in the game.
Here is an example of what is going on:
Boolean Attribute: Game Paused ? set to false when game starts
There are actors that are effected by the touch and release of the user.
When the user selects the pause function I set the "Game Paused ?" boolean to 1 (TRUE) and change the scene using the PAUSE behavior to a menu screen. On this screen the user can change whether or not they want to hear the music and sound effects. When the user touches and releases "Resume Game" I change the attribute for "Game Paused ?" back to 0 or false.
In my actors I have a rule that requires Touch-Release and the attribute "Game Paused ?" to be false.
The problem is that if a user touches where any of the actors are located on the scene previous to the menu or pause scene, and resumes the game the game is remembering the touch and effecting the actor on the scene.
I hope this makes sense, and if not please let me know and I will try to clarify.
I have tried everything and cannot come up with a solution.
Any help would be greatly appreciated.
First of all I wanted to say that GS has been a pleasure to learn up to this point and it has been extremely easy compared to learning a programming language. This software is greatly appreciated on every level.
Now to the problem.
Touches being made in my game are being remembered and are causing a problem when I change an attribute later on in the game.
Here is an example of what is going on:
Boolean Attribute: Game Paused ? set to false when game starts
There are actors that are effected by the touch and release of the user.
When the user selects the pause function I set the "Game Paused ?" boolean to 1 (TRUE) and change the scene using the PAUSE behavior to a menu screen. On this screen the user can change whether or not they want to hear the music and sound effects. When the user touches and releases "Resume Game" I change the attribute for "Game Paused ?" back to 0 or false.
In my actors I have a rule that requires Touch-Release and the attribute "Game Paused ?" to be false.
The problem is that if a user touches where any of the actors are located on the scene previous to the menu or pause scene, and resumes the game the game is remembering the touch and effecting the actor on the scene.
I hope this makes sense, and if not please let me know and I will try to clarify.
I have tried everything and cannot come up with a solution.
Any help would be greatly appreciated.
Comments
Thanks, it is nice to know that it is a bug. Being that I am new to this whole GS arena can you give me any details on how often they produce updates?
Also, are there any workarounds for this bug? It would hold up my release of my game for some time if I can't get it fixed.
Thanks for the reply!
Brian
Or is there another way?
I've tried many things to stop the actors from being affected from the remembered touch when pause is activated.
When the game is resumed it affects the actors because the touch is remembered and then the actor reacts which is causing trouble in the gameplay.
Its a bit complicated.
When you unpause the game from your pause menu then you need to make the following actions:
When touch is Pressed
Change attribute "Workaound attribute integer" to 1
When "Workaound attribute integer" = 1
UnPause Game
Then in the Basic Scene You create a Rule saying:
If "Workaound attribute integer" = 1
Pause Game
Goto scene "PAUSE INVISIBLE"
Then make a Pause scene that consist of an invisible actor
In this actor make these rules:
RULE:
WHEN: Attribute Self.color.alpha < 1
"Workaound attribute integer" = 1
TIMER:
Every 0.1
Self.color.alpha = Self.color.alpha +0.1
TIMER
After 0.1 seconds
Change attribute "Workaound attribute integer" to 2
After 0.2 Seconds
Change attribute "System attribute integer" to 1
RULE:
When "System attribute integer" = 1
self.color > 1
"Workaound attribute integer" = 2
TIMER
Every 0.1 Seconds
CHange Attribute self.color.alpha to self.color-0.1
RULE:
When self.color.alpha attribute = 0
"Workaound attribute integer" = 2
Change attribute "System attribute integer" = 0
Change attribute "Workaound attribute integer"=0
Unpause Game
This means that the program doesn't remember any previous touch actions and in that way the actors aren't affected by the pause or unpause click.
Hope some of you can use this.
Best Regards
SoftBoy
Just tested this on the iPhone and it still only works on my MacBook!
Still working to get around it, but it would be great if the program didnt remember the touch before going into pause mode...