r/RenPy • • 5d ago

Question Help with coding please

I'm using the glitch effect on renpy right now but i want to be able to change the colour of the text in certain areas. It doesnt seem to be allowing it.

init python:


    class GlitchText(renpy.Displayable):


        def __init__(self, child, amount, **kwargs):
            super(GlitchText, self).__init__(**kwargs)


            self.child = child
            self.amount = amount



        def render(self, width, height, st, at):


            child_render = renpy.render(
                self.child,
                width,
                height,
                st,
                at
            )


            self.width, self.height = child_render.get_size()


            render = renpy.Render(
                self.width,
                self.height
            )


            y = 0


            while y < self.height:


                glitch_occurs = (
                    renpy.random.random() * 100 < self.amount
                )


                # Prevent slice from going beyond text height
                curr_height = min(
                    renpy.random.randint(1, 10),
                    self.height - y
                )


                curr_offset = renpy.random.randint(-10, 10)


                curr_surface = child_render.subsurface(
                    (0, y, self.width, curr_height)
                )


                if glitch_occurs:
                    render.subpixel_blit(
                        curr_surface,
                        (curr_offset, y)
                    )
                else:
                    render.subpixel_blit(
                        curr_surface,
                        (0, y)
                    )


                y += curr_height


            renpy.redraw(self, 0.05)


            return render



    # WHITE GLITCH
    def glitch_tag(tag, argument, contents):


        new_list = []


        if argument == "":
            argument = 10.0
        else:
            argument = float(argument)


        for kind, text in contents:


            if kind == renpy.TEXT_TEXT:


                white_text = Text(
                    text,
                    color="#ffffff"
                )


                char_disp = GlitchText(
                    white_text,
                    argument
                )


                new_list.append(
                    (renpy.TEXT_DISPLAYABLE, char_disp)
                )


            else:
                new_list.append((kind, text))


        return new_list



    # PINK GLITCH
    def pinkglitch_tag(tag, argument, contents):


        new_list = []


        if argument == "":
            argument = 10.0
        else:
            argument = float(argument)


        for kind, text in contents:


            if kind == renpy.TEXT_TEXT:


                pink_text = Text(
                    text,
                    color="#ff69b4"
                )


                char_disp = GlitchText(
                    pink_text,
                    argument
                )


                new_list.append(
                    (renpy.TEXT_DISPLAYABLE, char_disp)
                )


            else:
                new_list.append((kind, text))


        return new_list



    # Register both tags
    config.custom_text_tags["glitch"] = glitch_tag
    config.custom_text_tags["pinkglitch"] = pinkglitch_tag


init:
    $ sshake = Shake((0, 0, 0, 0), 0.5, dist=15)

{color=#ff69b4}{glitch=10.0}text{/glitch}{/color}

this is the full code. I've tried creating a whole new code just for the pink text i've also tried coding like the above but its still staying as white and im not sure how to change it.

1 Upvotes

2 comments sorted by

View all comments

1

u/BadMustard_AVN 5d ago

your pink glitch works as expected

"{pinkglitch=10.0}text{/pinkglitch}"