Luna Granger
New Member
- Aug 30, 2018
- 13
- 8
- 41
I'm trying to add a custom preference that will be change immediately when player changes it. This custom preference makes screen shaking smoothly, its making you like you're seeing a real scene. However I managed to handle this shake effect. But I can't toggle it when player turns it on or off. I tried so many things and I made it but it needs to check toggle at every page that if its on or off, and its resetting transition loop so its not good and I don't want this. Can somebody help me how can I toggle this on or off when player changes it?
Python:
script.rpy
init python:
if not hasattr(persistent, "shake_enabled"):
persistent.shake_enabled = True
def auto_update_camera_shake():
if persistent.shake_enabled:
renpy.show_layer_at(camshake, layer="master")
else:
renpy.show_layer_at(reset_camera, layer="master")
config.interact_callbacks.append(auto_update_camera_shake)
def update_camera_shake():
auto_update_camera_shake()
# Transforms
transform camshake:
ease 1.2 xpos 0 ypos 0
ease 1.2 xpos -5 ypos 3
ease 1.2 xpos 4 ypos -2
ease 1.2 xpos 3 ypos 5
ease 1.2 xpos -4 ypos -3
repeat
transform reset_camera:
xpos 0 ypos 0
screens.rpy
vbox:
style_prefix "radio"
label _("Realistic Camera Shake Effect")
textbutton _("ON") action [
SetField(persistent, "shake_enabled", True),
Function(update_camera_shake)
]
textbutton _("OFF") action [
SetField(persistent, "shake_enabled", False),
Function(update_camera_shake)
]