Hi there.
I've been using the beta 6 version for several months and everything was working.
But for a few days, the ShakeScreen and ShakeScreenBackground functions are no longer active at all, whereas everything was working correctly in my game a few weeks ago.
I downloaded and installed the latest AGS Editor .NET version (Build 3.6.0.33) ** BETA VERSION ** and nothing changes.
Nothing happens now when we use ShakeScreen and ShakeScreenBackground in our game.
Do you have the same issue on your side?
________________
To give me the information, nothing very complicated: if you are using the beta 6 version of AGS, open a blank room, put the code "ShakeScreenBackground (5, 5, 900); " and tell me if your screen shakes or not...
function room_AfterFadeIn()
{
ShakeScreenBackground (5, 5, 900) ;
}
Thanks in advance
_________________
thank you !
It works for me.
Do you only run this from "room_AfterFadeIn", or other places too? If only from "AfterFadeIn", first thing is to double check that you have connected the function to the actual event in the room properties.
Quote from: adipson on Sun 07/08/2022 07:05:07if you are using the beta 6 version of AGS
When you say "beta 6", do you mean 3.6.0 in general, or specifically "3.6.0 Beta 6" update?
Quote from: Crimson Wizard on Sun 07/08/2022 16:26:07
It works for me.
Do you only run this from "room_AfterFadeIn", or other places too? If only from "AfterFadeIn", first thing is to double check that you have connected the function to the actual event in the room properties.
Quote from: adipson on Sun 07/08/2022 07:05:07if you are using the beta 6 version of AGS
When you say "beta 6", do you mean 3.6.0 in general, or specifically "3.6.0 Beta 6" update?
3.6.0 in general.
I've been developing the game for 3 years and until last month the shakescreen functionality was no problem.
But I will look on the side of the configuration if something is not checked.
Using 3.6.0.20 from March, the screen shakes fine for me.
Did you link the after fadein event to the function? Pasting that code alone does nothing.
For 3 years where I develop the game I can confirm that it is not a code placement problem on my part... :)
I tried with version 3.5.1 on a test game and everything works for the ShakeScreenBackground.
As I can't launch the game coded on version 3.6 on 3.5, well that's shredded.
I tried in full screen version, popup, nothing helps. So I think it comes from a function that may have been unchecked or misadjusted because the day it happened 2 weeks ago, the program configured itself in mode that the mouse does not come out of the window, without me intervening on the option of the default setup: auto lock mouse therefore placed in true while I have always been in false to control the mouse outside the popup.
So I changed the auto lock mouse mode back to false again, but on the other hand I still have ShakeScreenBackground which does nothing in the program.
I think as usual being a black cat it's something that only happens to me and I'll do as usual so I'll just stop doing ShakeScreenBackground in the game and suggest all the scenes developed for 3 years with a shakescreen, well without the shakescreen when the game will be compiled...
It doesn't matter after all, as long as I can still develop and compile, that's the most important thing.
thank you
By the way, to prove to you that I still know how to place my shakescreens, here is a capture of a video of my game tested by a player with the shakescreen active on my game :-D
At 1 hour .22
https://youtu.be/gbSTbGsBKno
[deleted, as likely irrelevant]
After testing few things in 3.6.0, I can see that ShakeScreenBackground does not work if you choose Software renderer in config. If you switch to Direct3D or OpenGL then it works. Can you confirm that this is your case?
No...
I try with Direct3D and OpenGL and Nothing change for me.
i try with rotation mode otpions too but nothing
(http://adipson.free.fr/capture1.png)
Thanks for your help !
Can you upload your 3.6 game so we can check it?
Quote from: adipson on Mon 08/08/2022 13:40:12
I try with Direct3D and OpenGL and Nothing change for me.
The Default Setup page defines the
starting option values, but not the current ones; when the game runs it also reads user config. Build the game, then run Build -> Run game setup, and select the driver there.
Quote from: adipson on Mon 08/08/2022 13:40:12
i try with rotation mode otpions too but nothing
"Rotation mode" is for mobile devices only, i think, should not be related to this issue.
Quote from: Crimson Wizard on Mon 08/08/2022 13:58:07
Quote from: adipson on Mon 08/08/2022 13:40:12
I try with Direct3D and OpenGL and Nothing change for me.
The Default Setup page defines the starting option values, but not the current ones; when the game runs it also reads user config. Build the game, then run Build -> Run game setup, and select the driver there.
Quote from: adipson on Mon 08/08/2022 13:40:12
i try with rotation mode otpions too but nothing
"Rotation mode" is for mobile devices only, i think, should not be related to this issue.
You are the best!!!!
Thanksssssss !
it was the solution with the build !
So the solution is really : Build the game, then run Build -> Run game setup, and select the driver there.
>>>> And not use "software driver" but Direct3d9 or openGL No there's no problem;
Thank you very much
Well, this means that the software driver has to be fixed to play shakescreen correctly.
Quote from: Crimson Wizard on Mon 08/08/2022 14:23:53
Well, this means that the software driver has to be fixed to play shakescreen correctly.
yes indeed, that means it seems suddenly that the "Software driver" of the graphics drivers does not support Shakescreen
Speaking on alternatives, since AGS 3.5.0 there's a way to move room's view altogether with everything in it, using new Viewport class. This may be used to shake the room in any direction.
Some dumb example:
int delay = 5;
for (int i = 0; i < 10; i++) {
for (int y = 0; y < 20; y++) {
Screen.Viewport.Y = y;
Wait(delay); // let engine update / redraw
Screen.Viewport.Y = -y;
Wait(delay);
}
for (int y = 20; y > 0; y--) {
Screen.Viewport.Y = y;
Wait(delay);
Screen.Viewport.Y = -y;
Wait(delay);
}
}
Screen.Viewport.Y = 0; // reset