I Wanna Community
Fangames => Game Design => Programming Questions => Topic started by: BoshyMan741 on August 06, 2015, 12:45:13 PM
-
Does anyone know how to make a screen shake that also does motion blur, kinda like in Boshy?
-
Hope this helps with the motion blur (https://gmc.yoyogames.com/index.php?showtopic=180100)
-
There's some fancy stuff you can do with drawing the screen to a surface and then drawing the surface in random spots with a low alpha, but what Katz linked might work better for what you want.
-
Yeah I actually used what Katz linked right before coming here to ask. Also do you know if you could explain how to what you said. I'm a pretty big n00b with the draw event.
-
Well, you'd have to learn how surfaces work, which is actually pretty complicated. I made a topic about it in the forums at some point, so maybe you can learn from that.
-
As for screen shake, you basically just want to adjust the view_angle (be sure to enable views in whatever screen you're doing this in). You can fiddle with the other stuff in https://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/index.html but the angle is the easiest I've found.
-
As for screen shake, you basically just want to adjust the view_angle (be sure to enable views in whatever screen you're doing this in). You can fiddle with the other stuff in https://docs.yoyogames.com/source/dadiospice/002_reference/windows%20and%20views/views/index.html but the angle is the easiest I've found.
Have an old script that does just that.
///screenShake(time,shakeX,shakeY)
//
// shakes the screen for an amount of time
//
// time the time to shake
// shakeX the maximum shaking intensity in x axis(pixel)
// shakeY the maximum shaking intensity in y axis(pixel)
//
{
var inst;
inst = instance_create(view_xview[0],view_yview[0],objScreenShake);
inst.alarm[0] = argument0;
inst.shakeX = argument1;
inst.shakeY = argument2;
}
and it creates an object that actually shakes the view.
objScreenShake:
{
//get the x,y value of current view
xview=view_xview[0];
yview=view_yview[0];
}
{
//restoring original views
view_xview[0]=xview;
view_yview[0]=yview;
instance_destroy();
}
{
//shaking views
view_xview[0]=xview+random_range(-shakeX,shakeX);
view_yview[0]=yview+random_range(-shakeY,shakeY);
}
Basically you sohuldn't be using this more than once at a time; Otherwise the view in the actual room will be restored to an angle that be off from the actual window.